[РЕШЕНО] надо прицепить изображение к заголовку ноды

Главные вкладки

Аватар пользователя RozalenokAE RozalenokAE 21 июня 2010 в 21:25

Здравствуйте, дорогие друпаллеры.
У меня такой вопрос: есть модуль, его задача выводить изображение статуса около заголовка нод определенного типа везде где они встречаются. код типа:

<?php
function nti_nodeapi(&$node$op$a3 NULL$a4 NULL) {
  if(
$op == 'view') {
    
$node->title nti_take_icon(&$node)." ".$node->title;
  }
}
?>

не помогает, так как там стоит check_plain у каждого заголовка. Как прилепить картинку не прибегая к изменению шаблонов?

Я уверена, что кто-нибудь уже с этим сталкивался. Заранее спасибо за помощь

Комментарии

Аватар пользователя iflamberg iflamberg 21 июня 2010 в 23:14

Вместе с заголовком не получится. Можно подредактировать темплейт page.tpl.php, чтобы он выводил вашу картинку где-то возле $title. Картинку можно хранить, например, в $node.

Аватар пользователя iNFerNo iNFerNo 21 июня 2010 в 23:30

да было бы неплохо иконку у заголовка для каждого типа материала...

ну или эмблему сайта или еще чего... для заголовков типов материала

по выбору...

Аватар пользователя paladin.on paladin.on 22 июня 2010 в 2:35

iNFerNo,
программисты могут изменить шаблон для каждого типа материала.

Верстальщики могут воспользоваться:
а.) Pathauto для того, чтобы для каждого типа материала создавать пути
б.) Css Injector для того, чтобы выводить разные кусочки css на разных страницах из п. а)
в.) посмотреть наглядные примеры простой работы css, как задать иконку в качестве фона для того или иного элемента.

Остальные... могут вздыхать Smile

Думаю для топикстартера этот вариант тоже может подойти.

Аватар пользователя paladin.on paladin.on 22 июня 2010 в 9:51

описанный выше способ позволяет вставлять иконки вне зависимости от node.tpl.php

правильнее спросить, какой он у вас.

Аватар пользователя iflamberg iflamberg 22 июня 2010 в 10:18

2paladin.on:
Как сделать сss'ом для списка нодов, чтобы у заголовка стояла иконка, соответсвующая типу ноды? Всё равно придется править node.tpl.php, чтобы он добавлял css-класс в зависимости от типа ноды.
В общем, если автору интересно - давайте нам ваш node.tpl.php - мы его подправим.

Аватар пользователя paladin.on paladin.on 22 июня 2010 в 10:25

2iflamberg

да, для списка нод придется править все node-types.tpl.php

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

Аватар пользователя RozalenokAE RozalenokAE 22 июня 2010 в 11:45

Спасибо большое за ответы ))
paladin.on, в следующий раз сформулирую точно. Я решила не акцентировать внимание на то, что у меня уже написано, а разобраться с тем, что у меня не получается

Видимо другого варианта нет, кроме как править темы(( Я так раньше и делала, это не устроило заказчика.

iflamberg, а как css'ом сделать иконку - я умею, спасибо))

И все таки, уточню: кроме как править темы, вариантов решения поставленной задачи нет?

и уточню задачу: Всем названиям нод создать иконку. Эта иконка должна быть везде, где есть название ноды и находится перед текстом названия ноды. При нажатии на иконку будет появляться AJAX -окошко с меню по изменению состояния ноды.

Аватар пользователя RozalenokAE RozalenokAE 22 июня 2010 в 18:28

В общем решила проблему с помощью nti_preprocess_page(&$variables) и phptemplate_preprocess_node

получившийся код, примерно

<?php
function nti_preprocess_page(&$variables) { 
  if (
arg(0) === 'node' && is_numeric(arg(1))) {
    
$thisnode node_load($variables['node']->nid);
    
$image nti_take_icon($thisnode);
    
$title $image " " .$thisnode->title;
    
$variables['title'] = $title;
  } 
}

function 

nti_preprocess_node(&$variables) { 
    
$thisnode node_load($variables['nid']);
    
$image nti_take_icon($thisnode);
    
$title $image " " .$thisnode->title;
    
$variables['title'] = $title;  
}
?>

и не забыть почистить кэш после изменений

Аватар пользователя RozalenokAE RozalenokAE 22 июня 2010 в 18:34

"iNFerNo" wrote:
а где графическое изображение иконки которая появляется у заголвока?

nti_take_icon($thisnode); - здесь как раз и возвращается html изображения. В конечном итоге получается, что идет: иконка title. я ответила на вопрос?

сейчас вот встал вопрос, что делать с views'ами..