Попался сайт на друпале, мне нужно сменить h1, не меняя названия ноды, так как оно используется как анкоры в динамических вещах (менюшках). Вроде всегда решалось всё просто, но не в этот раз. Создал дополнительное текстовое поле для своего типа материала. Вот несколько проблем:
1) h1 выводится в шаблоне page.tpl. Как в page.tpl определить, открыта у нас нода или вьюха? или главная? Ведь если я использую field_get_items, то на главной у меня вылетает ошибка, что не может быть свойства получена, ведь там нету ноды. Подозреваю, что и на страницах модуля views такая же фигня будет.
2) Созданное поле отображается в конце материала само. Т.е выводятся после контента все поля вместе с названием и содержимым.
3) Я записал поле в переменную, h1 сейчас выводится из переменной $title. Логично, что если есть значения доп. поля то выводим его, если нет, то $title. Однако проблема в том, что в title переменную при авторизации попадают кнопки редактиварония ноды. Откуда они там взялись? и как их оттуда вычленить?
Комментарии
Возможно подойдет https://www.drupal.org/project/title_override ? С темизацией тоже нет никаких проблем. В шаблоне page.tpl.php на страницах нод доступна переменная $node, проверяйте ее существование и вытягивайте из нее нужно поле.
По пункту 1 sergeybelya правильно сказал, просто добавьте проверку на существование ноды if(isset($node)).
По пункту 2 вы, видимо, поле добавить добавили, но не исключили его из вывода, в настройках типа материала вкладка управление отображением.