0 Пользователей и 1 Гость просматривают эту тему.
  • 21 Ответов
  • 434 Просмотров
*

alpha_ru

  • Захожу иногда
  • 85
  • 0 / 0
Отключить кеш модуля
« : 14.08.2017, 16:28:28 »
Есть небольшой самописный модуль в Joomla 3.7.4 С настройках системы выбрано стандартное кешированние.
В модуле параметры выбора кеша прописаны. Какой код нужно написать для отключения кеша?

*

alpha_ru

  • Захожу иногда
  • 85
  • 0 / 0
Re: Отключить кеш модуля
« Ответ #1 : 16.08.2017, 19:20:40 »
В админке есть кнопка очистки кеша. По аналогии.
Какой код можно прописать для модуля, чтобы после отправки данных очищался кеш?
*

dmitry_stas

  • Легенда
  • 10572
  • 1022 / 7
Re: Отключить кеш модуля
« Ответ #2 : 16.08.2017, 19:25:48 »
честно говоря не очень понятно что нужно сделать? вы хотите сбросить весь кеш? после отправки чего именно?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

alpha_ru

  • Захожу иногда
  • 85
  • 0 / 0
Re: Отключить кеш модуля
« Ответ #3 : 16.08.2017, 20:35:15 »
после вставки данных в базу добавить очистку кеша.
« Последнее редактирование: 19.08.2017, 15:24:11 от alpha_ru »
*

alpha_ru

  • Захожу иногда
  • 85
  • 0 / 0
Re: Отключить кеш модуля
« Ответ #4 : 19.08.2017, 15:34:36 »

Отключил плагин кеша, все равно модуль не работает. В настройках выбрано Стандартное кеширование.
Что нужно сделать, чтобы модуль не кешировался?
*

Aleks.Denezh

  • Живу я здесь
  • 2995
  • 390 / 4
Re: Отключить кеш модуля
« Ответ #5 : 19.08.2017, 15:48:25 »
Цитировать
В модуле параметры выбора кеша прописаны. Какой код нужно написать для отключения кеша?
Что значит в модуле параметры кеша прописаны?
в xml модуля, в секции config должна быть опция:
Код
<field name="cache" type="list" label="COM_MODULES_FIELD_CACHING_LABEL"
       description="COM_MODULES_FIELD_CACHING_DESC" default="1">
<option value="0">COM_MODULES_FIELD_VALUE_NOCACHING</option>
<option value="1">JGLOBAL_USE_GLOBAL</option>
</field>
а дальше в админке в параметрах модуля поставить опцию в отключено и всё, модуль кешироватся не будет!
*

alpha_ru

  • Захожу иногда
  • 85
  • 0 / 0
Re: Отключить кеш модуля
« Ответ #6 : 19.08.2017, 16:14:06 »

в xml модуля все прописано и время:
Код
<field
name="cache_time"
type="text"
label="COM_MODULES_FIELD_CACHE_TIME_LABEL"
description="COM_MODULES_FIELD_CACHE_TIME_DESC"
default="900"
/>
Результата нет. 
*

Aleks.Denezh

  • Живу я здесь
  • 2995
  • 390 / 4
Re: Отключить кеш модуля
« Ответ #7 : 19.08.2017, 16:34:26 »
Результата нет. 
Хотя да припоминаю есть баг, что даже если вырублено кеширование для модуля он всё равно кешируется в какой то отдельный файл где все модули скопом валяются..
Пофиксить это врядли получится, можно попробовать брать содержимое модуля аяксом...
*

alpha_ru

  • Захожу иногда
  • 85
  • 0 / 0
Re: Отключить кеш модуля
« Ответ #8 : 23.08.2017, 21:51:58 »
Частично разобрался в проблеме. Если модуль выводится в стандартную позицию шаблона, то работает корректно. Если модуль выводится в статье, то кешируется намертво и изменение данных происходит только после чистки кеша.
Предпочтительный вариант - размещение модуля в статье. Что можно предпринять в этом случае?
*

Aleks.Denezh

  • Живу я здесь
  • 2995
  • 390 / 4
Re: Отключить кеш модуля
« Ответ #9 : 24.08.2017, 10:08:41 »
о. Если модуль выводится в статье, то кешируется намертво и изменение данных происходит только после чистки кеша.
Потому что в статье кешируется всё )

Предпочтительный вариант - размещение модуля в статье. Что можно предпринять в этом случае?
ставите что то типа на выводе модуля:
Код
<div class="ajax-wrapper" data-load="index.php?option=com_ajax&module=module_name&format=raw&Itemid=<?= JFactory::getApplication()->input->getInt( 'Itemid' ); ?>"></div>

В скриптах делаете что то типа:
Код
jQuery(document).ready(function ($) {
$('.ajax-wrapper').each(function () {
$(this).load($(this).data('load'));
        });
});

Ну и короче загружаете содержимое модуля аяксом, и плевать будет модулю на кеширование )
*

Aleks.Denezh

  • Живу я здесь
  • 2995
  • 390 / 4
Re: Отключить кеш модуля
« Ответ #10 : 24.08.2017, 10:56:53 »
Ну ещё не понятно что за модуль, вполне возможно можно сбрасывать кеш материала программно..
*

alpha_ru

  • Захожу иногда
  • 85
  • 0 / 0
Re: Отключить кеш модуля
« Ответ #11 : 25.08.2017, 13:14:00 »
вполне возможно можно сбрасывать кеш материала программно..
Интересный вариант. Можете подробнее раскрыть идею?
*

Aleks.Denezh

  • Живу я здесь
  • 2995
  • 390 / 4
Re: Отключить кеш модуля
« Ответ #12 : 25.08.2017, 14:48:40 »
Интересный вариант. Можете подробнее раскрыть идею?
ну если у вас например делается какая то запись для вывода модулем то при добавлении всего можно програмно очистить кеш com_content примерно так наверно:
Код
$conf = JFactory::getConfig();
$cache = JCache::getInstance( 'callback', [
'defaultgroup' => 'com_content',
'cachebase' => $conf->get( 'cache_path', JPATH_SITE . '/cache' ),
'result' => true
] );
$cache->clean();
*

alpha_ru

  • Захожу иногда
  • 85
  • 0 / 0
Re: Отключить кеш модуля
« Ответ #13 : 25.08.2017, 16:11:09 »
можно програмно очистить кеш com_content примерно так наверно:
К сожалению не получается. Очистка кеша - удаление папки com_content или ее содержимого. Этого не происходит. Только из админки чистится кеш.
*

dmitry_stas

  • Легенда
  • 10572
  • 1022 / 7
Re: Отключить кеш модуля
« Ответ #14 : 25.08.2017, 18:59:13 »
все получается. а если не получается, и надо именно удалить папку - удалите папку
Код
JFolder::delete(путь к каталогу);
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Aleks.Denezh

  • Живу я здесь
  • 2995
  • 390 / 4
Re: Отключить кеш модуля
« Ответ #15 : 25.08.2017, 20:29:33 »
К сожалению не получается. Очистка кеша - удаление папки com_content или ее содержимого. Этого не происходит. Только из админки чистится кеш.
Возможно неправильно вызываете или не там где надо дергаете!
Ну и на 100% в коде я тоже не уверен просто, просто такие вещи делают с помощью связки компонент->модель, а не модулем!
*

alpha_ru

  • Захожу иногда
  • 85
  • 0 / 0
Re: Отключить кеш модуля
« Ответ #16 : 26.08.2017, 13:27:48 »
Нашёл пример кода удаления файлов из папки:
Спойлер
[свернуть]
Не могу внедрить.
*

ProtectYourSite

  • Завсегдатай
  • 1079
  • 65 / 4
  • Безопасность вебсайтов
Re: Отключить кеш модуля
« Ответ #17 : 26.08.2017, 14:09:20 »
Я думаю тут нету телепатов, почему у вас не получается внедрить, давайте больше информации.
*

alpha_ru

  • Захожу иногда
  • 85
  • 0 / 0
Re: Отключить кеш модуля
« Ответ #18 : 26.08.2017, 14:17:54 »
В методе helper:
Спойлер
[свернуть]
*

ProtectYourSite

  • Завсегдатай
  • 1079
  • 65 / 4
  • Безопасность вебсайтов
Re: Отключить кеш модуля
« Ответ #19 : 26.08.2017, 15:11:17 »
Я думаю путь как минимум должен быть абсолютным
*

alpha_ru

  • Захожу иногда
  • 85
  • 0 / 0
Re: Отключить кеш модуля
« Ответ #20 : 26.08.2017, 15:27:17 »
Изменил на
Код
$path = 'http://localhost/site/cache/com_content/';
и наконец появилась страница ошибки:
Цитировать
0 - syntax error, unexpected end of file, expecting function (T_FUNCTION)
но сам файл кеша из папки удалился!
Что можно предпринять.

*

Aleks.Denezh

  • Живу я здесь
  • 2995
  • 390 / 4
Re: Отключить кеш модуля
« Ответ #21 : 26.08.2017, 17:20:58 »
Лол ...  'http://localhost/site/cache/com_content/' это относительный путь!
абсолютный это: $path = JPATH_ROOT . '/cache/com_content/';

И код должен быть такой:
jimport( 'joomla.filesystem.folder' );
if ( JFolder::exists( JPATH_ROOT . '/cache/com_content/' ) ) JFolder::delete( JPATH_ROOT . '/cache/com_content/' );
И ошибка у вас потому что вы не закрыли кавычку фигурную!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Отключить сессии для front-end - как сделать плагином?

Автор Matysh

Ответов: 1
Просмотров: 72
Последний ответ 13.12.2017, 18:19:20
от dmitry_stas
Помогите найти код модуля

Автор Serg34

Ответов: 3
Просмотров: 51
Последний ответ 03.12.2017, 20:17:13
от effrit
При создании модуля - белый экран

Автор SuschnosT

Ответов: 9
Просмотров: 160
Последний ответ 24.11.2017, 16:08:31
от robert
Добавление модуля на страницах категорий/статей

Автор froggi3

Ответов: 3
Просмотров: 107
Последний ответ 24.11.2017, 09:36:12
от khan-alex
Разрешить/запретить показ модуля на мобильных устройствах (планшеты, смартфоны)

Автор Slava77

Ответов: 12
Просмотров: 259
Последний ответ 22.11.2017, 08:34:23
от Mitriy