Главная > CMS | phpBB > Отключение кеширования стилей phpBB

Отключение кеширования стилей phpBB

13.02.2012 3 комментария » Просмотры: 4 230
 

Столкнулся с задачей верстать под phpBB. Но как известно, там реализовано кеширование стилей, которое очень мешает при изменении шаблона. Поиски дали вариант с удалением папки кеша и отключением вывода ошибок, но меня такой вариант не устроил.

Я пошел другим путем. Зная то, что кеш файлы создаются при каждой точке входа, если они отсутствуют, я решил их просто, предварительно удалять. Т.е. перед тем как отдать управление в скрипт мы чистим папку кеша.

Для того чтобы проделать такой трюк, требуется всего-то добавить в конец config.php, пару строчек:

в конец перед ?> добавляем

    define('DELETE_CACHE', true);  
    if (defined('DELETE_CACHE') && file_exists('./cache'))  
        foreach (glob('./cache/*.php') as $cache_file)  
            unlink($cache_file);

теперь все просто: на время отладки, ставим

    define('DELETE_CACHE', true);

после того как все сделали и можно кешировать шаблон, меняем на

    define('DELETE_CACHE', false);

и все прекрасно работает.

(!) перед редактированием и тестированием работы, не забудьте сделать резервную копию папок форума

--[добавлено, 06.02.2016]--

В связи с тем, что phpBB перешел на шаблонизатор twig решение из 2012 года не работает. Но хорошая новость в том, что я вновь столкнулся с правками дизайна, и вот исправленное решение:

define('DELETE_CACHE', true);
if (defined('DELETE_CACHE') && is_dir('./cache')) {
    // clean up twig folder
    if (is_dir('./cache/twig')) {
        $rrmdir = function ($dir) use (&$rrmdir) {
            if (is_dir($dir)) {
                $objects = scandir($dir);
                foreach ($objects as $object) {
                if ($object != "." && $object != "..") {
                    if (is_dir($dir."/".$object))
                    $rrmdir($dir."/".$object);
                    else
                    unlink($dir."/".$object);
                }
                }
                rmdir($dir);
            }
        };
        $rrmdir('./cache/twig');
    }
    // clean up cache folder
    foreach (glob('./cache/*.php') as $cache_file) unlink($cache_file);
}

 

И хочу обратить Ваше внимание на то, что "да", данный хак замедляет работу форума. Но он предназначен исключительно для того времени, в которое вы ведете работы. После окончания работ, просто отключайте его с помощью установки DELETE_CACHE в false, либо попросту комментируйте/удаляйте добавленный код.

Автор: | Теги: , , ,

Важно

У нас заработал ФОРУМ. Все вопросы, которые не касаются статьи, а так же вопросы по конкретно вашему случаю нужно задавать и обсуждать именно там, в разделе "Помощь пользователям".

3 комментария

Написать свой
  1. Евгений Ответить
    07.08.2013 в 9:09 пп
    Спасибо ) И мне помогло )

    Возможно я преувеличиваю но загрузка форума даже на локалке после это стала чуть медленней ) это конечно же не критично но все же )
  2. la2ha Ответить
    03.06.2013 в 9:42 пп
    Отличное решение.
    • Vitaliy Orlov
      Vitaliy Orlov Ответить
      04.06.2013 в 8:08 дп
      Спасибо! Рад, если Вам оно помогло!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Разрешены HTML-теги: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>