@Aleksander911

Как запретить кеширование include файла?

Доброго дня все.
Имеется файл, который выводит информацию в карточке товара из include папки.
<?$APPLICATION->IncludeComponent("bitrix:main.include", "", array("AREA_FILE_SHOW" => "file", "PATH" => SITE_DIR."include/time-delivery.php"), false);?>


в котором изменяется информация в зависимости от времени просмотра товара:
date_default_timezone_set("UTC"); // Устанавливаем часовой пояс по Гринвичу
$time = time();
$time += 10 * 3600; // Добавляем 10 часа к времени по Гринвичу
$tomorrow_energiya = $time + (25200*24);//
$tomorrow_pochta = $time + (36000*24);
$energiya = date('j.m.Y',$tomorrow_energiya); //Дата доставки Энергия
$pochta = date('j.m.Y',$tomorrow_pochta); //Дата доставки Почта России 
....
$date = intval(date('G', $time));
				if ($date >= 9 && $date <= 18) {
				  echo "Сегодня";
				} else {
				  echo "Завтра";
				}

Дело в том, что этот файл кешируется и в итоге после 18: 00 не происходит изменение "Сегодня" на "Завтра", а чистить каждый день кеш - это не вариант.
Я знаю, что есть возможность использовать component_epilog.php, но так и не нашел примеры его использования и подключения к карточке товара.
Подскажите как можно сделать, что бы php-скрипт не кешировался? Или как это всё оформить в component_epilog.php?
  • Вопрос задан
  • 2398 просмотров
Пригласить эксперта
Ответы на вопрос 2
winer
@winer
занимаюсь разработкой сайтов на 1c-bitrix
Попробуйте установить в параметрах компонента CACHE_TYPE=>N.
Можно еще попробовать вместо компонента подключить вот так
$APPLICATION->IncludeFile(SITE_DIR . "/include/file.php", Array(), Array("MODE" => "html",))


Но скорее всего у Вас кешируется не включаемая область, а то место где вызывается этот компонент.
Например если этот код, при включенном кешировании, разместить в template.php компонента catalog.element, то закешируется весь шаблон catalog.element, и не важно как там вызывать подключаемый файл.

Для того чтобы Ваш код не кешировался можно попробовать добавлять его на страницу через js, подгружая контент ajax`ом.
Или можно использовать component_epilog.php у catalog.element так как написано в этой статье из курса разработчика bitrix
Ответ написан
babarun
@babarun Куратор тега 1С-Битрикс
Безумный план моих идей в руках больных людей
Добавьте в настройки компонента параметр идентифицирующий час, тем самым на каждый час будет создаваться свой файл кэша. Не лучший вариант т.к. объём кэша соответствующего компонента вырастит в 24 раза. Исправить это можно передавая в настройки компонента параметр "Сегодня" или "Завтра", а не час.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы