/** * Get an array of Curry\Module\PageModuleWrapper objects for all modules on the PageRevision we are rendering. * * @return \Curry\Module\PageModuleWrapper[] */ protected function getPageModuleWrappers() { $langcode = (string) \Curry_Language::getLangCode(); $cacheName = md5(__CLASS__ . '_ModuleWrappers_' . $this->pageRevision->getPageRevisionId() . '_' . $langcode); if (($moduleWrappers = $this->app->cache->load($cacheName)) === false) { $moduleWrappers = $this->pageRevision->getPageModuleWrappers($langcode); $this->app->cache->save($moduleWrappers, $cacheName); } return $moduleWrappers; }
protected function find(ModelCriteria $query, $params) { $all = $this->pageRevision->getPageModuleWrappers($this->langcode); $user = User::getUser(); if ($user->hasPagePermission($this->pageRevision->getPage(), PageAccessPeer::PERM_MODULES)) { return $all; } $wrappers = array(); foreach ($all as $wrapper) { if ($user->hasModuleAccess($wrapper)) { $wrappers[] = $wrapper; } } return $wrappers; }
/** * Get "copy code" for page revision. * * @param PageRevision $pageRevision * @return array */ public static function getPageRevisionCode(PageRevision $pageRevision) { $modules = array(); foreach ($pageRevision->getPageModuleWrappers() as $pmw) { $modules[] = self::getModuleCode($pmw); } return array("base_page" => $pageRevision->getBasePage() ? $pageRevision->getBasePage()->getUrl() : null, "description" => $pageRevision->getDescription(), "template" => $pageRevision->getTemplate(), "modules" => $modules); }