function indexAction() { // add static links $urlRewriting = Config::get('urlRewriting'); $siteRootUrl = Config::get('siteRootUrl'); $siteMapGenerator = new SiteMapGenerator(); $siteMapGenerator->setSavePath(CODE_ROOT_DIR); $siteMapGenerator->addLink($siteRootUrl, '', 'always', '1.0'); if (Config::get("newsEnabled")) { $siteMapGenerator->addLink($siteRootUrl . AppRouter::getRewrittedUrl('/site/news', false), '', 'always', '1.0'); } if (Config::get("rssNewsEnabled")) { $siteMapGenerator->addLink($siteRootUrl . AppRouter::getRewrittedUrl('/rss/news', false), '', 'always', '0.8'); } if (Config::get("notationsEnabled")) { $siteMapGenerator->addLink($siteRootUrl . AppRouter::getRewrittedUrl('/site/topNotes', false), '', '', '0.8'); } if (Config::get("hitsEnabled")) { $siteMapGenerator->addLink($siteRootUrl . AppRouter::getRewrittedUrl('/site/topHits', false), '', '', '0.8'); } if (Config::get("topReferrersEnabled")) { $siteMapGenerator->addLink($siteRootUrl . AppRouter::getRewrittedUrl('/site/topReferrers', false), '', '', '0.8'); } if (Config::get("topRankEnabled")) { $siteMapGenerator->addLink($siteRootUrl . AppRouter::getRewrittedUrl('/site/topRank', false), '', '', '0.8'); } if (Config::get("allCategoriesPageEnabled")) { $siteMapGenerator->addLink($siteRootUrl . AppRouter::getRewrittedUrl('/category/showAll', false), '', 'weekly', '1.0'); } if (Config::get("contactPageEnabled")) { $siteMapGenerator->addLink($siteRootUrl . AppRouter::getRewrittedUrl('/contact', false), '', '', '1.0'); } // add all sites links $step = 1000; $maxSiteId = $this->site->get("MAX(siteId)"); for ($startId = 0; $startId <= $maxSiteId; $startId += $step) { $c = new Criteria(); $c->add("siteId", $startId, ">="); $c->add("siteId", $startId + $step, "<"); $c->add("status", 'validated'); $sites = $this->site->findAll($c, "siteId, siteTitle, creationDate, categoryId"); $this->site->attachParents($sites); foreach ($sites as $site) { $siteMapGenerator->addLink(AppRouter::getObjectUrl($site, "siteDetails", true), date("Y-m-d", strtotime($site['creationDate'])), '', '1.0'); } } // add all categories links $categories = $this->category->findAll(null, "categoryId, name, urlName"); foreach ($categories as $category) { $siteMapGenerator->addLink(AppRouter::getObjectUrl($category, "category", true), "", '', '1.0'); } $siteMapGenerator->endSiteMap(); }
function replaceTags($message, $site = null) { $replacements = array("[name of directory]" => Config::get("siteTitle"), "[url of your directory]" => Config::get("siteRootUrl")); if ($site) { $this->site->attachParents($site); $detailsUrl = AppRouter::getObjectUrl($site, "siteDetails", true); $category = $this->category->findByPk($site->categoryId, "name"); $siteDescription = utf8_strlen($site->description) > 100 ? utf8_substr($site->description, 0, 100) : $site->description; $replacements += array("[site name]" => $site->siteTitle, "[name of the category]" => $category->name, "[url site details]" => $detailsUrl, "[url site]" => $site->url, "[description of the site]" => $siteDescription, "[site type]" => $site->siteType == "basic" ? _t("Free") : _t("Privilege")); } $message = strtr($message, $replacements); return $message; }
function getBackLinkDataAction() { $this->viewClass = "JsonView"; $categoryId = $this->request->categoryId; $category = $this->category->findByPk($categoryId); $categoryBackLinkCode = ''; if (!empty($category)) { $backLinkUrl = AppRouter::getObjectUrl($category, "category", true); $backLinkText = Config::get("backLinkHtmlCode2Text"); if (empty($backLinkText)) { $backLinkText = Config::get("siteTitle"); } $backLinkText .= ' - ' . $category->name; $categoryBackLinkCode = '<a href="' . $backLinkUrl . '">' . $backLinkText . '</a>'; } $this->set("categoryBackLinkCode", $categoryBackLinkCode); }
/** * Generate RSS for specified site */ function siteAction($siteId) { if (!Config::get("rssSitesEnabled")) { $this->return404(); } //get category data $site = $this->site->findByPk($siteId); if (empty($site)) { return $this->return404(); } $this->site->attachParents($site); $rawSiteTitle = $site['siteTitle']; $doc = new XmlGenerator(); $rssNode = $doc->createElement('rss'); $doc->appendChild($rssNode); $rssNode->setAttribute('version', '2.0'); $channelNode = new XmlElement('channel'); $rssNode->appendChild($channelNode); //add channel properties $channelNode->addProperty('title', utf8_htmlspecialchars($rawSiteTitle)); $channelNode->addProperty('link', AppRouter::getObjectUrl($site, "siteDetails", true)); $channelNode->addProperty('description', _t('Site') . ' ' . utf8_htmlspecialchars($rawSiteTitle)); $channelNode->addProperty('language', 'fr-fr'); $channelNode->addProperty('lastBuildDate', date('D, j M Y H:i:s O')); $channelNode->addProperty('generator', 'RSS Generator'); $sites = array($site); $this->appendSites($channelNode, $sites); $this->set("doc", $doc); $this->viewClass = "XmlView"; }
/** * Display site details page */ function detailsAction($siteId, $niceUrl) { //set adPage for ads Display::set("adPage", "site" . $siteId); $cache = Cacher::getInstance(); $cacheLifeTime = Config::get("siteDetailsCacheLifeTime"); if (!Config::get("siteDetailsCacheEnabled") || ($site = $cache->load("siteDetails{$siteId}", true, $cacheLifeTime)) === null) { //get site data $site = $this->site->getSiteWithDetails($siteId); if (empty($site) || $site->status != "validated") { return $this->return404(); } $this->site->attachParents($site); //check passed siteTitle is url is correct $siteDetailsUrl = AppRouter::getObjectUrl($site, "siteDetails"); if ($siteDetailsUrl != $_SERVER['REQUEST_URI']) { $this->redirect($siteDetailsUrl, 301); } $this->site->attachExtraFields($site); $site->photos = $this->photo->getItemPhotos($siteId); //get site keywords $site->keywords = $site->getKeywords(); //get google details $googleStats = new GoogleStats(); $results = $googleStats->getGoogleDetailsOfSiteIfCached($site->url); //if results exists pass them to template if ($results) { $site->pageRank = $results['pageRank']; $site->backlinksCount = $results['backlinksCount']; $site->indexedPagesCount = $results['indexedPagesCount']; } else { //if no use ajax to reduce site generation time $this->set("ajaxGoogleDetails", true); } if (Config::get("showRandomSitesInDetails")) { $site->randomSites = $site->getSimilarSites(); } $site->comments = $this->comment->getSiteValidatedComments($siteId); if (Config::get("siteDetailsCacheEnabled")) { $cache->save($site, null, null, array("site", "site" . $siteId)); } } else { //check passed siteTitle is url is correct $siteDetailsUrl = AppRouter::getObjectUrl($site, "siteDetails"); if ($siteDetailsUrl != $_SERVER['REQUEST_URI']) { $this->redirect($siteDetailsUrl, 301); } } //set category id where site is placed to retrieve predefinitions in ads module Display::set("adSiteCategoryId", $site->categoryId); //set site rss href Display::set("siteRssHref", AppRouter::getRewrittedUrl("/rss/site/" . $site->siteId)); //set META keywords in HEAD section $this->set("metaKeywords", implode(", ", array_map(create_function('$a', 'return $a["keyword"];'), $site->keywords))); //set META description in HEAD section $this->set("metaDescription", utf8_substr(preg_replace("#\r?\n#", "", strip_tags($site->description)), 0, 200)); //check passed siteTitle is url is correct $siteDetailsUrl = AppRouter::getObjectUrl($site, "siteDetails"); if ($siteDetailsUrl != $_SERVER['REQUEST_URI']) { $this->redirect($siteDetailsUrl, 301); } $this->siteHtml->configureSiteHtmlDisplay($site); //set site data $this->set("site", $site); if (Config::get("googleMapEnabled")) { $this->set("googleMap", $site->getGoogleMap()); } if (Config::get("remoteRssParsingEnabled") && !empty($site['rssFeedOfSite'])) { define("MAGPIE_OUTPUT_ENCODING", "UTF-8"); define("MAGPIE_DETECT_ENCODING", true); // Define cache's maximum age define('MAGPIE_CACHE_AGE', 60 * 60 * 24 * intval(Config::get('magpieRssCacheMaxAgeDays'))); require_once Config::get('COMPONENTS_PATH') . 'magpierss/rss_fetch.php'; $rss = @fetch_rss($site['rssFeedOfSite']); if (!empty($rss)) { $remoteRss = array("items" => array(), "channel" => $rss->channel); $items = array_slice($rss->items, 0, Config::get("numberOfItemsForRssParsing")); foreach ($items as $item) { if (isset($item['description'])) { // Strip tags from each item's description $item['description'] = strip_tags(html_entity_decode($item['description'], ENT_COMPAT, 'UTF-8')); } if (!isset($item['link']) && isset($item['link_'])) { $item['link'] = $item['link_']; } if (!empty($item['link']) && !empty($item['title'])) { $remoteRss['items'][] = $item; } } $this->set("remoteRss", $remoteRss); } } }
public static function modifierObjUrl($object, $type, $absolute = false) { return AppRouter::getObjectUrl($object, $type, $absolute); }