сделал следующее
мой мой модуль
<?php
<?php
function calculator_menu() {
$items['calculator'] = array(
'page callback' => 'calculator',
'access callback'=> true
);
return $items;
}
function calculator() {
return theme('calcForm');
}
function calculator_theme() {
return array('calcForm' => array('template' => 'calculator'));
}
?>
создал файл calculator.tpl.php
моя тема
<?php
function моя_тема_preprocess_page(&$variables) {
if(count(arg())==1 && arg(0) == 'calculator'){
$variables['theme_hook_suggestions'][] = 'page__calculator';
}
}
?>
создал файл page--calculator.tpl.php
ссылка не поможет в этот раз.
хотелось бы по-русски понять что делать, какую функцию использовать,
шаблон для модуля подключил вставил туда тестовый html работает, код выводится на тестовой странице и от темы подтянулось верхнее меню. и блок в подвале
теперь хочу понять, как окружить этот шаблон уже включенной темой оформления. То есть чтобы весь этот html не существовал на белой странице
был не такой
а такой
чтобы вывод содержимого моего модуля на странице был не где то в произвольном месте а именно в области контента, окруженного шапкой подвалом. и прочими элементами которые выводся на всех страницах.
Как например со вьюсами,
Когда мы создаем страницу во вьюсе все его содержимое попадает в регион отвечающий за контент.
Вопрос решен он содержит в себе исчерпывающий ответ. Проблема была в том, что файл page--calculator.tpl.php был пустым, поэтому все содержимое моего модуля выходило на белой странице, без окружения включенной темы
Комментарии
"шапка и футер" - это page* шаблоны. А для нод используется node* шаблоны.
Неважно как создана нода, программно или через админку, шаблон в обоих случаях создаётся одинаково
https://www.drupal.org/docs/7/theming/template-theme-hook-suggestions
Темизация page.tpl.php по типам материалов https://www.drupal.org/forum/support/theme-development/2011-04-29/how-to...
сделал следующее
мой мой модуль
<?php
function calculator_menu() {
$items['calculator'] = array(
'page callback' => 'calculator',
'access callback'=> true
);
return $items;
}
function calculator() {
echo 'привет';
}
?>
моя тема
<?php
function моя_тема_preprocess_page(&$variables) {
if(count(arg())==1 && arg(0) == 'calculator'){
$variables['theme_hook_suggestions'][] = 'page__calculator';
}
}
?>
создал файл page--calculator.tpl.php
ссылка не поможет в этот раз.
хотелось бы по-русски понять что делать, какую функцию использовать,
как для созданной страницы создать файл с шаблоном: мой_модуль.tpl.php, в котором я смогу уже ваять каркас
а дальше как окружить этот шаблон уже включенной темой оформления. То есть чтобы весь этот html не существовал на белой странице
Это еще проще через hook_custom_theme Вы можете оттемизировать все по-разному для любой страницы
дополнил вопрос
page-calculator.tpl.php создал а вставить в него содержимое забыл))
С помощью panels everywhere можно перекрыть страницу ноды нужного типа панелью, в которой не будет глобального футера, хедера и т.д.
Еще через context можно