public function executeIndex(sfWebRequest $request) { if (!aPageTable::getFirstEnginePage('aBlog')) { $this->setTemplate('engineWarning'); } parent::executeIndex($request); aBlogItemTable::populatePages($this->pager->getResults()); }
/** * Prepends the current CMS page to the URL. * * @param string $url The URL so far obtained from parent::generate * @param Boolean $absolute Whether to generate an absolute URL * * @return string The generated URL */ public static function addPageToUrl(sfRoute $route, $url, $absolute) { $defaults = $route->getDefaults(); $currentPage = aTools::getCurrentPage(); $engine = $defaults['module']; if (isset(self::$targetEnginePages[$engine]) && count(self::$targetEnginePages[$engine])) { $page = end(self::$targetEnginePages[$engine]); } elseif (!$currentPage || $currentPage->engine !== $defaults['module']) { $page = aPageTable::getFirstEnginePage($defaults['module']); } else { $page = $currentPage; } if (!$page) { throw new sfException('Attempt to generate aRoute URL for module ' . $defaults['module'] . ' with no matching engine page on the site'); } // A route URL of / for an engine route maps to the page itself, without a trailing / if ($url === '/') { $url = ''; } // Ditto for / followed by a query string (missed this before) if (substr($url, 0, 2) === '/?') { $url = substr($url, 1); } $pageUrl = $page->getUrl($absolute); // Strip controller off so it doesn't duplicate the controller in the // URL we just generated. We could use the slug directly, but that would // break if the CMS were not mounted at the root on a particular site. // Take care to function properly in the presence of an absolute URL if (preg_match("/^(https?:\\/\\/[^\\/]+)?\\/[^\\/]+\\.php(.*)\$/", $pageUrl, $matches)) { $pageUrl = $matches[2]; } return $pageUrl . $url; }
/** * Prepends the current CMS page to the URL. * * @param string $url The URL so far obtained from parent::generate * @param Boolean $absolute Whether to generate an absolute URL * * @return string The generated URL */ public static function addPageToUrl(sfRoute $route, $url, $absolute) { $slug = aRouteTools::getContextEngineSlug($route); if (!$slug) { $defaults = $route->getDefaults(); $page = aPageTable::getFirstEnginePage($defaults['module']); if (!$page) { $slug = null; } else { $slug = $page->slug; } } if (!$slug) { throw new sfException('Attempt to generate aRoute URL for module ' . $defaults['module'] . ' with no matching engine page on the site'); } // A route URL of / for an engine route maps to the page itself, without a trailing / if ($url === '/') { $url = ''; } // Ditto for / followed by a query string (missed this before) if (substr($url, 0, 2) === '/?') { $url = substr($url, 1); } $pageUrl = aTools::urlForPage($slug, $absolute); $rr = preg_quote(sfContext::getInstance()->getRequest()->getRelativeUrlRoot(), '/'); // Strip controller off so it doesn't duplicate the controller in the // URL we just generated. Also strip off sf_relative_root if any. // We could use the slug directly, but that would // break if the CMS were not mounted at the root on a particular site. // Take care to function properly in the presence of an absolute URL if (preg_match("/^(?:https?:\\/\\/[^\\/]+)?{$rr}(?:\\/[^\\/]+\\.php)?(.*)\$/", $pageUrl, $matches)) { $pageUrl = $matches[1]; } // Fix double / at beginning when engine is at root of site (think "just a blog") $finalUrl = $pageUrl . $url; $finalUrl = preg_replace('|^//|', '/', $finalUrl); return $finalUrl; }