Changeset View
Changeset View
Standalone View
Standalone View
src/applications/phame/view/PhamePostListView.php
| <?php | <?php | ||||
| final class PhamePostListView extends AphrontTagView { | final class PhamePostListView extends AphrontTagView { | ||||
| private $posts; | private $posts; | ||||
| private $nodata; | private $nodata; | ||||
| private $viewer; | private $viewer; | ||||
| private $showBlog = false; | private $showBlog = false; | ||||
| private $isExternal; | |||||
| private $isLive; | |||||
| public function setPosts($posts) { | public function setPosts($posts) { | ||||
| assert_instances_of($posts, 'PhamePost'); | assert_instances_of($posts, 'PhamePost'); | ||||
| $this->posts = $posts; | $this->posts = $posts; | ||||
| return $this; | return $this; | ||||
| } | } | ||||
| public function setNodata($nodata) { | public function setNodata($nodata) { | ||||
| $this->nodata = $nodata; | $this->nodata = $nodata; | ||||
| return $this; | return $this; | ||||
| } | } | ||||
| public function showBlog($show) { | public function showBlog($show) { | ||||
| $this->showBlog = $show; | $this->showBlog = $show; | ||||
| return $this; | return $this; | ||||
| } | } | ||||
| public function setViewer($viewer) { | public function setViewer($viewer) { | ||||
| $this->viewer = $viewer; | $this->viewer = $viewer; | ||||
| return $this; | return $this; | ||||
| } | } | ||||
| public function setIsExternal($is_external) { | |||||
| $this->isExternal = $is_external; | |||||
| return $this; | |||||
| } | |||||
| public function getIsExternal() { | |||||
| return $this->isExternal; | |||||
| } | |||||
| public function setIsLive($is_live) { | |||||
| $this->isLive = $is_live; | |||||
| return $this; | |||||
| } | |||||
| public function getIsLive() { | |||||
| return $this->isLive; | |||||
| } | |||||
| protected function getTagAttributes() { | protected function getTagAttributes() { | ||||
| return array(); | return array(); | ||||
| } | } | ||||
| protected function getTagContent() { | protected function getTagContent() { | ||||
| $viewer = $this->viewer; | $viewer = $this->viewer; | ||||
| $posts = $this->posts; | $posts = $this->posts; | ||||
| $nodata = $this->nodata; | $nodata = $this->nodata; | ||||
| Show All 19 Lines | foreach ($posts as $post) { | ||||
| $phame_post = new PHUIRemarkupView($viewer, $phame_post); | $phame_post = new PHUIRemarkupView($viewer, $phame_post); | ||||
| } else { | } else { | ||||
| $phame_post = phutil_tag('em', array(), pht('(Empty Post)')); | $phame_post = phutil_tag('em', array(), pht('(Empty Post)')); | ||||
| } | } | ||||
| $blogger = phutil_tag('strong', array(), $blogger); | $blogger = phutil_tag('strong', array(), $blogger); | ||||
| $date = phabricator_datetime($post->getDatePublished(), $viewer); | $date = phabricator_datetime($post->getDatePublished(), $viewer); | ||||
| $blog = null; | $blog = $post->getBlog(); | ||||
| if ($post->getBlog()) { | |||||
| $blog = phutil_tag( | if ($this->getIsLive()) { | ||||
| if ($this->getIsExternal()) { | |||||
| $blog_uri = $blog->getExternalLiveURI(); | |||||
| $post_uri = $post->getExternalLiveURI(); | |||||
| } else { | |||||
| $blog_uri = $blog->getInternalLiveURI(); | |||||
| $post_uri = $post->getInternalLiveURI(); | |||||
| } | |||||
| } else { | |||||
| $blog_uri = $blog->getViewURI(); | |||||
| $post_uri = $post->getViewURI(); | |||||
| } | |||||
| $blog_link = phutil_tag( | |||||
| 'a', | 'a', | ||||
| array( | array( | ||||
| 'href' => '/phame/blog/view/'.$post->getBlog()->getID().'/', | 'href' => $blog_uri, | ||||
| ), | ), | ||||
| $post->getBlog()->getName()); | $blog->getName()); | ||||
| } | |||||
| if ($this->showBlog && $blog) { | if ($this->showBlog) { | ||||
| if ($post->isDraft()) { | if ($post->isDraft()) { | ||||
| $subtitle = pht('Unpublished draft by %s in %s.', $blogger, $blog); | $subtitle = pht( | ||||
| 'Unpublished draft by %s in %s.', | |||||
| $blogger, | |||||
| $blog_link); | |||||
| } else { | } else { | ||||
| $subtitle = pht('By %s on %s in %s.', $blogger, $date, $blog); | $subtitle = pht( | ||||
| 'Written by %s on %s in %s.', | |||||
| $blogger, | |||||
| $date, | |||||
| $blog_link); | |||||
| } | } | ||||
| } else { | } else { | ||||
| if ($post->isDraft()) { | if ($post->isDraft()) { | ||||
| $subtitle = pht('Unpublished draft by %s.', $blogger); | $subtitle = pht('Unpublished draft by %s.', $blogger); | ||||
| } else { | } else { | ||||
| $subtitle = pht('Written by %s on %s.', $blogger, $date); | $subtitle = pht('Written by %s on %s.', $blogger, $date); | ||||
| } | } | ||||
| } | } | ||||
| $item = id(new PHUIDocumentSummaryView()) | $item = id(new PHUIDocumentSummaryView()) | ||||
| ->setTitle($post->getTitle()) | ->setTitle($post->getTitle()) | ||||
| ->setHref($post->getViewURI()) | ->setHref($post_uri) | ||||
| ->setSubtitle($subtitle) | ->setSubtitle($subtitle) | ||||
| ->setImage($blogger_image) | ->setImage($blogger_image) | ||||
| ->setImageHref($blogger_uri) | ->setImageHref($blogger_uri) | ||||
| ->setSummary($phame_post) | ->setSummary($phame_post) | ||||
| ->setDraft($post->isDraft()); | ->setDraft($post->isDraft()); | ||||
| $list[] = $item; | $list[] = $item; | ||||
| } | } | ||||
| Show All 11 Lines | |||||