Ejemplo n.º 1
0
 /**
  * @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;
 }
Ejemplo n.º 2
0
 /**
  * @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;
 }