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

alpha_ru

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

*

alpha_ru

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

dmitry_stas

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

alpha_ru

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

alpha_ru

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

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

Aleks.Denezh

  • Живу я здесь
  • 3358
  • 416 / 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

  • Захожу иногда
  • 86
  • 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

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

alpha_ru

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

Aleks.Denezh

  • Живу я здесь
  • 3358
  • 416 / 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

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

alpha_ru

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

Aleks.Denezh

  • Живу я здесь
  • 3358
  • 416 / 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

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

dmitry_stas

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

Aleks.Denezh

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

alpha_ru

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

ProtectYourSite

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

alpha_ru

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

ProtectYourSite

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

alpha_ru

  • Захожу иногда
  • 86
  • 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

  • Живу я здесь
  • 3358
  • 416 / 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/' );
И ошибка у вас потому что вы не закрыли кавычку фигурную!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Написание модуля с разными функциями видимости

Автор March Cat

Ответов: 13
Просмотров: 209
Последний ответ 05.10.2018, 00:04:59
от March Cat
Поменять стиль шаблона для конкретного модуля

Автор Explosion

Ответов: 1
Просмотров: 182
Последний ответ 30.09.2018, 09:11:03
от fireman
Отключить кэширование

Автор leha111

Ответов: 20
Просмотров: 263
Последний ответ 21.09.2018, 09:39:45
от leha111
Внесение изменений в код выводимого модуля

Автор Atlantis114

Ответов: 9
Просмотров: 206
Последний ответ 26.08.2018, 15:04:55
от Atlantis114
Helix3 как отключить катающееся меню

Автор phvsfpgs

Ответов: 2
Просмотров: 162
Последний ответ 13.08.2018, 13:35:10
от phvsfpgs