public function getPublishButtonTitle(Page $c) { if ($c->isPageDraft()) { $publishTitle = t('Publish Page'); } else { $publishTitle = t('Publish Changes'); } $pk = Key::getByHandle('approve_page_versions'); $pk->setPermissionObject($c); $pa = $pk->getPermissionAccessObject(); $workflows = array(); $canApproveWorkflow = true; if (is_object($pa)) { $workflows = $pa->getWorkflows(); } foreach ($workflows as $wf) { if (!$wf->canApproveWorkflow()) { $canApproveWorkflow = false; } } if (count($workflows) > 0 && !$canApproveWorkflow) { $publishTitle = t('Submit to Workflow'); } return $publishTitle; }
public function publishToPage(Page $c, $data, $controls) { if (!is_array($data)) { $data = []; } $data += ['name' => null]; $slug = array_filter($controls, function ($item) { if ($item instanceof UrlSlugCorePageProperty) { return true; } return false; }); $this->addPageTypeComposerControlRequestValue('cName', $data['name']); if (!count($slug) && $c->isPageDraft()) { $txt = new Text(); $this->addPageTypeComposerControlRequestValue('cHandle', $txt->urlify($data['name'], \Config::get('concrete.seo.segment_max_length'))); } parent::publishToPage($c, $data, $controls); }
/** * @param Page $page * * @return Section */ public static function getBySectionOfSite($page) { $identifier = sprintf('/multilingual/section/%s', $page->getCollectionID()); $cache = \Core::make('cache/request'); $item = $cache->getItem($identifier); if (!$item->isMiss()) { $returnID = $item->get(); } else { $returnID = null; $item->lock(); if ($page->getPageTypeHandle() == STACKS_PAGE_TYPE) { $parent = Page::getByID($page->getCollectionParentID()); if ($parent->getCollectionPath() == STACKS_PAGE_PATH) { // this is the default multilingual section. return static::getDefaultSection(); } else { // this is a stack category page type $locale = $parent->getCollectionHandle(); return static::getByLocale($locale); } } else { if ($page->isPageDraft() && $page->getPageDraftTargetParentPageID()) { $cParentID = $page->getPageDraftTargetParentPageID(); } else { $cParentID = $page->getCollectionParentID(); } $parent = \Page::getByID($cParentID); $nav = \Core::make('helper/navigation'); $pages = $nav->getTrailToCollection($parent); $pages = array_reverse($pages); $pages[] = $parent; $pages[] = $page; $ids = self::getIDList(); $returnID = false; foreach ($pages as $pc) { if (in_array($pc->getCollectionID(), $ids)) { $returnID = $pc->getCollectionID(); } } } $item->set($returnID); } if ($returnID) { return static::getByID($returnID); } }
public function isPageDraft() { return parent::isPageDraft(); }