コード例 #1
0
ファイル: SitemapController.php プロジェクト: reinfire/arfooo
 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();
 }
コード例 #2
0
ファイル: Mailer.php プロジェクト: reinfire/arfooo
 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;
 }
コード例 #3
0
 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);
 }
コード例 #4
0
ファイル: RssController.php プロジェクト: reinfire/arfooo
 /**
  * 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";
 }
コード例 #5
0
ファイル: SiteController.php プロジェクト: reinfire/arfooo
 /**
  * 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);
         }
     }
 }
コード例 #6
0
 public static function modifierObjUrl($object, $type, $absolute = false)
 {
     return AppRouter::getObjectUrl($object, $type, $absolute);
 }