Drupal-Юмор

Главные вкладки

Комментарии

Аватар пользователя Semantics Semantics 17 января 2012 в 0:12

"orion76" wrote:

блок - это не пхп, а хтмл - и он иногда кэшируется...


Блок это объект, и кешируется он по правилам.
Изучите, пожалуйста, кеширование блоков

Аватар пользователя Orion76 Orion76 17 января 2012 в 1:32

"Semantics" wrote:
Блок это объект,

Откройте правой кнопкой мыши контекстное меню браузера и выберите команду "Исходный код страницы".
Но вы ненайдете в там "объектов"
Вы найдете только html-код, который или генерируется каким-то php-кодом(хуком hook_block или вставленным через вэб-интерфейс php-кодом, как в данном случае), или достается из кэша При этом код, исполняющийся при генерации блока, не отрабатывает, и естественно тот css-файл не будет подключен..

Доступно?

Аватар пользователя Semantics Semantics 17 января 2012 в 1:57

Создайте блок.
Впишите туда

<?php
mail('orion76@gmail.com', 'Кешируется ли PHP-код?', 'Нет, увы!');
print time();
?>

разместите блок в формате PHP, включите кеширование и нажимайте F5.
О результатах доложить, подоступнее желательно.

Аватар пользователя Ch Ch 17 января 2012 в 7:41

Откуда вы знаете кэшируются блоки или нет на этом сайте? Существует куча различных модулей для кэширования. Блоки могут быть закэшированны вместе со страницей.

Если речь идёт только о собственном кэше блоков, то это легко проверить (см. поле cache в таблице block). Если значение этого поля у блока равно -1, значит блок не кэшируется.

Quote:
Binary flag to indicate block cache mode. (-2: Custom cache, -1: Do not cache, 1: Cache per role, 2: Cache per user, 4: Cache per page, 8: Block cache global) See DRUPAL_CACHE_* constants in ../includes/common.inc for more detailed information.

В общем случае статические блоки, которые создаются в админке через интерфейс блоков НИКОГДА НЕ КЭШИРУЮТСЯ.
block_block_info

Аватар пользователя Orion76 Orion76 17 января 2012 в 9:23

"Ch" wrote:
В общем случае статические блоки, которые создаются в админке через интерфейс блоков НИКОГДА НЕ КЭШИРУЮТСЯ.

проверено, при агресивном кешировании для анонима не кэшируются(php код исполняется всегда). -)))

Аватар пользователя Semantics Semantics 17 января 2012 в 10:57

"orion76" wrote:

проверено, при агресивном кешировании для анонима не кэшируются(php код исполняется всегда). -)))


"orion76" wrote:
Откройте правой кнопкой мыши контекстное меню браузера и выберите команду "Исходный код страницы".
Но вы ненайдете в там "объектов"
Вы найдете только html-код, который или генерируется каким-то php-кодом(хуком hook_block или вставленным через вэб-интерфейс php-кодом, как в данном случае), или достается из кэша При этом код, исполняющийся при генерации блока, не отрабатывает, и естественно тот css-файл не будет подключен..

Доступно?


за какой версией вы остаётесь?

Аватар пользователя Cyber Cyber 17 января 2012 в 11:27

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

Аватар пользователя S_F S_F 17 января 2012 в 13:18

Вспомнил я откуда такой блок мог взяться.
В сети лежит видео мануал по имиджекешу и cck там такое решение предлагается для подключения стиля к картинкам обрабатываемым модулями. Позиционированно как "будет работать в любой теме". Доля разумного и вечного в этом есть.

Аватар пользователя zviryatko zviryatko 17 января 2012 в 16:11

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

Аватар пользователя Cyber Cyber 17 января 2012 в 17:54

Такой вопрос. Кто-то может видел готовое решение для индивидуальной настройки кэша блока или региона? Что-то вроде:

этот блок кэшируем агрессивным, этот вообще не кэшируем, а этот по крону освежаем.

Аватар пользователя Ch Ch 17 января 2012 в 18:21

"zviryatko" wrote:
да... но почему нельзя по-нормальному

Не знаю почему вас так это удивило. Это действительно самый лёгкий способ подключить свой CSS файл не хакая ядрёную тему и не устанавливая посторонних модулей. Все согласны, что код в базе это не очень хорошо, но многие продолжают так делать, потому что это удобно и это работает. Посмотрите сколько разных PHP снипетов для друпала в сети. Вы просто «словили» один из таких сниппетов.
"Cyber" wrote:
решение для индивидуальной настройки кэша блока

Block Cache Alter