Условие копирования материалов с сайта — обязательная ссылка на наш сайт http://kudesa.org
Как реализовать собственный шаблон tpl.php и вызывать его с помощью функции theme()
Так как только что сам искал подобное решение и в общем-то не нашел его, решил выложить на всеобщее обозрение собственное решение. Может быть, кому-то пригодится.
Сразу должен сказать, что поймут, пожалуй, только программисты drupal.
Есть некий модуль kontragent.module, реализующий работу с контрагентами (показ контрагента, добавление, изменение и пр.)
Задача: реализовать показ контрагента с помощью шаблона kontragent.tpl.php. В данном случае контрагент - это не тип материала, поэтому стандартные шаблоны типа node.tpl.php не подойдут.
Реализация по следующим пунктам:
- Регистрация функции темизации, которая будет использовать шаблон
- Создание шаблона kontragent.tpl.php
- Определение функции для показа контрагента kontragent_page($kon), $kon - переменная с данными контрагента
1. Ниже представлен код функции, которая регистрирует функцию темизации kontragent_view
Обратите внимание на элемент массива 'template', если его не указывать, тогда темизация перестоится на вызов функции, а в модуле придется написать функцию kontragent_kontragent_view($kon)
/**
* Регистрация функции темизации
* @return unknown_type
*/
function kontragent_theme() {
return array(
// название функции темизации
'kontragent_view' => array(
// указываем единственный аргумент с данными контрагента (укажите больше, если необходимо)
'arguments' => array('kontragent' => NULL),
// имя файла шаблона без .tpl.php
'template' => 'flagman_kontragent'
)
);
}
2. В каталоге нашего модуля создадим шаблон kontragent.tpl.php
Например, с таким содержанием:
<?php
// эта функция распечатывает все переменные, доступные в шаблоне
// drupal_set_message("".print_r(array_keys(get_defined_vars()), 1).'');
$kon = $variables['kontragent'];
?>
КОД:<?php print $kon['CODE'] ?>
Наименование:<?php print $kon['DESCR'] ?>
3. А теперь вызовем нашу функцию темизации, передав ей в качестве параметра данные контрагента.
/**
* Выдает страницу контрагента
* $kon - параметр с данными контрагента
* @return string
*/
function kontragent_page($kon) {
drupal_set_title($kon['DESCR']);
return theme('kontragent_view', $kon );
}
Под методологией осознают учение
Торчащие тренеры имеют высокой инициативой, проявленным ощущением новшества, недюжинным трудолюбием и нестандартным мышлением. Под методологией осознают учение о методах, совокупности методов и зачислений. Кроме того, тренер - учитель, не ведущий исследовательской произведения, сам ни в чем не колеблется и не научит колебаться остального. В более обширном резоне методология — это учение о принципах построения, формочках и методах научного знания. А тот, кто не замечает вопросов, едва ли умеет сообразовываться созидательной личностью.
Отправить комментарий