Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
avgaz

Отключить кеширование для блока.

Рекомендованные сообщения

В общем суть в следующем, есть раздел новости сделанный с помощью pages то есть через созданную базу и категории, нужно сделать блок "похожих новостей" с выводом картинок из новости, то есть стандартный блок похожего контента не подходит.

В общем на основе его создаю пользовательский блок, меняю дизайн на который мне нужно, как бы все работает, но этот блок кешируется, то есть по сути становится не пригодным т.к из кеша для всех новостей выводится одно и тоже ((

в настройках для блока на основе Плагина нет функции отключения кеша для блока, такая настройка только для html и php блоков есть, общую настройку кеша для блоков как бы тоже не отключить там 1 минимум, да и не хотелось бы для всех блоков отключать кешь.

Вот тут и возникает вопрос может есть способ отключить для определенного блока(блоков) кешь? или может как то создать такой блок, что бы кешь там не работал?

Поделиться сообщением


Ссылка на сообщение

applications/cms/widgets/Blocks.php

Отключение кеша

$this->neverCache = TRUE;

 

Можете проверять по ключу блока

if ($block->key === 'some_key')
{
$this->neverCache = TRUE;
}

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение

Спасибо, правда почему то созданный блок plugin(relatedContent) создает на 3 лишних запроса в БД по сравнению с "оригинальным" блоком relatedContent ((

 

Может можно как то клонировать системный блок relatedContent что бы он использовал другой шаблон? что бы избавится от лишних запросов в БД и по сути тогда и кеширование отключать не нужно

Поделиться сообщением


Ссылка на сообщение
{{if \IPS\Dispatcher::i()->dispatcherController instanceof \IPS\Content\Controller}}
{{$similar = \IPS\Dispatcher::i()->dispatcherController->getSimilarContent();}}
{{if \is_array($similar) and \count($similar)}}
	Тут html код
{{endif}}
{{endif}}

Поделиться сообщением


Ссылка на сообщение

Спасибо, так через шаблон можно конечно, но не удобно, нужно тогда отдельные шаблоны делать для разных разделов(страниц), хотелось бы именно блоком, что бы можно было выбирать на какой странице его размещать.

Поделиться сообщением


Ссылка на сообщение

Я не писал, что нужно редактировать шаблон.

Создаете блок в Pages с HTML.

Поделиться сообщением


Ссылка на сообщение
10/19/19 11:11 (изменено)

Я не писал, что нужно редактировать шаблон.

Создаете блок в Pages с HTML.

Дак какой в этом смысл? пользовательские блоки созданные в Pages(что html-php, что plugin) создают два-три дополнительных запроса независимо от их содержимого(видимо проверка прав), в отличии от уже имеющихся системных блоков.

например создаю блок html с содержимым "тест" вывожу его на страницу получаю +2 запроса в бд, если же вывести системный блок "WYSIWYG Редактор" с этим же содержимым, то не каких доп запросов в базу нет.

 

По этому и хотелось клонировать блок relatedContent с отдельным шаблоном, что бы избежать этих лишних запросов. или может можно как то в шаблоне этого блока сделать проверку где он выводится и если в определенной базе pages то выводить другой его шаблон?

Изменено пользователем avgaz

Поделиться сообщением


Ссылка на сообщение

или может можно как то в шаблоне этого блока сделать проверку где он выводится

{{if \IPS\Application::appIsEnabled('cms') and \IPS\cms\Databases\Dispatcher::i()->databaseId === 1}}
   Блок расположен на странице Базы с ID 1
{{endif}}

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
10/19/19 15:00 (изменено)

Спасибо, буду так использовать.

Ещё такой вопрос, а можно как то системный блок(виджет) вывести в шаблоне, то есть пользовательский блок выводится в любом месте в шаблоне так {block='my_block_key'} а как виджет системный вывести?

Изменено пользователем avgaz

Поделиться сообщением


Ссылка на сообщение

Виджет, который где-то установлен на форуме, или нет?

Поделиться сообщением


Ссылка на сообщение

Виджет, который где-то установлен на форуме, или нет?

 

Я имею виду системные виджеты например relatedContent, сейчас он включен в темах

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...