Тема страница редактирования профиля пользователя


Я использую модуль Редактировать профиль .

Этот модуль принимает все поля, прикрепленные к профилю пользователя, и отображает их на отдельной вкладке, расположенной по адресу 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
Author: big_smile, 2012-05-15

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']); ?>
 2
Author: big_smile, 2012-05-16 09:20:12

Я думаю, это может сработать. Небольшая модификация.

Функция THENAME_theme(&$существующая, $тип, $тема, $путь) {

return array(
    'user_profile_form' => array(
        'arguments' => array('form' => NULL),
        'template' => 'templates/edit/user-profile-edit',
        'render element' => 'form',
        ),
);

}

Затем перейдите к своей теме (сайты/все/тема/ваша тема/) и создайте файл под названием профиль пользователя-файл редактирования внутри шаблонов/редактировать/. Попробуйте dpm($форма). Вы получите целые элементы формы. Вы можете визуализировать один за другим все, что вам нужно.

 0
Author: Sadanand Kenganal, 2014-04-22 12:25:11