Bonjours, bonsoir
J'aimerais savoir comment peux ton crée un forum un peux comme ici ? Car j'ai bien du mal.
Merci d'avance.
En regardant les tutos sur cakePhp et un peu beaucoup d'huile de coude, tu devrais y arriver.
Sinon pour les forums il existe des CMS qui te permettent déjà pas mal de personnalisation.
Le problème et que je n'arrive pas à récupéré les Forums, les Sous-Forums, le dernier poste et le nombre de post en même temps.
Je pense qu'il voulait dire que plutôt de faire une requête pour tout en même temps, n'en fait qu'une pour chaque.
salut, voilà personnellement comment je procède pour mon forum:
public function index() {
$this->Forum->recursive = 0;
$this->set('forums', $this->Forum->find('all'));
//$this->set('forums', $this->paginate());
$year = date('Y');
$month = date('m');
$day = date('d');
$last_day = date('d')-1;
$today = $year.'-'.$month.'-'.$day;
$lastday = $year.'-'.$month.'-'.$last_day;
$total = $this->Forum->Topic->find('count', array('conditions' => array('forum_id' => 'id')));
$total_forums = $this->Forum->find('count', array('conditions' => array('parent_id !=' => 0)));
$total_section = $this->Forum->find('count', array('conditions' => array('parent_id' => 0)));
$total_users = $this->Forum->Topic->User->find('count');
$total_topic = $this->Forum->Topic->find('count', array('conditions' => array('Topic.parent_id'=> '0')));
$last_topic = $this->Forum->Topic->find('all', array('order' => array('Topic.created' => 'desc'),'limit' => 5));
$total_reply = $this->Forum->Topic->find('count', array('conditions' => array('Topic.parent_id !=' => '0')));
$last_topic_today = $this->Forum->Topic->find('count', array('conditions' => array('Topic.parent_id' => '0','Topic.created' => $today)));
$total_reply_today = $this->Forum->Topic->find('count', array('conditions' => array('Topic.parent_id !=' => '0','Topic.created' => $today)));
$last_topic_lastday = $this->Forum->Topic->find('count', array('conditions' => array('Topic.parent_id' => '0','Topic.created' => $lastday)));
$total_reply_lastday = $this->Forum->Topic->find('count', array('conditions' => array('Topic.parent_id !=' => '0','Topic.created' => $lastday)));
$total_message = $this->Forum->Topic->find('count');
$last_member = $this->Forum->Topic->User->find('first', array('order' => array('User.created' => 'desc')));
$this->set(compact('forum','forums','total','total_message','total_topic','total_reply','total_forums','total_section','total_users','last_topic'));
$this->set(compact('last_topic_today','total_reply_today','last_topic_lastday','total_reply_lastday','last_member'));
}
c'est peux etre pas la meilleure de façons, mais ça te donnera une idée ;)
14 requête c'est quand même beaucoup.
Voici comment moi j'ai fait:
$categories = $this->Forum->ForumCategory->find('all', array(
'conditions' => array('ForumCategory.parent_id' => 0)
));
$forums = $this->Forum->ForumCategory->find('all', array(
'conditions' => array('ForumCategory.parent_id !=' => 0),
'contain' => array('LastTopic', 'LastPost', 'LastUser',
'TopicView' => array(
'conditions' => array('TopicView.user_id' => $this->Auth->user('id'))
)
)
));
$this->set(compact('categories', 'forums'));
Avec des belogsTo dans les models et le tour est joué