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

#1 15 ноября 2017 в 12:19
На главной странице выводится список контента. Прикрутил туда виджет голосования. Но какое то время он пишет "вы не можете голосовать" видимо пока кеш не подгрузится. Когда проголосовал де результат тоже появляется не сразу а только когда кеш обновится через минуту-две, так что не понятно удалось ли тебе проголосовать когда нажимаешь на кнопку.

Кеширование там мне нужно. Но как отключить его для отдельного виджета в коде, чтобы на голосовалку можно было нажимать сразу и результат его так же обновлялся сразу?
#2 15 ноября 2017 в 13:05
Что бы отключить кэширование для конкретного виджета, надо открыть папку этого виджета, в файле widget.php найти
  1. public function run(){
заменить на
  1.  
  2. public $is_cacheable = false;
  3.  
  4. public function run(){
  5.  
  6. $this->disableCache();
Или попросите разработчиков на гитхабе, что бы создали опцию, для выключение кэширование виджетов из админки
#3 15 ноября 2017 в 14:12
Так… А если там нет такого кода, то куда добавить?

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

<?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 }?>
#4 15 ноября 2017 в 14:31

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

@demelkar
Это шаблон (из папки templates),
а Evanescence, говорил про файл widget.php из папки system
#5 15 ноября 2017 в 14:58
Мне надо в этом поменять как то… Это возможно ?


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

@demelkar
Это шаблон (из папки templates),
а Evanescence, говорил про файл widget.php из папки system

Sonat
#6 15 ноября 2017 в 17:40

Мне надо в этом поменять как то

@demelkar
Напомнило анекдот:

— Товарищ, а чего вы тут, под фонарем ползаете? Обронили что-то?
— Да, ключ! Вон там, в луже.
— Так почему же здесь ищите, а не там?
— Потому, что здесь светлее и суше!
#7 21 ноября 2017 в 01:56
Там там в папке system нет этого виджета он в шаблоне :(
Я не програмист а понять как кеширование именно для рейтинга отключить надо. Иначе тормозит чтот всё на сайте, на рейтинг люди жмут а он не меняется.
#8 21 ноября 2017 в 02:10
Ладно, всем спасибо отключил как предлагалось для всех виджетов… Как отключить для отдельного так и не нашёл…
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.