/** * @param array $fields * @param mixed $user * @param array $safefields * * @return array */ public function newTopic(array $fields = null, $user = null, array $safefields = null) { $catid = isset($safefields['category_id']) ? $safefields['category_id'] : $this->getNewTopicCategory($user)->id; $user = KunenaUserHelper::get($user); $message = new KunenaForumMessage(); $message->catid = $catid; $message->name = $user->getName(''); $message->userid = $user->userid; $message->ip = !empty($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ''; $message->hold = $this->review ? (int) (!$this->authorise('moderate', $user, true)) : 0; if ($safefields) { $message->bind($safefields); } if ($fields) { $message->bind($fields, array('name', 'email', 'subject', 'message'), true); } $topic = new KunenaForumTopic(); $topic->category_id = $catid; $topic->hold = KunenaForum::TOPIC_CREATION; if ($safefields) { $topic->bind($safefields); } if ($fields) { $topic->bind($fields, array('subject', 'icon_id'), true); } $message->setTopic($topic); return array($topic, $message); }
public function newTopic($fields=array(), $user=null) { kimport ('kunena.forum.topic'); kimport ('kunena.forum.message'); $catid = $this->getNewTopicCategory()->id; $user = KunenaUserHelper::get($user); $message = new KunenaForumMessage(); $message->catid = $catid; $message->name = $user->getName(''); $message->userid = $user->userid; $message->ip = $_SERVER ["REMOTE_ADDR"]; $message->hold = $this->review ? (int)!$this->authorise ('moderate', $user, true) : 0; $message->bind($fields, array ('name', 'email', 'subject', 'message')); $topic = new KunenaForumTopic(); $topic->category_id = $catid; $topic->hold = $message->hold; $topic->bind($fields, array ('subject','icon_id')); $message->setTopic($topic); return array($topic, $message); }
static protected function loadTopics($ids) { foreach ($ids as $i=>$id) { if (isset(self::$_instances [$id]) || !is_numeric($id)) unset($ids[$i]); } if (empty($ids)) return; $idlist = implode(',', $ids); $db = JFactory::getDBO (); $query = "SELECT * FROM #__kunena_topics WHERE id IN ({$idlist})"; $db->setQuery ( $query ); $results = (array) $db->loadAssocList ('id'); KunenaError::checkDatabaseError (); foreach ( $ids as $id ) { if (isset($results[$id])) { $instance = new KunenaForumTopic (); $instance->bind ( $results[$id] ); $instance->exists(true); self::$_instances [$id] = $instance; } else { self::$_instances [$id] = null; } } unset ($results); }