diff --git a/Application/views/admin/de/pscachewarmer_lang.php b/Application/views/admin/de/pscachewarmer_lang.php index b92e7ae..ceed8aa 100644 --- a/Application/views/admin/de/pscachewarmer_lang.php +++ b/Application/views/admin/de/pscachewarmer_lang.php @@ -23,7 +23,7 @@ $aLang = [ 'SHOP_MODULE_psCacheWarmerKey' => 'Cronjob-Key', 'SHOP_MODULE_psCacheWarmerUser' => 'Basic-Auth Benutzer', 'SHOP_MODULE_psCacheWarmerPass' => 'Basic-Auth Kennwort', - 'SHOP_MODULE_psCacheWarmerWriteCsv' => 'Report als CSV-Datei im Log-Ordner abspeichern', - 'SHOP_MODULE_psCacheWarmerWriteCsvOnlyError' => 'Alle Ergebnisse ausser HTTP-Code 200 loggen', + 'SHOP_MODULE_psCacheWarmerWriteCsv' => 'Logfile für gesamten Crawl', + 'SHOP_MODULE_psCacheWarmerWriteCsvOnlyError' => 'Logfile nur bei HTTP-Codes != 200', ]; diff --git a/Core/CacheWarmer.php b/Core/CacheWarmer.php index 8c1ccf4..85ac9a3 100644 --- a/Core/CacheWarmer.php +++ b/Core/CacheWarmer.php @@ -13,40 +13,28 @@ namespace ProudCommerce\CacheWarmer\Core; -if (PHP_SAPI != 'cli') { - throw new RuntimeException('Only cli execution allowed!'); -} - use OxidEsales\Eshop\Core\Registry; -use OxidEsales\Eshop\Core\Controller\BaseController; /** * Class CacheWarmer * @package ProudCommerce\CacheWarmer\Core */ -class CacheWarmer extends BaseController +class CacheWarmer { /** - * @return string|void|null + * */ - public function render() + public function run() { - $sMessage = "psCacheWarmer
" . $this->_getSitemapUrl() . "
---
"; - $aUrls = $this->_getSitemapContent(); - if (!empty(Registry::getConfig()->getShopConfVar('psCacheWarmerSitemapUrl')) && count($aUrls) > 0) { + if (!empty(Registry::getConfig()->getShopConfVar('psCacheWarmerSitemapUrl')) && !empty($aUrls)) { foreach ($aUrls as $sUrl) { $oCurl = $this->_runCurlConnect($sUrl); - $sMessage .= $this->_checkCurlResults($oCurl, $sUrl); + $this->_checkCurlResults($oCurl, $sUrl); curl_close($oCurl); } - } else { - $sMessage .= 'Keine Daten vorhanden!'; } - - echo '
' . $sMessage . '
'; - exit; } /** @@ -70,40 +58,29 @@ class CacheWarmer extends BaseController /** * @param $oCurl * @param $sUrl - * @return string */ protected function _checkCurlResults($oCurl, $sUrl) { - $sMessage = ''; $httpStatus = curl_getinfo($oCurl, CURLINFO_HTTP_CODE); if (curl_error($oCurl)) { - $sMessage .= 'ERROR ' . $httpStatus . ': ' . curl_error($oCurl) . '
'; $sStatusMsg = 'ERROR'; - $sTmpText = curl_error($oCurl); + $sMessage = curl_error($oCurl); } else { - $sTmpText = $sUrl; - if (in_array(trim($httpStatus), Registry::getConfig()->getShopConfVar('psCacheWarmerConfig'))) { - $sMessage .= 'OK ' . $httpStatus . ': ' . $sUrl . '
'; + $sMessage = $sUrl; + if (in_array(trim($httpStatus), Registry::getConfig()->getShopConfVar('psCacheWarmerHttpCodes'))) { $sStatusMsg = 'OK'; } else { - $sMessage .= 'ERROR ' . $httpStatus . ': ' . $sUrl . '
'; $sStatusMsg = 'ERROR'; } } + $httpStatus = trim($httpStatus); + $aLog = [$sStatusMsg, $httpStatus, $sMessage]; + print_r($aLog); - if (Registry::getConfig()->getShopConfVar('psCacheWarmerWriteCsv') == true) { - $aTmp = [$sStatusMsg, $httpStatus, $sTmpText]; - - if (trim($httpStatus) == '200' && Registry::getConfig()->getShopConfVar('psCacheWarmerWriteCsvOnlyError') == true) { - $aTmp = []; - } - - if (count($aTmp)) { - Registry::getUtils()->writeToLog(implode(' | ', $aTmp) . "\r", 'tabslbillomat_' . date("d.m.Y H:i:s") . '.log'); - } + if (!empty($aLog) && ((Registry::getConfig()->getShopConfVar('psCacheWarmerWriteCsvOnlyError') == true && $httpStatus != '200') || Registry::getConfig()->getShopConfVar('psCacheWarmerWriteCsv') == true)) { + Registry::getUtils()->writeToLog(implode(' | ', $aLog) . "\r", 'pscachewarmer_' . date("d.m.Y H:i:s") . '.log'); } - return $sMessage; } /** @@ -121,6 +98,8 @@ class CacheWarmer extends BaseController $sPassword = Registry::getConfig()->getShopConfVar('psCacheWarmerPass'); $sSitemapUrl = str_replace("://", "://" . $sUsername . ":" . $sPassword . "@", $sSitemapUrl); + echo $sSitemapUrl . "\r\n"; + $sSitemapXmlData = @file_get_contents($sSitemapUrl); if ($oSitemap = @simplexml_load_string($sSitemapXmlData)) { if (count($oSitemap->sitemap) > 0) { @@ -136,7 +115,6 @@ class CacheWarmer extends BaseController } } } - #print_r($aUrls); return $aUrls; } diff --git a/README.md b/README.md index a87778a..623df05 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Installation Usage - php source/modules/pc/cachewarmer/Core/CacheWarmer.php + php source/modules/pc/cachewarmer/bin/warmup.php [optional parameter s for shop-id, eg. warmup.php -s 2] Changelog diff --git a/bin/warmup.php b/bin/warmup.php new file mode 100644 index 0000000..72fc60d --- /dev/null +++ b/bin/warmup.php @@ -0,0 +1,34 @@ +setShopId($shopId); +Registry::set(Config::class, null); + +$cacheWarmer = new CacheWarmer(); +$cacheWarmer->run();