содержание блока изменения

Объяснение здесь из Илии... 5.2 только, хотя

поддержка флага httpOnly cookie в PHP 5.2

, Как указано в той статье, можно установить заголовок сами в предыдущих версиях PHP

header("Set-Cookie: hidden=value; httpOnly");

5
задан revagomes 24 January 2013 в 19:04
поделиться

2 ответа

В зависимости от ваших потребностей я могу придумать различные возможные способы:

  1. Использование template_preproces_block () : этот хук по существу «перехватывает» переменные на их пути к блоку и дает вам возможность вмешаться в них. Это довольно эффективный способ сделать это.
  2. Создание собственного файла шаблона для блока : Это позволяет вам использовать еще несколько трюков, но с точки зрения скорости не лучший (тематизация через .tpl.php файлы примерно в 5 раз медленнее, чем использование функций, я читал)
  3. Создание собственного нового блестящего блока путем реализации hook_block () . Как предложил Хенрик, вы можете легко скопировать код из исходного модуля в качестве стартера. Это хороший способ сделать это, если ваше изменение должно повлиять на все возможные темы, используемые на сайте, не так сильно, если оно должно повлиять только на одну тему (хотя вы можете реализовать некоторую логику в зависимости от погоды, в которой используется данная тема, или нет, но мне это кажется весьма неэлегантным).
  4. Если в блоке отображаются формы или другое содержимое, имеющее собственный набор перехватчиков, то вы также можете изменить содержимое таким образом. Например: если вы пытаетесь изменить блок входа в систему (который показывает форму для аутентификации), вы можете реализовать либо hook_form_FORM_ID_alter () , либо hook_form_alter () .
  5. Использование jQuery : это хорошее решение, если содержимое блока должно изменяться асинхронно (или зависимо) от остального содержимого страницы. Имейте в виду, что старые браузеры (или поисковые системы) победили. t запускать код jQuery.

С другой стороны, вы можете полностью изменить подход к проблеме, изменив саму природу «блока» на что-то более гибкое. Я бы не одобрил этот подход, если вы действительно не обнаружите, что простой блок не будет делать то, что вам нужно ... но это возможность, о которой вам следует знать. Вы можете изменить природу блока, среди прочего:

  • Используя модуль nodeasblock , который позволяет вам поместить узел в блок (таким образом, имея возможность использовать в шаблоне гораздо больше переменных, чем простые $ title и $ content .
  • Использование модуля просмотров . Это необходимо знать любому серьезному пользователю / администратору drupal .. . но применимость представлений к этому конкретному случаю сильно зависит от содержимого блока, который вы пытаетесь создать.
  • Использование модуля панелей , который позволяет создавать блочное содержимое и поиграйте с ним через графический интерфейс (не забывайте, что это огромный модуль с точки зрения накладных расходов и крутой кривой обучения).
9
ответ дан 18 December 2019 в 14:47
поделиться

AFAIK, нет «настоящего» перехватчика для изменения содержимого блоков. Вы можете реализовать функцию yourModule_preprocess_block () , проверяющую / управляющую переданным в массиве $ variables. В качестве альтернативы, поскольку реализации блоков обычно довольно короткие, вы можете скопировать исходную логику генерации блоков в свою собственную реализацию hook_block () , тем самым предоставив вашу собственную версию с желаемыми настройками.

4
ответ дан 18 December 2019 в 14:47
поделиться
Другие вопросы по тегам:

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