Почему Drupal не знает о моем файле шаблона? - PullRequest
1 голос
/ 29 октября 2010

это вопрос, как переопределить изменяемые элементы в Drupal 6.

Согласно книге "Pro Drupal Development", мы можем переопределить отображаемые элементы двумя способами:

  1. переопределение через функции тем
  2. переопределение через файлы шаблонов

Так, например, чтобы переформатировать крошку, я могу:

  1. через функция theme_breadcrumb ($ breadcrumb)
  2. через breadcrumb.tpl.php

Но на моем локальном тестовом сервере второй подход (т. Е. Через файл шаблона) не работает! Я вообще не вижу панировочных сухарей, а первый подход работает нормально.

Есть идеи, как это могло произойти? какие-либо специальные настройки мне нужны для настройки моего Drupal?

спасибо!

Моя пользовательская тема "Оттенки серого":
сайты \ все \ Themes \ пользовательские \ оттенки серого:
- breadcrumb.tpl.php
- greyscale.info
- node.tpl.php
- page.tpl.php
- style.css
- template.php

соответствующее содержимое файла:
* template.php:

function phptemplate_preprocess_breadcrumb(&$variables) {
  $variables['breadcrumb_delimiter'] = '#';
}
  • breadcrumb.tpl.php:

alt text

Ответы [ 2 ]

4 голосов
/ 29 октября 2010

Функции тем настроены на использование шаблона или функции для генерации разметки, она никогда не будет использовать обе функции, поскольку это бессмысленно.

Для функции темы использовать шаблон,он должен быть определен, когда вы определяете его в hook_theme.

Функция шаблона + препроцессора и функция темы действительно делают одно и то же: производят разметку.В зависимости от ситуации, какой метод лучше всего использовать, поэтому у нас их два.Преимущество шаблонов в том, что они позволяют пользователям изменять разметку, не слишком разбираясь в PHP или Drupal.

Cache

Drupal кэширует все шаблоны и функции темы, определенные в вашей теме, когдаВы создаете новые, вам нужно очистить кеш, это можно сделать:

  • Использование drush
  • Очистка кеша в admin/settings/performance
  • Используйте devel , чтобы очистить его при каждой загрузке страницы.Используемый во время разработки, biut снижает производительность.

Переключение темы назад и вперед также будет работать, но это действительно не тот способ, которым это нужно.

0 голосов
/ 29 октября 2010

Лично мне всегда проще изменить крошки через template.php, используя hook_breadcrumb ()

function mytheme_breadcrumb($breadcrumb) {
  $sep = ' > ';
  if (count($breadcrumb) > 0) {
    return implode($breadcrumb, $sep) . $sep;
  }
  else {
    return t("Home");
  }
}

Какие-либо конкретные причины, по которым вы хотите использовать файл .tpl.php?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...