Example #1
0
 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);
 }
Example #3
0
 /**
  * @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);
     }
 }
Example #4
0
 public function isPageDraft()
 {
     return parent::isPageDraft();
 }