3

如何为用户注册页面制作模板?我想为整个页面设置主题,而不仅仅是表单。我试过page--user-register.tpl.php了,但这不起作用。

4

5 回答 5

4

您想使用page--user--register.tpl.php而不是page--user-register.tpl.php.

page--user-register.tpl.php更改页面的模板user-register,同时page--user--register.tpl.php更改页面的模板user/register

于 2013-06-15T16:43:11.787 回答
3

开箱即用的 Drupal 不为注册表单提供任何模板建议。您需要编写一个自定义模块来添加它。你可以这样做:

/**
 * Implements hook_theme().
 */
function mymodule_theme() {
  $items = array(
    'user_register_form' => array(
      'render element' => 'form',
      'template' => 'templates/user-register-form',
    ),
  );
  return $items;
}

然后你会在 mymodule/templates 中有一个名为 user-register-form.tpl.php 的模板,你可以在你的主题中自定义或覆盖它。

于 2012-10-10T20:05:01.853 回答
3

我推荐使用主题开发者模块

它将向您显示任何给定页面的所有模板建议,以及如何称呼它们。还要确保您正在清除缓存。

也是一个很好的资源

于 2012-10-10T18:06:13.830 回答
1

德鲁巴 7

将此代码添加到主题目录中的 template.php 中。

    function yourtheme_theme() {
      return array(
        'user_login' => array(
          'template' => 'user-login',
          'arguments' => array('form' => NULL),
        ),
      );
    }

    function yourtheme_theme() {
      $items = array();
      $items['user_login'] = array(
        'render element' => 'form',
        'path' => drupal_get_path('theme', 'yourtheme') . '/templates',
        'template' => 'user-login',
        'preprocess functions' => array(
           'yourtheme_preprocess_user_login'
        ),
      );
      return $items;
    }

    function yourtheme_preprocess_user_login(&$vars) {
      $vars['intro_text'] = t('This is my awesome login form');
    }

在主题的“模板”文件夹中创建一个名为 user-login.tpl.php 的文件。

添加此代码并将“yourtheme”更改为您的主题名称。

 <?php print drupal_render_children($form) ?>

清除缓存。

来源(您可以在其中找到有关如何为 user-register-form、user-password-form 和 Drupal 6 执行此操作的详细信息) https://drupal.org/node/350634

于 2014-02-27T04:22:36.840 回答
0

另一种方法是使用“面板”创建客户注册页面:

  1. 安装和启用面板模块
  2. 创建新页面“注册页面”并设计布局
  3. 将内容添加到您的区域。对于您的情况,“注册块”或“登录块”
于 2013-06-16T10:59:56.700 回答