Автор Тема: После отключения кэша не работает сайт  (Прочитано 204 раз)

25 Января 2016, 15:19:47
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день.

Установленна prestashop 1.6
После отключения кэша сайт перестал загружаться попытка включить кэш вручную (из базы данных и кода) не привела ни к чему. Сайт все так-же не отвечает. Изменил:
$smarty->caching = true;
$smarty->force_compile = true;
$smarty->compile_check = true;
PS_SMARTY_CACHE = 1 в ps_configuration

Большое спасибо.
25 Января 2016, 15:27:28
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 13276
  • Репутация: +14556/-0
  • Сообщество PrestaShop
    • Просмотр профиля
$smarty->caching = true;
$smarty->force_compile = false;

Очистить кеш в ручную
http://prestashop-forum.ru/index.php/topic,1286.0.html
25 Января 2016, 15:32:27
Ответ #2
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Кэш очистил. Параметры поменял. Все так-же белый лист  :(
25 Января 2016, 15:47:12
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 13276
  • Репутация: +14556/-0
  • Сообщество PrestaShop
    • Просмотр профиля
25 Января 2016, 16:37:03
Ответ #4
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Fatal error: Cannot redeclare pSQL() (previously declared in /public_html/modnydoktor/config/alias.php:59) in /public_html/modnydoktor/classes/Db.php on line 308

- результат.

alias.php:59
function pSQL($string, $htmlOK = false)
{
// Avoid thousands of "Db::getInstance()"...
static $db = false;
if (!$db)
$db = Db::getInstance();

return $db->escape($string, $htmlOK);
}
//---------------------------------------
Db.php on line 308
function pSQL($string, $htmlOK = false)
{
if (_PS_MAGIC_QUOTES_GPC_)
$string = stripslashes($string);
if (!is_numeric($string))
{
$link = Db::getInstance()->getRessource();
$string = _PS_MYSQL_REAL_ESCAPE_STRING_ ? mysql_real_escape_string($string, $link) : addslashes($string);
if (!$htmlOK)
$string = strip_tags(nl2br2($string));
}

return $string;
}
25 Января 2016, 16:41:04
Ответ #5
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Закоментировал редекларирующиеся функции и в итоге получил новую ошибку:


Fatal error: Call to undefined method Shop::initialize() in /public_html/modnydoktor/config/config.inc.php on line 100

/* Initialize the current Shop */
try
{
$context->shop = Shop::initialize();
$context->theme = new Theme((int)$context->shop->id_theme);
if ((Tools::isEmpty($theme_name = $context->shop->getTheme()) || !Validate::isLoadedObject($context->theme)) && !defined('_PS_ADMIN_DIR_'))
throw new PrestaShopException(Tools::displayError('Current theme unselected. Please check your theme configuration.'));
}
catch (PrestaShopException $e)
{
$e->displayMessage();
}
define('_THEME_NAME_', $theme_name);
define('__PS_BASE_URI__', $context->shop->getBaseURI());
25 Января 2016, 16:54:00
Ответ #6
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Удалил класс Shop.php в /classes так как полная его имплементация в classes/shop вышла новая ошибка
Fatal error: Class MySQLCore contains 7 abstract methods and must therefore be declared abstract or implement the remaining methods (DbCore::NumRows, DbCore::delete, DbCore::Execute, ...) in /public_html/modnydoktor/classes/db/MySQL.php on line 0

Судя по всему никто никогда не отключал кэш и так этот магазин работал... я просто нарушил тонкую грань. Магазин достаточно старый был несколько раз разными программистами модернизирован и изначально работал на 1.4 престе. Видимо всплыли последствия копаний и апгрейдов думаю что искать и отлаживать все ошибки буду долго... Может есть быстрый способ перенести базу товаров в чистый магазин?
25 Января 2016, 17:02:38
Ответ #7
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Удалил класс Shop.php в /classes так как полная его имплементация в classes/shop вышла новая ошибка
Fatal error: Class MySQLCore contains 7 abstract methods and must therefore be declared abstract or implement the remaining methods (DbCore::NumRows, DbCore::delete, DbCore::Execute, ...) in /public_html/modnydoktor/classes/db/MySQL.php on line 0

Судя по всему никто никогда не отключал кэш и так этот магазин работал... я просто нарушил тонкую грань. Магазин достаточно старый был несколько раз разными программистами модернизирован и изначально работал на 1.4 престе. Видимо всплыли последствия копаний и апгрейдов думаю что искать и отлаживать все ошибки буду долго... Может есть быстрый способ перенести базу товаров в чистый магазин?

Передкларировал класс MySQLCore в абстрактный и все запустилось. Прямо не верится.

Большое спасибо тебе за наводку на режим дебага. Сам бы наверно даже не загуглил его.