функция предварительной обработки для типов узлов cck - PullRequest
0 голосов
/ 14 января 2010

(Примечание: я первоначально разместил это на drupal.org, прежде чем вспомнил, что я никогда не получу ответ там. Так что, извините за перекрестную публикацию)

Здравствуйте, есть ли способ (встроенный или нет) для добавления функций предварительной обработки для определенных типов узлов cck? Я пытаюсь выполнить некоторую предварительную обработку поля в моем типе узла cck. В настоящее время я могу либо использовать theme_preprocess_node, а затем переключиться на тип $ node-> или использовать функцию заголовка для определенного имени поля (и все же сделать переключатель, чтобы убедиться, что текущее использование поля находится в пределах типа узла, который я ищу за). Я предлагаю иметь такую ​​функцию ...

theme_preprocess_mynodetype(&$vars) {
    // Now I can preprocess a field without testing whether the field is within the target content type
}

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

Спасибо! Rob

Ответы [ 2 ]

3 голосов
/ 15 января 2010

См. Эту функцию в content.module cck:


/**
 * Theme preprocess function for field.tpl.php.
 *
 * The $variables array contains the following arguments:
 * - $node
 * - $field
 * - $items
 * - $teaser
 * - $page
 *
 * @see field.tpl.php
 *
 * TODO : this should live in theme/theme.inc, but then the preprocessor
 * doesn't get called when the theme overrides the template. Bug in theme layer ?
 */
function content_preprocess_content_field(&$variables) {
  $element = $variables['element'];
...

1 голос
/ 14 января 2010

Я думаю, что вы ищете этот пост . Нет волшебного препроцесса для каждого узла, только для каждой темы / механизма шаблонов, но у вас есть доступ к типу узла в параметре $ vars, так что вы можете включить его там.

Надеюсь, это поможет!

...