<?php /** * $Id$ * * @package Mediboard * @subpackage Portail * @author SARL OpenXtrem <*****@*****.**> * @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html * @version $Revision$ */ CCanDo::checkRead(); $user = CUser::get(); // Chargement du thread demandé $forum_thread_id = CValue::getOrSession('forum_thread_id'); $forum_thread = new CForumThread(); $forum_thread->load($forum_thread_id); if ($forum_thread->_id) { $forum_thread->loadRefs(); } else { $forum_thread->user_id = $user->_id; $forum_thread->date = CMbDT::dateTime(); } // Chargement du theme demandé $forum_theme_id = CValue::get('forum_theme_id'); if (!$forum_theme_id) { $forum_theme_id = $forum_thread->forum_theme_id; } $forum_theme = new CForumTheme(); $forum_theme->load($forum_theme_id); if ($forum_theme->_id) {
// s'il est indiqué dans le GET ou la session on charge l'objet $forum_message = new CForumMessage(); $forum_message->load(CValue::getOrSession('forum_message_id')); if ($forum_message->_id) { $forum_message->loadRefs(); } else { // sinon on en crée un nouveau $forum_message->user_id = $user->_id; $forum_message->date = CMbDT::dateTime(); } /** Chargement du thread demandé **/ // on récupère le thread auquel appartient le message if ($forum_message->forum_thread_id) { $forum_thread = $forum_message->_ref_forum_thread; } else { $forum_thread = new CForumThread(); $forum_thread->load(CValue::getOrSession('forum_thread_id')); if ($forum_thread->_id) { $forum_thread->loadRefs(); } } /** Chargement du theme demandé en fonction du thread **/ $forum_theme = $forum_thread->_ref_forum_theme; if ($forum_theme) { $forum_theme->loadRefs(); } /** Récupération de la liste des messages du thread **/ $listMessages = $forum_thread->_ref_forum_messages; foreach ($listMessages as &$currMessage) { $currMessage->loadRefs(); }
/** * @see parent::loadRefsBack() */ function loadRefsBack() { $thread = new CForumThread(); $thread->forum_theme_id = $this->_id; $this->_ref_forum_threads = $thread->loadMatchingList(); }