День добрый.
Хочу подгружать js-файл при создании определенного типа node.
Каталог - /www/themes/garland/
template.php:
<?php
function Garland_theme($existing, $type, $theme, $path){
return array(
'inf_node_form' => array(
'arguments' => array('form' => NULL),
'template' => 'inf'
)
);
}
?>
Файл inf.tpl.php
<?php
print ("pff");
?>
Вместо print хочу в дальнейшем вставить подключение js файла, это ради теста, в итоге ничего не выводит, то бишь тест не проходит.
Где я мог ошибиться?
Комментарии
function garland_theme
а лучше на hook_form_FORM_ID_alter делай drupal_add_js
или вообще добавь свои js в info файле темы.
После изменения буквы на малую - эффекта 0.
Привожу еще раз код.
Путь: 0:/www/themes/garland/
template.php
<?php
function garland_theme($existing, $type, $theme, $path){
return array(
'zayavkalib_node_add_form' => array(
'arguments' => array('form' => NULL),
'template' => 'zayavkalib'
)
);
}
?>
Файл zayavkalib.tpl.php
<?php
print ("pff");
?>
/node/add/zayavkalib
Отсутствие в исходном коде "pff"
вам правильно подсказали насчет https://api.drupal.org/api/drupal/developer%21hooks%21core.php/function/...
Тут суть в том, что мне в любом случае придется темизировать, свои стили и пр.
Было бы удобнее делать способом, который я изложил в начале.
Попробую Ваш способ, спасибо.
Опять же, это проще всего сделать через hook_form_FORM_ID_alter.
Там и стили подтянуть, и поправить html код формы можно. Обертки свои для элементов сделать, аттрибутов понаставить.
вам все равно придется этот хук использовать. потому как, если шаблон заработает, то там элементов форм не будет.
ну и подключайте drupal_add_js в вашей theme_inf_node_form() {...} если удобнее
Я подключал в теме, но этот js используется не везде, хотел его подключить именно для этой формы.
<?php
function ztest_form_test_node_form_alter(&$form, &$form_state) {
drupal_add_js('../themes/garland/js/blockFields.js');
}
?>
в альтере правильно подключать с #attached ваш вариант косячный
я в 6-ке не нашел #attached. тоже хотел так посоветовать)
аа, 6ка тогда в #after_build добавить свою функцию и там, ну или в theme_xxx_xxx
формальтер для модификации формы, не подключайте скрипты и стили там - они не всегда будут подключаться