Files

127 lines
4.2 KiB
PHP

<?php
class Gm_OmniPriceCronModuleFrontController extends ModuleFrontController
{
public function initContent()
{
$this->displayTemplate();
$token = Tools::getValue('token');
$omni = $this->module;
// $comparedToken = $omni->getTokenForScripts();
// if ($token != $comparedToken) {
// die('invalid token');
// }
$action = Tools::getValue('cron_action');
$verbose = !Tools::isSubmit('silent');
switch ($action) {
case 'index' :
$start = microtime(true);
echo 'PS '._PS_VERSION_.'<br/>';
echo 'OmniPrice '.$omni->version.'<br/>';
if (Tools::isSubmit('reset')) {
$omni->resetIndex();
echo 'RESET</br>';
}
$productId = null;
if (Tools::isSubmit('pid')) {
$productId = (int) Tools::getValue('pid');
$omni->removeProductFromTodaysIndex($productId);
$omni->removeProductFromTodaysHistory($productId);
}
$omni->savePrices(true, $productId);
echo 'FINISH<br/>';
if (Tools::isSubmit('debug')) {
echo 'DEBUG:<br/>';
$debug = Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'gm_omniprice_history` WHERE `id_product` = '.$productId);
if ($debug) {
echo $omni->displayTable($debug, array_keys($debug[0]));
}
$debug = Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'gm_omniprice_cache` WHERE `id_product` = '.$productId);
if ($debug) {
echo $omni->displayTable($debug, array_keys($debug[0]));
}
}
$timeElapsedSeconds = microtime(true) - $start;
echo round($timeElapsedSeconds, 4).' s<br/>';
break;
case 'cleanup' :
$omni->cleanUp($verbose);
echo 'FINISH<br/>';
break;
case 'fill' :
$omni->fillMissingCache($verbose);
echo 'FINISH<br/>';
break;
default:
echo $omni->l('Unknown action').'<br/>';
}
exit();
}
protected function displayTemplate()
{
echo '<html>
<head>
<style>
body {
font-family: monospace;
font-size: 12px;
}
.alert {
position: relative;
padding: 0.75rem 1.25rem;
margin-bottom: 1rem;
border: 1px solid transparent;
border-radius: 0.25rem;
}
.alert-success {
color: #155724;
background-color: #d4edda;
border-color: #c3e6cb;
}
table {
margin-top: 1rem;
margin-bottom: 1rem;
font-size: 0.75rem;
border: none!important;
background: none;
border-collapse: collapse;
border-spacing: 0;
}
table td, table th {
padding: 0.375rem 0.75rem;
vertical-align: middle;
border: none;
}
table th {
vertical-align: middle;
background-color: #333;
color: #fff;
font-weight: 700;
}
table tr:nth-of-type(odd) {
background-color: rgba(0, 0, 0, 0.05);
}
table tr:hover {
color: #212529;
background-color: rgba(0, 0, 0, 0.2);
}
.alert {
position: relative;
padding: 0.75rem 1.25rem;
margin-bottom: 1rem;
border: 1px solid transparent;
border-radius: 0.25rem;
}
.alert-success {
color: #155724;
background-color: #d4edda;
border-color: #c3e6cb;
}
</style>
</head>
<body>
<div class="main">';
}
}