Автор Тема: Отключить кеш blockcategories  (Прочитано 906 раз)

25 Ноября 2014, 01:06:00
  • Новичок
  • *
  • Сообщений: 41
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день!
у меня проблема
кеш blockcategories очень быстро наполняется. (гигабайт за день)
Хочу попросить помощи.
1) Как вообще отключить кеширование blockcategories, а остальной кеш оставить?
2) Почему он так быстро наполняется? как исправить? ставил модуль "ЧПУ без цифр" может из-за этого... как поправить?
25 Ноября 2014, 01:32:59
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 13635
  • Репутация: +14563/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Кеширование для 1 модуля нельзя отключить. Удалите модуль "ЧПУ без цифр" и будет работать нормально. Это бесполезный модуль, только грузит сайт.
25 Ноября 2014, 11:24:47
Ответ #2
  • Новичок
  • *
  • Сообщений: 41
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
у меня просто завязан директ уже по ссылкам, просто отключить не могу, надо много править
Может можно как-то починить?

Или вот я пытался поставить задачу в crontab на удаление папки, но у меня не получилось ничего.
нашел 2 php скрипта для удаления папки, но оба не работают


25 Ноября 2014, 13:46:29
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 20888
  • Репутация: +25279/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
Через крон можно очищать папку кеша. Правила создания заданий cron читайте в справке хостинга.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
25 Ноября 2014, 13:54:32
Ответ #4
  • Новичок
  • *
  • Сообщений: 41
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Задания я задал крону, да только скрипты не удаляю ничего.
Я нашел 2 вида на удаление в интернете...и ни один не дает результата
Первый вариант:
<?
function removeDirRec($dir)
{
    if ($objs = glob($dir."/*")) {
        foreach($objs as $obj) {
            is_dir($obj) ? removeDirRec($obj) : unlink($obj);
        }
    }
}
$dir = "/clip/public_html/cache/smarty/cache/blockcategories/";
removeDirRec($dir);
?>
Второй вариант:
function removeDir($path) {
    if (is_file($path)) {
      @unlink($path);
    } else {
        array_map('removeDir',glob('/*')) == @rmdir($path);
    }
    @rmdir($path);
}

$path = $_SERVER['DOCUMENT_ROOT'].'/clip/public_html/cache/smarty/cache/blockcategories/';
removeDir($path);
25 Ноября 2014, 14:19:59
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 20888
  • Репутация: +25279/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
Зачем вам стороннии файлы? В prestashop все есть. Пользуйтесь встроенными функциями. Посмотрите функцию, которая запускается при нажатии на кнопку очистки кеша и создайте свой модуль
<?php
include(dirname(__FILE__).'config/config.inc.php');
include(
dirname(__FILE__).'init.php');
Tools::clearSmartyCache();
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
30 Ноября 2014, 00:08:26
Ответ #6
  • Новичок
  • *
  • Сообщений: 41
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Зачем вам стороннии файлы? В prestashop все есть. Пользуйтесь встроенными функциями. Посмотрите функцию, которая запускается при нажатии на кнопку очистки кеша и создайте свой модуль
<?php
include(dirname(__FILE__).'config/config.inc.php');
include(
dirname(__FILE__).'init.php');
Tools::clearSmartyCache();

у меня версия  PrestaShop™ 1.5.4.1, там вроде ещё нет этой функции очистки

Я запутался что-то совсем уже )
предложите пожалуйста конкретный действенный метод.
Или как поправить то что быстро заполняется или какой скрипт для автоматического удаления сделать.
30 Ноября 2014, 00:42:18
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 20888
  • Репутация: +25279/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
1. Функция clearSmartyCache очистки кеша есть в Prestashop 1.5.
2. Как ее использовать в собственном файле php я написал.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
30 Ноября 2014, 01:26:12
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 13635
  • Репутация: +14563/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
у меня версия  PrestaShop™ 1.5.4.1, там вроде ещё нет этой функции очистки
Проверяется легко.
Tools::clearSmartyCache();Класс Tools, файл /classes/Tools.php, строка 736
/**
* Clear smarty cache folders
 */
public static function clearSmartyCache()
{
...
30 Ноября 2014, 01:30:42
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 13635
  • Репутация: +14563/-1
  • Сообщество PrestaShop
    • Просмотр профиля
30 Ноября 2014, 12:39:13
Ответ #10
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22215
  • Репутация: +17111/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
1. Создаете свою страницу mypage.php
Создание собственной страницы в Prestashop
2. В ней запускаете функцию очистки кеша
Tools::clearSmartyCache();
3. Добавляте вызыв этой страницы в cron.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
30 Ноября 2014, 21:55:10
Ответ #11
  • Новичок
  • *
  • Сообщений: 41
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
у меня версия  PrestaShop™ 1.5.4.1, там вроде ещё нет этой функции очистки
Проверяется легко.
Tools::clearSmartyCache();Класс Tools, файл /classes/Tools.php, строка 736
/**
* Clear smarty cache folders
 */
public static function clearSmartyCache()
{
...


проверил, нету там такого.
Также поиском прошелся.
Ну и в админке нет такой функции
30 Ноября 2014, 21:56:44
Ответ #12
  • Новичок
  • *
  • Сообщений: 41
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
1. Создаете свою страницу mypage.php
Создание собственной страницы в Prestashop
2. В ней запускаете функцию очистки кеша
Tools::clearSmartyCache();
3. Добавляте вызыв этой страницы в cron.

в моей версии нет этой утилиты к сожалению.
Скачал какой-то модуль, но он не хочет чистить ничего. Пишет мол очищено, а результата нет.
01 Декабря 2014, 11:00:57
Ответ #13
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 105584
  • Репутация: +39547/-0
    • Просмотр профиля
    • Webstudio UwK
В prestashop 1.5.4 в классе Tools функция очистки кеша называется clearCache.
public static function clearCache($smarty, $tpl = false, $cache_id = null, $compile_id = null)
{
if (is_null($smarty))
$smarty = Context::getContext()->smarty;

if (!$tpl && $cache_id === null && $compile_id === null)
return $smarty->clearAllCache();

return $smarty->clearCache($tpl, $cache_id, $compile_id);
}
Cоздание интернет сайтов Webstudio UwK
04 Декабря 2014, 01:00:59
Ответ #14
  • Новичок
  • *
  • Сообщений: 41
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
сделал по инструкции.
создал страницу
для начала испытываю заходя на эту страницу.
Что-то не чистит ничего.....
<?php
require(dirname(__FILE__).'/config/config.inc.php');

Tools::displayFileAsDeprecated();
Tools::redirect('index.php?controller=mypage'.($_REQUEST '&'.http_build_query($_REQUEST'''&') : ''), __PS_BASE_URI__null'HTTP/1.1 301 Moved Permanently');
Tools::clearCache();    --- [color=red]вот это добавил[/color]

на страницу заходится, но не чистит ничего.
В чем ошибка?