Контактная форма Drupal не отображает тему

Так что я пошел и настроил пользовательский логин / пароль / зарегистрировал страницы Drupal 6 и никаких проблем. Однако теперь я делаю то же самое со страницей с контактной почтой (модуль контактов включен), и все, что я получаю, это форма контакта и НЕТ темы. Что я делаю неправильно?

function mytheme_theme() {
  return array(
    'user_login' => array(
      'template' => 'user-login',
      'arguments' => array('form' => NULL),
    ),
    'user_register' => array(
      'template' => 'user-register',
      'arguments' => array('form' => NULL),
    ),
    'user_pass' => array(
      'template' => 'user-pass',
      'arguments' => array('form' => NULL),
    ),
    'contact_mail_page' => array(
      'template' => 'page-contact',
      'arguments' => array('form' => NULL),
    ),
  );
}

2 ответа

Решение

Чтобы создать тему полной страницы, вам вообще не нужно добавлять этот элемент в код (фактически, это может быть причиной того, что вы не получаете какую-либо тему - ваш элемент конфликтует с поведением по умолчанию).

Предполагая, что URL-адрес вашей контактной страницы - " http://www.your-site.com/contact", просто создайте page-contact.tpl.php в каталоге вашей темы (... и очищайте реестр тем, получая меня каждый раз).

Это относится ко всем страницам - создайте шаблон, основанный на page.tpl.php и названный в честь аргументов URL. Например, page-taxonomy-term.tpl.php будет использоваться для темы http://www.your-site.com/taxonomy/term.

Похоже, вы создаете модуль, а не тему. С drupal6 вы можете расширить существующую тему, избавляя вас от необходимости пытаться переопределить тему для каждого элемента.

Взгляните на базовую тему в файле .info и документацию по созданию собственной темы.

Другие вопросы по тегам