Как отключить кеширование для части страницы ?

 
Посетитель
small user social cms
Медаль
Сообщений: 108
На главной странице выводится список контента. Прикрутил туда виджет голосования. Но какое то время он пишет "вы не можете голосовать" видимо пока кеш не подгрузится. Когда проголосовал де результат тоже появляется не сразу а только когда кеш обновится через минуту-две, так что не понятно удалось ли тебе проголосовать когда нажимаешь на кнопку.

Кеширование там мне нужно. Но как отключить его для отдельного виджета в коде, чтобы на голосовалку можно было нажимать сразу и результат его так же обновлялся сразу?
Редактировалось: 1 раз (Последний: 15 ноября 2017 в 12:20)
Посетитель
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1045
Что бы отключить кэширование для конкретного виджета, надо открыть папку этого виджета, в файле widget.php найти
Код PHP:
  1. public function run(){
заменить на
Код PHP:
  1.  
  2. public $is_cacheable = false;
  3.  
  4. public function run(){
  5.  
  6. $this->disableCache();
Или попросите разработчиков на гитхабе, что бы создали опцию, для выключение кэширование виджетов из админки
Дополнения для InstantCMS 2 | Готовый сайт Доска объявлений
Реклама
cms
Посетитель
small user social cms
Медаль
Сообщений: 108
Так... А если там нет такого кода, то куда добавить ?

Вот код виджета рейтинга:

<?php $is_first_widget = $this->addJS('templates/default/js/rating.js'); ?>

<div class="rating_widget" id="rating-<?php echo $target_subject; ?>-<?php echo $target_id; ?>"
<?php if ($is_enabled || $options['is_show']){ ?>
data-target-controller="<?php echo $target_controller; ?>"
data-target-subject="<?php echo $target_subject; ?>"
data-target-id="<?php echo $target_id; ?>"
<?php if ($options['is_show']){ ?>
data-info-url="<?php echo $this->href_to('info'); ?>"
<?php } ?>
<?php } ?>
>

<div class="arrow up">
<?php if ($is_enabled){ ?>
<a href="#vote-up" class="vote-up" title="<?php echo LANG_RATING_VOTE_UP; ?>"></a>
<?php } else { ?>
<span class="disabled" title="<?php html($is_voted ? LANG_RATING_VOTED : LANG_RATING_DISABLED); ?>"></span>
<?php } ?>
</div>


</div>

<?php if ($is_first_widget) { ?>
<script>
icms.rating.setOptions({
url: '<?php echo $this->href_to('vote'); ?>'
});
</script>
<?php }?>
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1154
@demelkar:
Вот код виджета рейтинга:
Это шаблон (из папки templates),
а Evanescence, говорил про файл widget.php из папки system
Посетитель
small user social cms
Медаль
Сообщений: 108
Мне надо в этом поменять как то... Это возможно ?

Sonat:

@demelkar:
Вот код виджета рейтинга:
Это шаблон (из папки templates),
а Evanescence, говорил про файл widget.php из папки system
Посетитель
small user social cms
МедальПочетный донор проекта
Сообщений: 421
@demelkar:
Мне надо в этом поменять как то
OFF
Посетитель
small user social cms
Медаль
Сообщений: 108
Там там в папке system нет этого виджета он в шаблоне :(
Я не програмист а понять как кеширование именно для рейтинга отключить надо. Иначе тормозит чтот всё на сайте, на рейтинг люди жмут а он не меняется.
Посетитель
small user social cms
Медаль
Сообщений: 108
Ладно, всем спасибо отключил как предлагалось для всех виджетов... Как отключить для отдельного так и не нашёл...
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.