Тема страница редактирования профиля пользователя
Я использую модуль Редактировать профиль .
Этот модуль принимает все поля, прикрепленные к профилю пользователя, и отображает их на отдельной вкладке, расположенной по адресу yoursite.com/user /[ИДЕНТИФИКАТОР ПОЛЬЗОВАТЕЛЯ]/редактировать-профиль.
Я хотел бы оформить поля на этой странице редактирования профиля. Как я могу это сделать?
Я пробовал два подхода, но, похоже, ни один из них не работает:
Подход 1: Tpl.php предложение от разработчика темы
Разработчик темы предлагает чтобы использовать следующий шаблон: page--user--edit-profile.tpl.php
Однако в этом есть две проблемы:
1) Это влияет на всю страницу, а не только на форму профиля пользователя.
2) Кажется невозможным получить доступ к полям в профиле пользователя из этого шаблона.
Подход 2: template.php
Идентификатор формы формы редактирования профиля пользователя edit-profile-user-profile-form
, поэтому я использовал следующий код в своем template.php файл для его переопределения:
function THENAME_theme(&$existing, $type, $theme, $path) {
return array(
'edit-profile-user-profile-form' => array(
'arguments' => array('form' => NULL),
'template' => 'templates/edit/user-profile',
'render element' => 'form',
),
);
}
Это, однако, распространяется только на главную страницу профиля пользователя, а не на поля на вкладке правка. Кто-нибудь может помочь?
2 answers
Я понял это.
Решение состоит в том, чтобы использовать подход 2 (в моем вступительном посте). Однако в template.php файл, вы должны удалить все тире из идентификатора формы (edit-profile-user-profile-form
) и заменить их подчеркиванием.
Таким образом, код в template.php будет выглядеть следующим образом:
function THENAME_theme(&$existing, $type, $theme, $path) {
return array(
'edit_profile_user_profile_form' => array(
'arguments' => array('form' => NULL),
'template' => 'templates/edit/user-profile',
'render element' => 'form',
),
);
}
Затем создайте файл с именем user-profile.tpl.php
и сохраните его в шаблонах/редактировании.
В файле user-profile.tpl.php
используйте следующий код для распечатки полей:
<?php print drupal_render($form['field_NAME_OF_FIELD']); ?>
Я думаю, это может сработать. Небольшая модификация.
Функция THENAME_theme(&$существующая, $тип, $тема, $путь) {
return array(
'user_profile_form' => array(
'arguments' => array('form' => NULL),
'template' => 'templates/edit/user-profile-edit',
'render element' => 'form',
),
);
}
Затем перейдите к своей теме (сайты/все/тема/ваша тема/) и создайте файл под названием профиль пользователя-файл редактирования внутри шаблонов/редактировать/. Попробуйте dpm($форма). Вы получите целые элементы формы. Вы можете визуализировать один за другим все, что вам нужно.