Я создал блок , используя hook_block_info
и hook_block_theme
и тому подобное. Но как я могу это тема?
У меня это работает, чтобы вернуть массив с ключами 'subject'
и 'content'
. Но я создал разметку прямо в hook_block_view()
крючке, и это не то, что я хочу.
В документации сказано, что контент должен возвращаться как рендеринг, а не как разметка. Но что это за визуализируемый массив ? Говорят, что это должны быть данные, а не разметка, но все, что я вижу в примерах, это то, что они просто используются в качестве оболочки для разметки, поэтому ничего не получилось.
Я хочу иметь возможность иметь block--MYMODULE--DELTA.tpl.php
в моей теме, но как я могу назвать это и как я могу передать данные в блок?
Ответы:
Я делаю это следующим образом ...
И тогда в подпапке в вашем модуле называется
theme
должен быть файл с именем,my-template.tpl.php
который может содержать это:И если вы хотите, вы можете переписать реализацию модуля «по умолчанию», которую вы только что создали
my-module.tpl.php
в своей теме, как вы пожелаетеblock--MYMODULE--DELTA.tpl.php
.источник
admin/config/development/performance
и нажатьclear cache
кнопку. Вы также можете очистить кэш, используя drush, т.е.drush cc all
Попробуйте модуль Theme Developer . Когда вы включите его, вы можете поставить галочку в левом нижнем углу страницы Drupal. После этого вы можете нажать на свой блок и получить полезную информацию с учетом их тематики. Например, вы можете увидеть возможные имена файлов .tpl.php для вашего блока.
Выберите одно из этих имен. Первый является наиболее конкретным. Это будет тема только одного блока. Создайте файл с таким именем в папке вашей темы, если его там еще нет. Вы можете поместить его в подпапку, если хотите организовать.
Скопируйте содержимое block.tpl.php в свой файл и начните изменять вещи так, как вы хотите.
Сохраните ваш файл, очистите кеш и перезагрузите страницу.
источник
На этот вопрос уже есть несколько ответов, но я попытался дать очень упрощенный подход. Будем надеяться, что разработчикам будет предложена структура массива, ожидаемая Drupal при возврате содержимого вашего блока.
Чтобы сделать это, я разбил вопрос на отдельные примеры кода как таковые,
Пожалуйста, смотрите полное объяснение здесь drupal 7 создание тематических блоков
источник
Это старый пост, но я нашел лучшее решение для переопределения шаблонов блоков из пользовательского модуля для Drupal 7.
Добавьте это в свой пользовательский модуль:
Тогда вам нужен следующий код:
Все, что вам нужно сделать, это создать
templates/block--my-custom-module.tpl.php
внутри папки вашего модуля.Я написал учебник об этом учебнике по Drupal - Как переопределить шаблоны блоков из пользовательского модуля
источник