示例#1
0
 public function addpost(tpost $post)
 {
     $item = $this->domrss->AddItem();
     tnode::addvalue($item, 'title', $post->title);
     tnode::addvalue($item, 'link', $post->link);
     tnode::addvalue($item, 'comments', $post->link . '#comments');
     tnode::addvalue($item, 'pubDate', $post->pubdate);
     $guid = tnode::addvalue($item, 'guid', $post->link);
     tnode::attr($guid, 'isPermaLink', 'true');
     if (class_exists('tprofile')) {
         $profile = tprofile::i();
         tnode::addvalue($item, 'dc:creator', $profile->nick);
     } else {
         tnode::addvalue($item, 'dc:creator', 'admin');
     }
     $categories = tcategories::i();
     $names = $categories->getnames($post->categories);
     foreach ($names as $name) {
         if (empty($name)) {
             continue;
         }
         tnode::addcdata($item, 'category', $name);
     }
     $tags = ttags::i();
     $names = $tags->getnames($post->tags);
     foreach ($names as $name) {
         if (empty($name)) {
             continue;
         }
         tnode::addcdata($item, 'category', $name);
     }
     $content = '';
     $this->callevent('beforepost', array($post->id, &$content));
     if ($this->template == '') {
         $content .= $post->replacemore($post->rss, true);
     } else {
         $content .= ttheme::parsevar('post', $post, $this->template);
     }
     $this->callevent('afterpost', array($post->id, &$content));
     tnode::addcdata($item, 'content:encoded', $content);
     tnode::addcdata($item, 'description', strip_tags($content));
     tnode::addvalue($item, 'wfw:commentRss', $post->rsscomments);
     if (count($post->files) > 0) {
         $files = tfiles::i();
         $files->loaditems($post->files);
         foreach ($post->files as $idfile) {
             $file = $files->getitem($idfile);
             $enclosure = tnode::add($item, 'enclosure');
             tnode::attr($enclosure, 'url', litepublisher::$site->files . '/files/' . $file['filename']);
             tnode::attr($enclosure, 'length', $file['size']);
             tnode::attr($enclosure, 'type', $file['mime']);
         }
     }
     $post->onrssitem($item);
     $this->onpostitem($item, $post);
     return $item;
 }