Новости Joomla

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

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

  • Легенда
  • 13151
  • 1234 / 8
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

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

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

alpha_ru

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

Aleks.Denezh

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

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

alpha_ru

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

Aleks.Denezh

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

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

Aleks.Denezh

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

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

alpha_ru

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

ProtectYourSite

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

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

Убрать из модуля новостей ссылку на статью, на которой выводится модуль

Автор zeus07

Ответов: 3
Просмотров: 727
Последний ответ 08.11.2023, 21:17:26
от GrayAn
Изменение отображения модуля от разрешения экрана

Автор mag_num83

Ответов: 5
Просмотров: 525
Последний ответ 17.05.2023, 09:35:23
от Театрал
Как удалить позицию модуля в настройках модуля?

Автор 62411

Ответов: 6
Просмотров: 413
Последний ответ 12.03.2023, 18:24:38
от 62411
[Решено] Отключить Mootols, Jquery и Bootstrap в Joomla 3

Автор Pazys

Ответов: 126
Просмотров: 94010
Последний ответ 21.10.2022, 22:25:23
от Alex Kop
Как в конце модуля mod_articles_news вывести ссылку на страницу с блогом?

Автор androv77

Ответов: 4
Просмотров: 412
Последний ответ 20.09.2022, 11:20:29
от androv77