/** * @param $row * @param KunenaForumCategory $category * @param $subject * * @return bool|KunenaForumTopic */ protected function createTopic($row, KunenaForumCategory $category, $subject) { if (!$category->exists()) { $this->debug("showPlugin: Topic creation failed: forum category doesn't exist!"); return false; } $this->debug("showPlugin: Create topic!"); $add_snippet = $this->params->get('add_article_snippet'); $textwords = implode(' ', array_slice(explode(' ', $row->fulltext), 0, 10)); if (empty($textwords)) { $textwords = implode(' ', array_slice(explode(' ', $row->introtext), 0, 10)); } $snippet = strip_tags($textwords) . "..." . "\n\n"; $type = $this->params->get('bbcode'); switch ($type) { case 'full': case 'intro': case 'link': if ($add_snippet) { $contents = $snippet . "[article={$type}]{$row->id}[/article]"; } else { $contents = "[article={$type}]{$row->id}[/article]"; } break; default: if ($add_snippet) { $contents = $snippet . "[article]{$row->id}[/article]"; } else { $contents = "[article]{$row->id}[/article]"; } } $topic_owner = $this->params->get('topic_owner', $row->created_by); // save the ID for later use $user = KunenaUserHelper::get($topic_owner); $email = $user->email; // get real email $params = array('email' => $email, 'subject' => $subject, 'message' => $contents); $safefields = array('category_id' => intval($category->id)); list($topic, $message) = $category->newTopic($params, $topic_owner, $safefields); // Set time of message published by the plugin in the Unix timestamp format if (isset($row->publish_up) && $row->publish_up != '0000-00-00 00:00:00') { $message->time = JFactory::getDate($row->publish_up)->toUnix(); // start puglishing date of the article } else { if (isset($row->created) && $row->created != '0000-00-00 00:00:00') { $message->time = JFactory::getDate($row->created)->toUnix(); // created date of the article } else { $message->time = JFactory::getDate()->toUnix(); // current date and time } } /** @var KunenaForumTopic $topic */ /** @var KunenaForumMessage $message */ $success = $message->save(); if (!$success) { $this->app->enqueueMessage($message->getError(), 'error'); return false; } // Create a reference $this->createReference($row, $topic->id); return $topic; }
/** * @param $row * @param KunenaForumCategory $category * @param $subject * * @return bool|KunenaForumTopic */ protected function createTopic($row, KunenaForumCategory $category, $subject) { if (!$category->exists()) { $this->debug("showPlugin: Topic creation failed: forum category doesn't exist!"); return false; } $this->debug("showPlugin: Create topic!"); $type = $this->params->get('bbcode'); switch ($type) { case 'full': case 'intro': case 'link': $contents = "[article={$type}]{$row->id}[/article]"; break; default: $contents = "[article]{$row->id}[/article]"; } $params = array('subject' => $subject, 'message' => $contents); $safefields = array('category_id' => intval($category->id)); list($topic, $message) = $category->newTopic($params, $this->params->get('topic_owner', $row->created_by), $safefields); /** @var KunenaForumTopic $topic */ /** @var KunenaForumMessage $message */ $message->time = JFactory::getDate(isset($row->publish_up) ? $row->publish_up : 'now')->toUnix(); $success = $message->save(); if (!$success) { $this->app->enqueueMessage($message->getError(), 'error'); return false; } // Create a reference $this->createReference($row, $topic->id); return $topic; }