Всем привет. Вот вопрос уже довольно старый на форуме "как сделать кнопку очистки папки кеша в движке" . Я там даже давал код который нашел на просторах интернета, но сам прикрутить так и не смог. Но несколько сайтов я перевел на двиг bixbite.site , это форк ngcms от Русика , и там в админке есть кнопка очистки кеша движка и плагинов. НУ и теперь не большая инструкция по установке очистки кеша для ngcms. Сразу поясняю все что я буду делать на последней ngcms и новой админке.
Открываем engine/skins/default/index.php
Ищем там вот этот код (примерно 115 - 116 строка)

Код:
<div class="navbar-custom-menu">
<ul class="nav navbar-nav">
и сразу добавляем вот этот код
Код:
<li><a href="admin.php?mod=extras&action=clearCacheFiles" title="Очистить кэш"><i class="fa fa-recycle" aria-hidden="true"></i></a></li>
Это наша кнопка очистки кеша.

Далее идем /engine/actions и открываем файл extras.php и там примерно после 17 строки добавляем
Код:
if ('clearCacheFiles' == $action)
clearCacheFiles();

Там же в директории открываем файл extra-config.php и после 28 строки добавляем
Код:
if ($plugin and 'clearCacheFiles' == $action)
clearCacheFiles($plugin);
Ну теперь самое последнее , проходим в директорию /engine/includes/inc и открываем файл extraconf.inc.php и в самый конец файла добавляем
Код:
// clear Cache Files
function clearCacheFiles($plugin = false)
{
$listSkip = '';
$cacheDir = $plugin ? get_plugcache_dir($plugin) : root . 'cache/';

$dirIterator = new RecursiveDirectoryIterator($cacheDir, RecursiveDirectoryIterator::SKIP_DOTS);
$iterator = new RecursiveIteratorIterator($dirIterator, RecursiveIteratorIterator::LEAVES_ONLY);

foreach ($iterator as $object)
if ($object->isFile() and !unlink($object->getPathname()))
$listSkip .= '
' . $object->getBasename();

if (!empty($listSkip)) {
msg(array('type' => 'error', 'text' => 'Не весь кэш удалось очистить!<hr>Список пропущенных файлов:' . $listSkip));
} elseif ($plugin) {
msg(array('text' => 'Кэш плагина очищен!'));
} else {
msg(array('text' => 'Кэш системы очищен!'));
}

// Clear cache OPCache
if(function_exists('opcache_get_status'))
opcache_reset();

// Create a protective .htaccess
create_access_htaccess();
}

Вот и все . Все работает, вычищаются все папки в папке кеша , и файлы в папке кеша,сами папки не удаляются.

Можешь почитать и вот эту статейку "Плагин reCAPTCHA"

mistakes

Это тоже интересно

    irbees2008

    irbees2008 | 27.02.2018 - 09:16

    rusiq, А что там страшного?

    ответить

    rusiq

    rusiq | 26.02.2018 - 23:34

    Перепроверь код в статье, там [email protected] в код залез в строке

    if ($object->isFile() and ....

    Замени на if ($object->isFile() and !unlink($object->getPathname()))

    ответить

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Ваше мнение

TWIG -что это?
Результаты

Облако тегов

Anything in here will be replaced on browsers that support the canvas element