Exemplo n.º 1
0
ini_set("max_execution_time", "-1");
logger::log("SearchPhp_Plugin: Starting crawl", Zend_Log::DEBUG);
//TODO nix specific
exec("rm -Rf " . str_replace("/index", "/tmpindex", $indexDir) . " " . $indexDir);
$confArray = SearchPhp_Plugin::getSearchConfigArray();
$urls = explode(",", $confArray['search']['frontend']['urls']);
$validLinkRegexes = explode(",", $confArray['search']['frontend']['validLinkRegexes']);
$invalidLinkRegexes = explode(",", $confArray['search']['frontend']['invalidLinkRegexes']);
$rawConfig = new Zend_Config_Xml(PIMCORE_PLUGINS_PATH . SearchPhp_Plugin::$configFile);
$rawConfigArray = $rawConfig->toArray();
$rawConfigArray['search']['frontend']['crawler']['running'] = 1;
$rawConfigArray['search']['frontend']['crawler']['started'] = time();
$config = new Zend_Config($rawConfigArray, true);
$writer = new Zend_Config_Writer_Xml(array("config" => $config, "filename" => PIMCORE_PLUGINS_PATH . SearchPhp_Plugin::$configFile));
$writer->write();
$crawler = new SearchPhp_Frontend_Crawler($validLinkRegexes, $invalidLinkRegexes, 10, 30, $confArray['search']['frontend']['crawler']['contentStartIndicator'], $confArray['search']['frontend']['crawler']['contentEndIndicator']);
$crawler->findLinks($urls);
$rawConfig = new Zend_Config_Xml(PIMCORE_PLUGINS_PATH . SearchPhp_Plugin::$configFile);
$rawConfigArray = $rawConfig->toArray();
$rawConfigArray['search']['frontend']['crawler']['running'] = 0;
$rawConfigArray['search']['frontend']['crawler']['finished'] = time();
$config = new Zend_Config($rawConfigArray, true);
$writer = new Zend_Config_Writer_Xml(array("config" => $config, "filename" => PIMCORE_PLUGINS_PATH . SearchPhp_Plugin::$configFile));
$writer->write();
logger::log("SearchPhp_Plugin: replacing old index ...", Zend_Log::DEBUG);
$indexDir = SearchPhp_Plugin::getFrontendSearchIndex();
//TODO nix specific
exec("rm -Rf " . $indexDir);
exec("mv " . str_replace("/index", "/tmpindex", $indexDir) . " " . $indexDir);
logger::log("Search_PluginPhp: replaced old index", Zend_Log::DEBUG);
logger::log("Search_PluginPhp: Finished crawl", Zend_Log::DEBUG);
Exemplo n.º 2
0
 /**
  * @param  $configArray
  * @return void
  */
 public function frontendCrawl($configArray = null)
 {
     if (!is_array($configArray)) {
         $configArray = self::getSearchConfigArray();
     }
     if (self::frontendConfigComplete()) {
         ini_set('memory_limit', '2048M');
         ini_set("max_execution_time", "-1");
         $indexDir = self::getFrontendSearchIndex();
         if ($indexDir) {
             //TODO nix specific
             exec("rm -Rf " . str_replace("/index/", "/tmpindex", $indexDir));
             logger::debug("rm -Rf " . str_replace("/index/", "/tmpindex", $indexDir));
             try {
                 $urls = explode(",", $configArray['search']['frontend']['urls']);
                 $validLinkRegexes = explode(",", $configArray['search']['frontend']['validLinkRegexes']);
                 $invalidLinkRegexesSystem = $configArray['search']['frontend']['invalidLinkRegexes'];
                 $invalidLinkRegexesEditable = $configArray['search']['frontend']['invalidLinkRegexesEditable'];
                 if (!empty($invalidLinkRegexesEditable) and !empty($invalidLinkRegexesSystem)) {
                     $invalidLinkRegexes = explode(",", $invalidLinkRegexesEditable . "," . $invalidLinkRegexesSystem);
                 } else {
                     if (!empty($invalidLinkRegexesEditable)) {
                         $invalidLinkRegexes = explode(",", $invalidLinkRegexesEditable);
                     } else {
                         if (!empty($invalidLinkRegexesSystem)) {
                             $invalidLinkRegexes = explode(",", $invalidLinkRegexesSystem);
                         } else {
                             $invalidLinkRegexes = array();
                         }
                     }
                 }
                 self::setCrawlerState("frontend", "started", true);
                 $maxLinkDepth = $configArray['search']['frontend']['crawler']['maxLinkDepth'];
                 if (is_numeric($maxLinkDepth) and $maxLinkDepth > 0) {
                     $crawler = new SearchPhp_Frontend_Crawler($validLinkRegexes, $invalidLinkRegexes, 10, 30, $configArray['search']['frontend']['crawler']['contentStartIndicator'], $configArray['search']['frontend']['crawler']['contentEndIndicator'], $configArray['search']['frontend']['crawler']['maxThreads'], $maxLinkDepth);
                 } else {
                     $crawler = new SearchPhp_Frontend_Crawler($validLinkRegexes, $invalidLinkRegexes, 10, 30, $configArray['search']['frontend']['crawler']['contentStartIndicator'], $configArray['search']['frontend']['crawler']['contentEndIndicator'], $configArray['search']['frontend']['crawler']['maxThreads']);
                 }
                 $crawler->findLinks($urls);
                 self::setCrawlerState("frontend", "finished", false);
                 logger::debug("SearchPhp_Plugin: replacing old index ...");
                 $db = Pimcore_Resource_Mysql::get();
                 $db->query("DROP TABLE IF EXISTS `plugin_searchphp_contents`;");
                 $db->query("RENAME TABLE `plugin_searchphp_contents_temp` TO `plugin_searchphp_contents`;");
                 //TODO nix specific
                 exec("rm -Rf " . $indexDir);
                 logger::debug("rm -Rf " . $indexDir);
                 $tmpIndex = str_replace("/index", "/tmpindex", $indexDir);
                 exec("cp -R " . substr($tmpIndex, 0, -1) . " " . substr($indexDir, 0, -1));
                 logger::debug("cp -R " . substr($tmpIndex, 0, -1) . " " . substr($indexDir, 0, -1));
                 logger::debug("SearchPhp_Plugin: replaced old index");
                 logger::info("SearchPhp_Plugin: Finished crawl");
             } catch (Exception $e) {
                 logger::err($e);
                 throw $e;
             }
         }
     } else {
         logger::info("SearchPhp_Plugin: Did not start frontend crawler, because config incomplete");
     }
 }