@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Modernize Phame

Summary: Updates Phame for new modern methods.

Test Plan: New blog, edit blog, new post, edit post, publish post.

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin

Differential Revision: https://secure.phabricator.com/D14419

+153 -161
+20 -16
src/__phutil_library_map__.php
··· 3245 3245 'PhameBasicBlogSkin' => 'applications/phame/skins/PhameBasicBlogSkin.php', 3246 3246 'PhameBasicTemplateBlogSkin' => 'applications/phame/skins/PhameBasicTemplateBlogSkin.php', 3247 3247 'PhameBlog' => 'applications/phame/storage/PhameBlog.php', 3248 + 'PhameBlogController' => 'applications/phame/controller/blog/PhameBlogController.php', 3248 3249 'PhameBlogDeleteController' => 'applications/phame/controller/blog/PhameBlogDeleteController.php', 3249 3250 'PhameBlogEditController' => 'applications/phame/controller/blog/PhameBlogEditController.php', 3250 3251 'PhameBlogEditor' => 'applications/phame/editor/PhameBlogEditor.php', ··· 3263 3264 'PhameCreatePostConduitAPIMethod' => 'applications/phame/conduit/PhameCreatePostConduitAPIMethod.php', 3264 3265 'PhameDAO' => 'applications/phame/storage/PhameDAO.php', 3265 3266 'PhamePost' => 'applications/phame/storage/PhamePost.php', 3267 + 'PhamePostController' => 'applications/phame/controller/post/PhamePostController.php', 3266 3268 'PhamePostDeleteController' => 'applications/phame/controller/post/PhamePostDeleteController.php', 3267 3269 'PhamePostEditController' => 'applications/phame/controller/post/PhamePostEditController.php', 3268 3270 'PhamePostEditor' => 'applications/phame/editor/PhamePostEditor.php', ··· 7503 7505 'PhabricatorProjectInterface', 7504 7506 'PhabricatorApplicationTransactionInterface', 7505 7507 ), 7506 - 'PhameBlogDeleteController' => 'PhameController', 7507 - 'PhameBlogEditController' => 'PhameController', 7508 + 'PhameBlogController' => 'PhameController', 7509 + 'PhameBlogDeleteController' => 'PhameBlogController', 7510 + 'PhameBlogEditController' => 'PhameBlogController', 7508 7511 'PhameBlogEditor' => 'PhabricatorApplicationTransactionEditor', 7509 - 'PhameBlogFeedController' => 'PhameController', 7510 - 'PhameBlogListController' => 'PhameController', 7511 - 'PhameBlogLiveController' => 'PhameController', 7512 + 'PhameBlogFeedController' => 'PhameBlogController', 7513 + 'PhameBlogListController' => 'PhameBlogController', 7514 + 'PhameBlogLiveController' => 'PhameBlogController', 7512 7515 'PhameBlogQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 7513 7516 'PhameBlogSearchEngine' => 'PhabricatorApplicationSearchEngine', 7514 7517 'PhameBlogSite' => 'PhameSite', 7515 7518 'PhameBlogSkin' => 'PhabricatorController', 7516 7519 'PhameBlogTransaction' => 'PhabricatorApplicationTransaction', 7517 - 'PhameBlogViewController' => 'PhameController', 7520 + 'PhameBlogViewController' => 'PhameBlogController', 7518 7521 'PhameCelerityResources' => 'CelerityResources', 7519 7522 'PhameConduitAPIMethod' => 'ConduitAPIMethod', 7520 7523 'PhameController' => 'PhabricatorController', ··· 7530 7533 'PhabricatorSubscribableInterface', 7531 7534 'PhabricatorTokenReceiverInterface', 7532 7535 ), 7533 - 'PhamePostDeleteController' => 'PhameController', 7534 - 'PhamePostEditController' => 'PhameController', 7536 + 'PhamePostController' => 'PhameController', 7537 + 'PhamePostDeleteController' => 'PhamePostController', 7538 + 'PhamePostEditController' => 'PhamePostController', 7535 7539 'PhamePostEditor' => 'PhabricatorApplicationTransactionEditor', 7536 - 'PhamePostFramedController' => 'PhameController', 7537 - 'PhamePostListController' => 'PhameController', 7538 - 'PhamePostNewController' => 'PhameController', 7539 - 'PhamePostNotLiveController' => 'PhameController', 7540 - 'PhamePostPreviewController' => 'PhameController', 7541 - 'PhamePostPublishController' => 'PhameController', 7540 + 'PhamePostFramedController' => 'PhamePostController', 7541 + 'PhamePostListController' => 'PhamePostController', 7542 + 'PhamePostNewController' => 'PhamePostController', 7543 + 'PhamePostNotLiveController' => 'PhamePostController', 7544 + 'PhamePostPreviewController' => 'PhamePostController', 7545 + 'PhamePostPublishController' => 'PhamePostController', 7542 7546 'PhamePostQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 7543 7547 'PhamePostSearchEngine' => 'PhabricatorApplicationSearchEngine', 7544 7548 'PhamePostTransaction' => 'PhabricatorApplicationTransaction', 7545 7549 'PhamePostTransactionQuery' => 'PhabricatorApplicationTransactionQuery', 7546 - 'PhamePostUnpublishController' => 'PhameController', 7550 + 'PhamePostUnpublishController' => 'PhamePostController', 7547 7551 'PhamePostView' => 'AphrontView', 7548 - 'PhamePostViewController' => 'PhameController', 7552 + 'PhamePostViewController' => 'PhamePostController', 7549 7553 'PhameQueryConduitAPIMethod' => 'PhameConduitAPIMethod', 7550 7554 'PhameQueryPostsConduitAPIMethod' => 'PhameConduitAPIMethod', 7551 7555 'PhameResourceController' => 'CelerityResourceController',
-25
src/applications/phame/controller/PhameController.php
··· 2 2 3 3 abstract class PhameController extends PhabricatorController { 4 4 5 - protected function renderSideNavFilterView() { 6 - 7 - $base_uri = new PhutilURI($this->getApplicationURI()); 8 - 9 - $nav = new AphrontSideNavFilterView(); 10 - $nav->setBaseURI($base_uri); 11 - 12 - $nav->addLabel(pht('Posts')); 13 - $nav->addFilter('post/all', pht('Latest Posts')); 14 - $nav->addFilter('post/draft', pht('My Drafts')); 15 - $nav->addFilter('post', pht('My Posts')); 16 - 17 - $nav->addLabel(pht('Blogs')); 18 - $nav->addFilter('blog/user', pht('Joinable Blogs')); 19 - $nav->addFilter('blog/all', pht('All Blogs')); 20 - 21 - $nav->selectFilter(null); 22 - 23 - return $nav; 24 - } 25 - 26 5 protected function renderPostList( 27 6 array $posts, 28 7 PhabricatorUser $viewer, ··· 109 88 } 110 89 111 90 return $stories; 112 - } 113 - 114 - public function buildApplicationMenu() { 115 - return $this->renderSideNavFilterView()->getMenu(); 116 91 } 117 92 118 93 protected function buildApplicationCrumbs() {
+10
src/applications/phame/controller/blog/PhameBlogController.php
··· 1 + <?php 2 + 3 + abstract class PhameBlogController extends PhameController { 4 + 5 + public function buildApplicationMenu() { 6 + return $this->newApplicationMenu() 7 + ->setSearchEngine(new PhameBlogSearchEngine()); 8 + } 9 + 10 + }
+4 -4
src/applications/phame/controller/blog/PhameBlogDeleteController.php
··· 1 1 <?php 2 2 3 - final class PhameBlogDeleteController extends PhameController { 3 + final class PhameBlogDeleteController extends PhameBlogController { 4 4 5 5 public function handleRequest(AphrontRequest $request) { 6 - $user = $request->getUser(); 6 + $viewer = $request->getViewer(); 7 7 $id = $request->getURIData('id'); 8 8 9 9 $blog = id(new PhameBlogQuery()) 10 - ->setViewer($user) 10 + ->setViewer($viewer) 11 11 ->withIDs(array($id)) 12 12 ->requireCapabilities( 13 13 array( ··· 27 27 $cancel_uri = $this->getApplicationURI('/blog/view/'.$blog->getID().'/'); 28 28 29 29 $dialog = id(new AphrontDialogView()) 30 - ->setUser($user) 30 + ->setUser($viewer) 31 31 ->setTitle(pht('Delete Blog?')) 32 32 ->appendChild( 33 33 pht(
+18 -19
src/applications/phame/controller/blog/PhameBlogEditController.php
··· 1 1 <?php 2 2 3 3 final class PhameBlogEditController 4 - extends PhameController { 4 + extends PhameBlogController { 5 5 6 6 public function handleRequest(AphrontRequest $request) { 7 - $user = $request->getUser(); 7 + $viewer = $request->getViewer(); 8 8 $id = $request->getURIData('id'); 9 9 10 10 if ($id) { 11 11 $blog = id(new PhameBlogQuery()) 12 - ->setViewer($user) 12 + ->setViewer($viewer) 13 13 ->withIDs(array($id)) 14 14 ->requireCapabilities( 15 15 array( ··· 30 30 $v_projects = array_reverse($v_projects); 31 31 32 32 } else { 33 - $blog = PhameBlog::initializeNewBlog($user); 33 + $blog = PhameBlog::initializeNewBlog($viewer); 34 34 35 35 $submit_button = pht('Create Blog'); 36 36 $page_title = pht('Create Blog'); ··· 90 90 ->setNewValue(array('=' => array_fuse($v_projects))); 91 91 92 92 $editor = id(new PhameBlogEditor()) 93 - ->setActor($user) 93 + ->setActor($viewer) 94 94 ->setContentSourceFromRequest($request) 95 95 ->setContinueOnNoEffect(true); 96 96 ··· 111 111 } 112 112 113 113 $policies = id(new PhabricatorPolicyQuery()) 114 - ->setViewer($user) 114 + ->setViewer($viewer) 115 115 ->setObject($blog) 116 116 ->execute(); 117 117 ··· 119 119 $skins = mpull($skins, 'getName'); 120 120 121 121 $form = id(new AphrontFormView()) 122 - ->setUser($user) 122 + ->setUser($viewer) 123 123 ->appendChild( 124 124 id(new AphrontFormTextControl()) 125 125 ->setLabel(pht('Name')) ··· 129 129 ->setError($e_name)) 130 130 ->appendChild( 131 131 id(new PhabricatorRemarkupControl()) 132 - ->setUser($user) 132 + ->setUser($viewer) 133 133 ->setLabel(pht('Description')) 134 134 ->setName('description') 135 135 ->setValue($description) 136 136 ->setID('blog-description') 137 - ->setUser($user) 137 + ->setUser($viewer) 138 138 ->setDisableMacros(true)) 139 139 ->appendChild( 140 140 id(new AphrontFormPolicyControl()) 141 - ->setUser($user) 141 + ->setUser($viewer) 142 142 ->setCapability(PhabricatorPolicyCapability::CAN_VIEW) 143 143 ->setPolicyObject($blog) 144 144 ->setPolicies($policies) ··· 147 147 ->setName('can_view')) 148 148 ->appendChild( 149 149 id(new AphrontFormPolicyControl()) 150 - ->setUser($user) 150 + ->setUser($viewer) 151 151 ->setCapability(PhabricatorPolicyCapability::CAN_EDIT) 152 152 ->setPolicyObject($blog) 153 153 ->setPolicies($policies) ··· 155 155 ->setName('can_edit')) 156 156 ->appendChild( 157 157 id(new AphrontFormPolicyControl()) 158 - ->setUser($user) 158 + ->setUser($viewer) 159 159 ->setCapability(PhabricatorPolicyCapability::CAN_JOIN) 160 160 ->setPolicyObject($blog) 161 161 ->setPolicies($policies) ··· 195 195 $crumbs->addTextCrumb(pht('Blogs'), $this->getApplicationURI('blog/')); 196 196 $crumbs->addTextCrumb($page_title, $this->getApplicationURI('blog/new')); 197 197 198 - return $this->buildApplicationPage( 199 - array( 200 - $crumbs, 201 - $form_box, 202 - ), 203 - array( 204 - 'title' => $page_title, 198 + return $this->newPage() 199 + ->setTitle($page_title) 200 + ->setCrumbs($crumbs) 201 + ->appendChild( 202 + array( 203 + $form_box, 205 204 )); 206 205 } 207 206 }
+6 -6
src/applications/phame/controller/blog/PhameBlogFeedController.php
··· 1 1 <?php 2 2 3 - final class PhameBlogFeedController extends PhameController { 3 + final class PhameBlogFeedController extends PhameBlogController { 4 4 5 5 public function shouldRequireLogin() { 6 6 return false; 7 7 } 8 8 9 9 public function handleRequest(AphrontRequest $request) { 10 - $user = $request->getUser(); 10 + $viewer = $request->getViewer(); 11 11 $id = $request->getURIData('id'); 12 12 13 13 $blog = id(new PhameBlogQuery()) 14 - ->setViewer($user) 14 + ->setViewer($viewer) 15 15 ->withIDs(array($id)) 16 16 ->executeOne(); 17 17 if (!$blog) { ··· 19 19 } 20 20 21 21 $posts = id(new PhamePostQuery()) 22 - ->setViewer($user) 22 + ->setViewer($viewer) 23 23 ->withBlogPHIDs(array($blog->getPHID())) 24 24 ->withVisibility(PhamePost::VISIBILITY_PUBLISHED) 25 25 ->execute(); ··· 47 47 $content[] = phutil_tag('subtitle', array(), $description); 48 48 } 49 49 50 - $engine = id(new PhabricatorMarkupEngine())->setViewer($user); 50 + $engine = id(new PhabricatorMarkupEngine())->setViewer($viewer); 51 51 foreach ($posts as $post) { 52 52 $engine->addObject($post, PhamePost::MARKUP_FIELD_BODY); 53 53 } ··· 55 55 56 56 $blogger_phids = mpull($posts, 'getBloggerPHID'); 57 57 $bloggers = id(new PhabricatorHandleQuery()) 58 - ->setViewer($user) 58 + ->setViewer($viewer) 59 59 ->withPHIDs($blogger_phids) 60 60 ->execute(); 61 61
+1 -1
src/applications/phame/controller/blog/PhameBlogListController.php
··· 1 1 <?php 2 2 3 - final class PhameBlogListController extends PhameController { 3 + final class PhameBlogListController extends PhameBlogController { 4 4 5 5 public function shouldAllowPublic() { 6 6 return true;
+4 -4
src/applications/phame/controller/blog/PhameBlogLiveController.php
··· 1 1 <?php 2 2 3 - final class PhameBlogLiveController extends PhameController { 3 + final class PhameBlogLiveController extends PhameBlogController { 4 4 5 5 public function shouldAllowPublic() { 6 6 return true; 7 7 } 8 8 9 9 public function handleRequest(AphrontRequest $request) { 10 - $user = $request->getUser(); 10 + $viewer = $request->getViewer(); 11 11 12 12 $site = $request->getSite(); 13 13 if ($site instanceof PhameBlogSite) { ··· 16 16 $id = $request->getURIData('id'); 17 17 18 18 $blog = id(new PhameBlogQuery()) 19 - ->setViewer($user) 19 + ->setViewer($viewer) 20 20 ->withIDs(array($id)) 21 21 ->executeOne(); 22 22 if (!$blog) { ··· 38 38 39 39 $dialog = id(new AphrontDialogView()) 40 40 ->setTitle(pht('Blog Moved')) 41 - ->setUser($user) 41 + ->setUser($viewer) 42 42 ->appendParagraph(pht('This blog is now hosted here:')) 43 43 ->appendParagraph( 44 44 phutil_tag(
+25 -26
src/applications/phame/controller/blog/PhameBlogViewController.php
··· 1 1 <?php 2 2 3 - final class PhameBlogViewController extends PhameController { 3 + final class PhameBlogViewController extends PhameBlogController { 4 4 5 5 public function handleRequest(AphrontRequest $request) { 6 - $user = $request->getUser(); 6 + $viewer = $request->getViewer(); 7 7 $id = $request->getURIData('id'); 8 8 9 9 $blog = id(new PhameBlogQuery()) 10 - ->setViewer($user) 10 + ->setViewer($viewer) 11 11 ->withIDs(array($id)) 12 12 ->executeOne(); 13 13 if (!$blog) { ··· 18 18 ->readFromRequest($request); 19 19 20 20 $posts = id(new PhamePostQuery()) 21 - ->setViewer($user) 21 + ->setViewer($viewer) 22 22 ->withBlogPHIDs(array($blog->getPHID())) 23 23 ->executeWithCursorPager($pager); 24 24 25 25 $header = id(new PHUIHeaderView()) 26 26 ->setHeader($blog->getName()) 27 - ->setUser($user) 27 + ->setUser($viewer) 28 28 ->setPolicyObject($blog); 29 29 30 - $actions = $this->renderActions($blog, $user); 31 - $properties = $this->renderProperties($blog, $user, $actions); 30 + $actions = $this->renderActions($blog, $viewer); 31 + $properties = $this->renderProperties($blog, $viewer, $actions); 32 32 $post_list = $this->renderPostList( 33 33 $posts, 34 - $user, 34 + $viewer, 35 35 pht('This blog has no visible posts.')); 36 36 37 37 $post_list = id(new PHUIObjectBoxView()) ··· 46 46 ->setHeader($header) 47 47 ->addPropertyList($properties); 48 48 49 - return $this->buildApplicationPage( 50 - array( 51 - $crumbs, 52 - $object_box, 53 - $post_list, 54 - ), 55 - array( 56 - 'title' => $blog->getName(), 49 + return $this->newPage() 50 + ->setTitle($blog->getName()) 51 + ->setCrumbs($crumbs) 52 + ->appendChild( 53 + array( 54 + $object_box, 55 + $post_list, 57 56 )); 58 57 } 59 58 60 59 private function renderProperties( 61 60 PhameBlog $blog, 62 - PhabricatorUser $user, 61 + PhabricatorUser $viewer, 63 62 PhabricatorActionListView $actions) { 64 63 65 64 require_celerity_resource('aphront-tooltip-css'); 66 65 Javelin::initBehavior('phabricator-tooltips'); 67 66 68 67 $properties = id(new PHUIPropertyListView()) 69 - ->setUser($user) 68 + ->setUser($viewer) 70 69 ->setObject($blog) 71 70 ->setActionList($actions); 72 71 ··· 94 93 $feed_uri)); 95 94 96 95 $descriptions = PhabricatorPolicyQuery::renderPolicyDescriptions( 97 - $user, 96 + $viewer, 98 97 $blog); 99 98 100 99 $properties->addProperty( ··· 106 105 $descriptions[PhabricatorPolicyCapability::CAN_JOIN]); 107 106 108 107 $engine = id(new PhabricatorMarkupEngine()) 109 - ->setViewer($user) 108 + ->setViewer($viewer) 110 109 ->addObject($blog, PhameBlog::MARKUP_FIELD_DESCRIPTION) 111 110 ->process(); 112 111 ··· 116 115 $description = PhabricatorMarkupEngine::renderOneObject( 117 116 id(new PhabricatorMarkupOneOff())->setContent($blog->getDescription()), 118 117 'default', 119 - $user); 118 + $viewer); 120 119 $properties->addSectionHeader( 121 120 pht('Description'), 122 121 PHUIPropertyListView::ICON_SUMMARY); ··· 126 125 return $properties; 127 126 } 128 127 129 - private function renderActions(PhameBlog $blog, PhabricatorUser $user) { 128 + private function renderActions(PhameBlog $blog, PhabricatorUser $viewer) { 130 129 $actions = id(new PhabricatorActionListView()) 131 130 ->setObject($blog) 132 131 ->setObjectURI($this->getRequest()->getRequestURI()) 133 - ->setUser($user); 132 + ->setUser($viewer); 134 133 135 134 $can_edit = PhabricatorPolicyFilter::hasCapability( 136 - $user, 135 + $viewer, 137 136 $blog, 138 137 PhabricatorPolicyCapability::CAN_EDIT); 139 138 140 139 $can_join = PhabricatorPolicyFilter::hasCapability( 141 - $user, 140 + $viewer, 142 141 $blog, 143 142 PhabricatorPolicyCapability::CAN_JOIN); 144 143 ··· 152 151 153 152 $actions->addAction( 154 153 id(new PhabricatorActionView()) 155 - ->setUser($user) 154 + ->setUser($viewer) 156 155 ->setIcon('fa-globe') 157 156 ->setHref($blog->getLiveURI()) 158 157 ->setName(pht('View Live')));
+10
src/applications/phame/controller/post/PhamePostController.php
··· 1 + <?php 2 + 3 + abstract class PhamePostController extends PhameController { 4 + 5 + public function buildApplicationMenu() { 6 + return $this->newApplicationMenu() 7 + ->setSearchEngine(new PhamePostSearchEngine()); 8 + } 9 + 10 + }
+4 -4
src/applications/phame/controller/post/PhamePostDeleteController.php
··· 1 1 <?php 2 2 3 - final class PhamePostDeleteController extends PhameController { 3 + final class PhamePostDeleteController extends PhamePostController { 4 4 5 5 public function handleRequest(AphrontRequest $request) { 6 - $user = $request->getUser(); 6 + $viewer = $request->getViewer(); 7 7 8 8 $post = id(new PhamePostQuery()) 9 - ->setViewer($user) 9 + ->setViewer($viewer) 10 10 ->withIDs(array($request->getURIData('id'))) 11 11 ->requireCapabilities( 12 12 array( ··· 26 26 $cancel_uri = $this->getApplicationURI('/post/view/'.$post->getID().'/'); 27 27 28 28 $dialog = id(new AphrontDialogView()) 29 - ->setUser($user) 29 + ->setUser($viewer) 30 30 ->setTitle(pht('Delete Post?')) 31 31 ->appendChild( 32 32 pht(
+1 -1
src/applications/phame/controller/post/PhamePostEditController.php
··· 1 1 <?php 2 2 3 - final class PhamePostEditController extends PhameController { 3 + final class PhamePostEditController extends PhamePostController { 4 4 5 5 public function handleRequest(AphrontRequest $request) { 6 6 $viewer = $request->getViewer();
+3 -3
src/applications/phame/controller/post/PhamePostFramedController.php
··· 1 1 <?php 2 2 3 - final class PhamePostFramedController extends PhameController { 3 + final class PhamePostFramedController extends PhamePostController { 4 4 5 5 public function handleRequest(AphrontRequest $request) { 6 - $user = $request->getViewer(); 6 + $viewer = $request->getViewer(); 7 7 $id = $request->getURIData('id'); 8 8 9 9 $post = id(new PhamePostQuery()) 10 - ->setViewer($user) 10 + ->setViewer($viewer) 11 11 ->withIDs(array($id)) 12 12 ->requireCapabilities( 13 13 array(
+1 -1
src/applications/phame/controller/post/PhamePostListController.php
··· 1 1 <?php 2 2 3 - final class PhamePostListController extends PhameController { 3 + final class PhamePostListController extends PhamePostController { 4 4 5 5 public function shouldAllowPublic() { 6 6 return true;
+17 -17
src/applications/phame/controller/post/PhamePostNewController.php
··· 1 1 <?php 2 2 3 - final class PhamePostNewController extends PhameController { 3 + final class PhamePostNewController extends PhamePostController { 4 4 5 5 public function handleRequest(AphrontRequest $request) { 6 - $user = $request->getUser(); 6 + $viewer = $request->getViewer(); 7 7 $id = $request->getURIData('id'); 8 8 9 9 $post = null; 10 10 $view_uri = null; 11 11 if ($id) { 12 12 $post = id(new PhamePostQuery()) 13 - ->setViewer($user) 13 + ->setViewer($viewer) 14 14 ->withIDs(array($id)) 15 15 ->requireCapabilities( 16 16 array( ··· 26 26 27 27 if ($request->isFormPost()) { 28 28 $blog = id(new PhameBlogQuery()) 29 - ->setViewer($user) 29 + ->setViewer($viewer) 30 30 ->withIDs(array($request->getInt('blog'))) 31 31 ->requireCapabilities( 32 32 array( ··· 49 49 } 50 50 51 51 $blogs = id(new PhameBlogQuery()) 52 - ->setViewer($user) 52 + ->setViewer($viewer) 53 53 ->requireCapabilities( 54 54 array( 55 55 PhabricatorPolicyCapability::CAN_JOIN, ··· 58 58 59 59 $crumbs = $this->buildApplicationCrumbs(); 60 60 $crumbs->addTextCrumb($title, $view_uri); 61 - $display = array(); 62 - $display[] = $crumbs; 63 61 62 + $notification = null; 63 + $form_box = null; 64 64 if (!$blogs) { 65 65 $notification = id(new PHUIInfoView()) 66 66 ->setSeverity(PHUIInfoView::SEVERITY_NODATA) ··· 68 68 pht('You do not have permission to join any blogs. Create a blog '. 69 69 'first, then you can post to it.')); 70 70 71 - $display[] = $notification; 72 71 } else { 73 72 $options = mpull($blogs, 'getName', 'getID'); 74 73 asort($options); ··· 79 78 } 80 79 81 80 $form = id(new AphrontFormView()) 82 - ->setUser($user) 81 + ->setUser($viewer) 83 82 ->appendChild( 84 83 id(new AphrontFormSelectControl()) 85 84 ->setLabel(pht('Blog')) ··· 102 101 ->setValue(pht('Continue'))); 103 102 } 104 103 105 - 106 104 $form_box = id(new PHUIObjectBoxView()) 107 105 ->setHeaderText($title) 108 106 ->setForm($form); 109 - 110 - $display[] = $form_box; 111 107 } 112 108 113 - return $this->buildApplicationPage( 114 - $display, 115 - array( 116 - 'title' => $title, 109 + return $this->newPage() 110 + ->setTitle($title) 111 + ->setCrumbs($crumbs) 112 + ->appendChild( 113 + array( 114 + $notification, 115 + $form_box, 117 116 )); 118 - } 117 + 118 + } 119 119 120 120 }
+4 -4
src/applications/phame/controller/post/PhamePostNotLiveController.php
··· 1 1 <?php 2 2 3 - final class PhamePostNotLiveController extends PhameController { 3 + final class PhamePostNotLiveController extends PhamePostController { 4 4 5 5 public function handleRequest(AphrontRequest $request) { 6 - $user = $request->getUser(); 6 + $viewer = $request->getViewer(); 7 7 $id = $request->getURIData('id'); 8 8 9 9 $post = id(new PhamePostQuery()) 10 - ->setViewer($user) 10 + ->setViewer($viewer) 11 11 ->withIDs(array($id)) 12 12 ->executeOne(); 13 13 if (!$post) { ··· 32 32 $cancel_uri = $this->getApplicationURI('/post/view/'.$post->getID().'/'); 33 33 34 34 $dialog = id(new AphrontDialogView()) 35 - ->setUser($user) 35 + ->setUser($viewer) 36 36 ->setTitle(pht('Post Not Live')) 37 37 ->addCancelButton($cancel_uri); 38 38
+1 -1
src/applications/phame/controller/post/PhamePostPreviewController.php
··· 1 1 <?php 2 2 3 - final class PhamePostPreviewController extends PhameController { 3 + final class PhamePostPreviewController extends PhamePostController { 4 4 5 5 protected function getSideNavFilter() { 6 6 return null;
+15 -20
src/applications/phame/controller/post/PhamePostPublishController.php
··· 1 1 <?php 2 2 3 - final class PhamePostPublishController extends PhameController { 3 + final class PhamePostPublishController extends PhamePostController { 4 4 5 5 public function handleRequest(AphrontRequest $request) { 6 - $user = $request->getUser(); 6 + $viewer = $request->getViewer(); 7 7 $id = $request->getURIData('id'); 8 8 9 9 $post = id(new PhamePostQuery()) 10 - ->setViewer($user) 10 + ->setViewer($viewer) 11 11 ->withIDs(array($id)) 12 12 ->requireCapabilities( 13 13 array( ··· 29 29 } 30 30 31 31 $form = id(new AphrontFormView()) 32 - ->setUser($user) 32 + ->setUser($viewer) 33 33 ->appendChild( 34 34 id(new AphrontFormSubmitControl()) 35 35 ->setValue(pht('Publish Post')) ··· 44 44 $crumbs = $this->buildApplicationCrumbs(); 45 45 $crumbs->addTextCrumb(pht('Preview'), $view_uri); 46 46 47 - $nav = $this->renderSideNavFilterView(null); 48 - $nav->appendChild( 49 - array( 50 - $crumbs, 51 - $form_box, 52 - $frame, 53 - )); 54 - 55 - return $this->buildApplicationPage( 56 - $nav, 57 - array( 58 - 'title' => pht('Preview Post'), 47 + return $this->newPage() 48 + ->setTitle(pht('Preview Post')) 49 + ->setCrumbs($crumbs) 50 + ->appendChild( 51 + array( 52 + $form_box, 53 + $frame, 59 54 )); 60 55 } 61 56 62 57 private function renderPreviewFrame(PhamePost $post) { 63 58 64 - // TODO: Clean up this CSS. 65 - 66 59 return phutil_tag( 67 60 'div', 68 61 array( 69 - 'style' => 'text-align: center; padding: 1em;', 62 + 'style' => 'text-align: center; padding: 16px;', 70 63 ), 71 64 phutil_tag( 72 65 'iframe', 73 66 array( 74 67 'style' => 'width: 100%; height: 600px; '. 75 - 'border: 1px solid #303030;', 68 + 'border: 1px solid #BFCFDA; '. 69 + 'background-color: #fff; '. 70 + 'border-radius: 3px; ', 76 71 'src' => $this->getApplicationURI('/post/framed/'.$post->getID().'/'), 77 72 ), 78 73 ''));
+4 -4
src/applications/phame/controller/post/PhamePostUnpublishController.php
··· 1 1 <?php 2 2 3 - final class PhamePostUnpublishController extends PhameController { 3 + final class PhamePostUnpublishController extends PhamePostController { 4 4 5 5 public function handleRequest(AphrontRequest $request) { 6 - $user = $request->getUser(); 6 + $viewer = $request->getViewer(); 7 7 $id = $request->getURIData('id'); 8 8 9 9 $post = id(new PhamePostQuery()) 10 - ->setViewer($user) 10 + ->setViewer($viewer) 11 11 ->withIDs(array($id)) 12 12 ->requireCapabilities( 13 13 array( ··· 30 30 $cancel_uri = $this->getApplicationURI('/post/view/'.$post->getID().'/'); 31 31 32 32 $dialog = id(new AphrontDialogView()) 33 - ->setUser($user) 33 + ->setUser($viewer) 34 34 ->setTitle(pht('Unpublish Post?')) 35 35 ->appendChild( 36 36 pht(
+1 -1
src/applications/phame/controller/post/PhamePostViewController.php
··· 1 1 <?php 2 2 3 - final class PhamePostViewController extends PhameController { 3 + final class PhamePostViewController extends PhamePostController { 4 4 5 5 public function handleRequest(AphrontRequest $request) { 6 6 $viewer = $request->getViewer();
+1 -1
src/applications/phame/query/PhameBlogSearchEngine.php
··· 30 30 31 31 protected function getBuiltinQueryNames() { 32 32 $names = array( 33 - 'all' => pht('All'), 33 + 'all' => pht('All Blogs'), 34 34 ); 35 35 return $names; 36 36 }
+3 -3
src/applications/phame/query/PhamePostSearchEngine.php
··· 44 44 45 45 protected function getBuiltinQueryNames() { 46 46 $names = array( 47 - 'all' => pht('All'), 48 - 'live' => pht('Live'), 49 - 'draft' => pht('Draft'), 47 + 'all' => pht('All Posts'), 48 + 'live' => pht('Live Posts'), 49 + 'draft' => pht('Draft Posts'), 50 50 ); 51 51 return $names; 52 52 }