public static function &getInstance() { if (self::$_instance == null) { self::$_instance = new __SiteMap(); } return self::$_instance; }
public function &getLinkedPage() { $return_value = null; if (__SiteMap::getInstance()->hasPage($this->_href)) { $return_value = __SiteMap::getInstance()->getPage($this->_href); } return $return_value; }
public function updateRanks_click(__UIEvent &$event) { $sitemap = __SiteMap::getInstance(); $page_ranker = new __PageRanker($sitemap); $page_ranker->calculate(); $sitemap->saveResults(); $this->refresh(); }
public function rankAnalysisAction() { $mav = new __ModelAndView('rankAnalysis'); $sitemap = __SiteMap::getInstance(); $pages = $sitemap->getPages(); usort($pages, array($this, 'sortByPagerank')); $mav->pages = $pages; return $mav; }
public function defaultAction() { $mav = new __ModelAndView('siteAnalyzer'); $sitemap = __SiteMap::getInstance(); $last_update = $sitemap->getLastUpdate(); if ($last_update !== null) { $mav->last_update = date("Y/m/d H:i:s", $last_update); } return $mav; }
protected function _doCrawl($uri, $ping_callback = null) { //crawl all the site and build the sitemap $page_visitor = new __PageVisitor(); $page = $page_visitor->visit($uri, 1); $sitemap = __SiteMap::getInstance(); if ($page !== null) { $links = $page->getLinks(); $counter = 0; while (count($links) > 0) { $link = array_shift($links); if ($link->getLevel() <= 3) { $href = $link->getHref(); $url_parts = parse_url($href); //do not crawl outside our domain: if ($url_parts['host'] == $_SERVER['HTTP_HOST']) { $page = $page_visitor->visit($link->getHref(), $link->getLevel() + 1); if ($page !== null) { $sitemap->addPage($page); $page_links = $page->getLinks(); foreach ($page_links as $page_link) { $page_link_href = $page_link->getHref(); if (!$sitemap->hasPage($page_link_href)) { if ($page_link->getLevel() <= 3) { $links[$page_link_href] = $page_link; } } } $counter++; //callback each 100 links: if ($counter >= 5) { $counter = 0; if ($ping_callback != null) { call_user_func_array($ping_callback, array(5, count($links))); } } unset($page); } } } } } }
public function visit($uri, $level) { $return_value = null; $sitemap = __SiteMap::getInstance(); if (!$sitemap->hasPage($uri)) { $return_value = new __SiteMapPage($uri); $return_value->setLevel($level); if (function_exists('curl_init')) { $content = $this->_setPageContent($uri, $return_value); } else { $content = file_get_contents($uri); $return_value->setContent($content); } if (!empty($content)) { $links = $this->_readLinks($uri, $content, $level); //build the page: $return_value->setLinks($links); } } return $return_value; }
/** * Updates the sitemap * * @param __UIEvent $event */ public function updateSitemap_click(__UIEvent &$event) { $this->getComponent('updateStatus')->setText(" Crawling the site, please wait..."); $this->getComponent('updateStatus')->crawled_links = 0; __ClientNotificator::getInstance()->notify(); $sitemap = __SiteMap::getInstance(); $sitemap->update(array($this, 'updateUpdateStatus')); $this->getComponent('updateStatus')->setText(" Calculate page rank, please wait..."); __ClientNotificator::getInstance()->notify(); $page_ranker = new __PageRanker($sitemap); $page_ranker->calculate(); $sitemap->saveResults(); $this->getComponent('updateStatus')->setText(""); $last_update = __SiteMap::getInstance()->getLastUpdate(); if ($last_update !== null) { $this->getComponent('lastUpdate')->setText(date("Y/m/d H:i:s", $last_update)); } $analyzerSection = $this->getComponent('analyzerSection'); $analyzerSection->setController('siteAnalyzerResults'); $analyzerSection->setAction('generalAnalysis'); $analyzerSection->refresh(); }
public function getBacklinks() { $connection_matrix = __SiteMap::getInstance()->getConnectionMatrix(); return $connection_matrix[$this->_uri]; }