Ejemplo n.º 1
0
 public static function &getInstance()
 {
     if (self::$_instance == null) {
         self::$_instance = new __SiteMap();
     }
     return self::$_instance;
 }
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 6
0
 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);
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 7
0
 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();
 }
Ejemplo n.º 9
0
 public function getBacklinks()
 {
     $connection_matrix = __SiteMap::getInstance()->getConnectionMatrix();
     return $connection_matrix[$this->_uri];
 }