Всем привет. Вот вопрос уже довольно старый на форуме "как сделать кнопку очистки папки кеша в движке" . Я там даже давал код который нашел на просторах интернета, но сам прикрутить так и не смог. Но несколько сайтов я перевел на двиг 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();
}

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

Можешь почитать и вот эту статейку "Меняем стандартные смайлы"

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()))

    ответить

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

Ваше мнение

Какие темы вам интереснее?
Результаты

Облако тегов

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