/** * @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 { $item->lock(); $tree = $page->getSiteTreeObject(); $returnID = false; if ($tree instanceof SiteTree) { $returnID = $tree->getSiteHomePageID(); } $cache->save($item->set($returnID)); } if ($returnID) { return static::getByID($returnID); } }
private static function addStackToCategory(\Concrete\Core\Page\Page $parent, $name, $type = 0) { $data = array(); $data['name'] = $name; if (!$name) { $data['name'] = t('No Name'); } $pagetype = PageType::getByHandle(STACKS_PAGE_TYPE); $page = $parent->add($pagetype, $data); // we have to do this because we need the area to exist before we try and add something to it. Area::getOrCreate($page, STACKS_AREA_NAME); // finally we add the row to the stacks table $db = Database::connection(); $stackCID = $page->getCollectionID(); $siteTreeID = $parent->getSiteTreeObject()->getSiteTreeID(); $v = array($name, $stackCID, $type, $siteTreeID); $db->Execute('insert into Stacks (stName, cID, stType, siteTreeID) values (?, ?, ?, ?)', $v); $stack = static::getByID($stackCID); return $stack; }