コード例 #1
0
ファイル: BlorgAtomPage.php プロジェクト: nburka/blorg
 protected function buildPost(XML_Atom_Feed $feed, BlorgPost $post)
 {
     $site_base_href = $this->app->getBaseHref();
     $blorg_base_href = $site_base_href . $this->app->config->blorg->path;
     $path = $blorg_base_href . 'archive';
     $date = clone $post->publish_date;
     $date->convertTZ($this->app->default_time_zone);
     $year = $date->getYear();
     $month_name = BlorgPageFactory::$month_names[$date->getMonth()];
     $post_uri = sprintf('%s/%s/%s/%s', $path, $year, $month_name, $post->shortname);
     $entry = new XML_Atom_Entry($post_uri, $post->getTitle(), $post->publish_date);
     if ($post->extended_bodytext != '') {
         $full_bodytext = $post->bodytext . $post->extended_bodytext;
         $entry->setSummary($post->bodytext, 'html');
         $entry->setContent($full_bodytext, 'html');
     } else {
         $entry->setContent($post->bodytext, 'html');
     }
     foreach ($post->getTags() as $tag) {
         $entry->addCategory($tag->shortname, $blorg_base_href, $tag->title);
     }
     $entry->addLink($post_uri, 'alternate', 'text/html');
     foreach ($post->getVisibleFiles() as $file) {
         $link = new XML_Atom_Link($site_base_href . $file->getRelativeUri($this->app->config->blorg->path), 'enclosure', $file->mime_type);
         $link->setTitle($file->getDescription());
         $link->setLength($file->filesize);
         $entry->addLink($link);
     }
     if ($post->author->visible) {
         $author_uri = $blorg_base_href . 'author/' . $post->author->shortname;
     } else {
         $author_uri = '';
     }
     $entry->addAuthor($post->author->name, $author_uri, $post->author->email);
     $visible_comment_count = $post->getVisibleCommentCount();
     if ($post->comment_status == SiteCommentStatus::OPEN || $post->comment_status == SiteCommentStatus::MODERATED || $post->comment_status == SiteCommentStatus::LOCKED && $visible_comment_count > 0) {
         $entry->addLink($post_uri . '#comments', 'comments', 'text/html');
     }
     $feed->addEntry($entry);
 }
コード例 #2
0
ファイル: BlorgPostAtomPage.php プロジェクト: nburka/blorg
 protected function buildComment(XML_Atom_Feed $feed, BlorgComment $comment)
 {
     $comment_uri = $this->getPostUri($this->post) . '#comment' . $comment->id;
     if ($comment->author !== null) {
         $author_name = $comment->author->name;
         if ($comment->author->visible) {
             $author_uri = $this->getBlorgBaseHref() . 'author/' . $this->post->author->shortname;
             $author_email = $this->post->author->email;
         } else {
             $author_uri = '';
             $author_email = '';
         }
     } else {
         $author_name = $comment->fullname;
         $author_uri = $comment->link;
         // don't show anonymous author email
         $author_email = '';
     }
     $entry = new XML_Atom_Entry($comment_uri, sprintf(Blorg::_('By: %s'), $author_name), $comment->createdate);
     $entry->setContent(SiteCommentFilter::toXhtml($comment->bodytext), 'html');
     $entry->addAuthor($author_name, $author_uri, $author_email);
     $entry->addLink($comment_uri, 'alternate', 'text/html');
     $feed->addEntry($entry);
 }
コード例 #3
0
 protected function buildComment(XML_Atom_Feed $feed, BlorgComment $comment)
 {
     $post = $comment->post;
     $path = $this->getBlorgBaseHref() . 'archive';
     $date = clone $post->publish_date;
     $date->convertTZ($this->app->default_time_zone);
     $year = $date->getYear();
     $month_name = BlorgPageFactory::$month_names[$date->getMonth()];
     $post_uri = sprintf('%s/%s/%s/%s', $path, $year, $month_name, $post->shortname);
     $comment_uri = $post_uri . '#comment' . $comment->id;
     if ($comment->author !== null) {
         $author_name = $comment->author->name;
         if ($comment->author->visible) {
             $author_uri = $this->getBlorgBaseHref() . 'author/' . $comment->author->shortname;
             $author_email = $comment->author->email;
         } else {
             $author_uri = '';
             $author_email = '';
         }
     } else {
         $author_name = $comment->fullname;
         $author_uri = $comment->link;
         // don't show anonymous author email
         $author_email = '';
     }
     $entry = new XML_Atom_Entry($comment_uri, sprintf(Blorg::_('%s on “%s”'), $author_name, $post->getTitle()), $comment->createdate);
     $entry->setContent(SiteCommentFilter::toXhtml($comment->bodytext), 'html');
     $entry->addAuthor($author_name, $author_uri, $author_email);
     $entry->addLink($comment_uri, 'alternate', 'text/html');
     $feed->addEntry($entry);
 }
コード例 #4
0
 protected function getEntry(PinholeComment $comment)
 {
     $photo_uri = $this->getPinholeBaseHref();
     $photo_uri .= 'photo/' . $comment->photo->id;
     $comment_uri = $photo_uri . '#comment' . $comment->id;
     if ($comment->photographer !== null) {
         $author_name = $comment->photographer->fullname;
         $author_uri = '';
         $author_email = '';
     } else {
         $author_name = $comment->fullname;
         $author_uri = $comment->link;
         $author_email = '';
     }
     $entry = new XML_Atom_Entry($comment_uri, sprintf(Pinhole::_('%s on “%s”'), $author_name, $comment->photo->getTitle()), $comment->createdate);
     ob_start();
     $img_tag = $comment->photo->getImgTag('thumb');
     $a_tag = new SwatHtmlTag('a');
     $a_tag->href = $this->getPinholeBaseHref() . 'photo/' . $comment->photo->id;
     $a_tag->style = sprintf('display: block; position: absolute; ' . 'width: %dpx;', $img_tag->width);
     $a_tag->open();
     echo $img_tag;
     $a_tag->close();
     printf('<div style="margin-left: %dpx;">', $img_tag->width + 20);
     echo SiteCommentFilter::toXhtml($comment->bodytext);
     echo '</div>';
     $entry->setContent(ob_get_clean(), 'html');
     $entry->addAuthor($author_name, $author_uri, $author_email);
     $entry->addLink($comment_uri, 'alternate', 'text/html');
     return $entry;
 }