Я заменяю сайт drupal 6 на сайт drupal 7 с тем же содержанием. На этом сайте Drupal 6 есть блок, который виден, когда вы вошли в систему. В качестве заголовка в этом блоке отображается сообщение «Welcome {username}».
Я ищу способ сделать это в Drupal 7, я пытался сделать это с помощью модуля 'Token', но у меня ничего не получается. Какой лучший способ сделать это?
Ответы:
Либо в блоке, либо в пользовательском модуле, который добавляет блок, добавьте следующий код:
Это более полезно, если вы хотите получить текущую информацию о пользователе. Возможно, это также для
user_is_logged_in
функции.источник
Если вы хотите сделать это в модуле (рекомендуется в отличие от добавления php-кода в блок, который не будет в контроле версий), то вы можете сделать это:
(в этом случае весь этот код будет помещен в пользовательский модуль с именем userwelcome.)
Если вы затем хотите переопределить тему этого блока в теме, вы должны сделать это (в файле template.php вашей темы):
Обратите внимание, что, поскольку это пользовательский модуль, вы также можете просто обновить функцию темы непосредственно в модуле.
Если вы не хотите использовать пользовательский модуль, вы можете создать пользовательский блок с php-кодом и добавить его:
источник
theme_userwelcome
, функция должнаtheme_userwelcome_welcome_block
быть помещена в тему, а не вuserwelcome
модуль. Предположительно,userwelcome_theme
функция должна быть вызванаuserwelcome_theme_theme
(да, 2 слова темы заменяют название темыhook
) и помещены в темуtheme_userwelcome
. функцииuserwelcome_block_view
иuserwelcome_block_info
остаются вuserwelcome
.Используйте модуль просмотров. Создать новый вид> показать пользователей> заблокировать отображение. Добавьте контекстный фильтр> укажите аргумент по умолчанию> идентификатор пользователя, вошедшего в систему. Сконфигурируйте поля (вы можете переписать результаты), чтобы включить любые текстовые / жетоны или поля профиля пользователя по вашему желанию. Сохраните и добавьте блок в регион.
Сделано с одним модулем и без кода.
-lunk_rat
источник