public function render() { require_celerity_resource('phabricator-remarkup-css'); $user = $this->getUser(); $blogger = $this->getBlogger(); $post = $this->getPost(); $engine = PhabricatorMarkupEngine::newPhameMarkupEngine(); $body = $engine->markupText($post->getBody()); if ($post->isDraft()) { $uri = '/phame/draft/'; $label = 'Back to Your Drafts'; } else { $uri = '/phame/posts/' . $blogger->getUsername() . '/'; $label = 'More Posts by ' . phutil_escape_html($blogger->getUsername()); } $button = phutil_render_tag('a', array('href' => $uri, 'class' => 'grey button'), $label); $publish_date = $post->getDatePublished(); if ($publish_date) { $caption = 'Published ' . phabricator_datetime($publish_date, $user); } else { $caption = 'Last edited ' . phabricator_datetime($post->getDateModified(), $user); } $caption .= ' by ' . phutil_render_tag('a', array('href' => new PhutilURI('/p/' . $blogger->getUsername() . '/')), phutil_escape_html($blogger->getUsername())) . '.'; if ($this->isPreview()) { $width = AphrontPanelView::WIDTH_FULL; } else { $width = AphrontPanelView::WIDTH_WIDE; } $panel = id(new AphrontPanelView())->setHeader(phutil_escape_html($post->getTitle()))->appendChild('<div class="phabricator-remarkup">' . $body . '</div>')->setWidth($width)->addButton($button)->setCaption($caption); if ($user->getPHID() == $post->getBloggerPHID()) { if ($post->isDraft()) { $label = 'Edit Draft'; } else { $label = 'Edit Post'; } $button = phutil_render_tag('a', array('href' => $post->getEditURI(), 'class' => 'grey button'), $label); $panel->addButton($button); } switch ($post->getCommentsWidget()) { case 'facebook': $comments = $this->renderFacebookComments(); break; case 'disqus': $comments = $this->renderDisqusComments(); break; case 'none': default: $comments = null; break; } $panel->appendChild($comments); return $panel->render(); }
public function newMarkupEngine($field) { return PhabricatorMarkupEngine::newPhameMarkupEngine(); }
public function render() { $user = $this->getUser(); $posts = $this->getPosts(); $bloggers = $this->getBloggers(); $noun = $this->getPostNoun(); if (empty($posts)) { $panel = id(new AphrontPanelView())->setHeader(sprintf('No %ss... Yet!', $noun))->setCaption('Will you answer the call to phame?')->setCreateButton(sprintf('New %s', $noun), sprintf('/phame/%s/new', strtolower($noun))); return $panel->render(); } require_celerity_resource('phabricator-remarkup-css'); $engine = PhabricatorMarkupEngine::newPhameMarkupEngine(); $html = array(); $actions = $this->getActions(); foreach ($posts as $post) { $blogger_phid = $post->getBloggerPHID(); $blogger = $bloggers[$blogger_phid]; $updated = phabricator_datetime($post->getDateModified(), $user); $body = $engine->markupText($post->getBody()); $panel = id(new AphrontPanelView())->setHeader(phutil_escape_html($post->getTitle()))->setCaption('Last updated ' . $updated)->appendChild('<div class="phabricator-remarkup">' . $body . '</div>'); foreach ($actions as $action) { switch ($action) { case 'view': $uri = $post->getViewURI($blogger->getUsername()); $label = 'View ' . $noun; break; case 'edit': $uri = $post->getEditURI(); $label = 'Edit ' . $noun; break; default: break; } $button = phutil_render_tag('a', array('href' => $uri, 'class' => 'grey button'), $label); $panel->addButton($button); } $html[] = $panel->render(); } return implode('', $html); }