есть у меня несколько типов материалов, допустим: хлеб, вода и пиво. как сделать так чтоб рядом с темой появлялась маленькая картинка одного их из этих типов материалов, ну допустим:
[картинка хлеба] Хлеб всему голова!
как это сделать?
как сделать перед темой просто буковками какой это тип материала я разобрался (выгядит так: [хлеб] Хлеб всему голова), а вот как сделать картинками я не могу понять. помогите.
Комментарии
Если действительно так, то это неудачно спроектированная модель данных. Лучше один тип материала "продукт" и к нему, например, прицеплена таксономия "тип продукта". И тогда модуль taxonomy image.
Если всё-таки как у вас, то в шаблоне node.tpl.php менять картинки в зависимости от $node->type.
вот это мы рассмотрим, ну и я как бы только начинаю вникать во все тонкости процесса, так что спасибо большое за такой путь. завтра попробую
а можно поподробней я что-то не совсем вас понял
Да, лучше сейчас переделать, иначе потом не сможете пользоваться многими модулями по-человечески.
У каждой темы оформления есть файл node.tpl.php. Там можно использовать такой код:
<?php
if ($node->type == 'type1') {
$img = 'image1.jpg';
}
else if ($node->type == 'type2') {
$img = 'image2.jpg';
}
?>
ankheg спасибо буду пробовать
поставил я taxonomy image залил к терминам картинки, но они нигде не отображаются, что я делаю не так?
Таксономия с материалом связана?
да конечно
Посмотрите http://drupal.org/node/44922
Самое простое там - http://drupal.org/node/44922#comment-690745
я ничего там не понял
<?php if (count($taxonomy)): $terms = taxonomy_node_get_terms_by_vocabulary($node, 3); if ($terms) { foreach ($terms as $key => $term) {$items3[] = l($term->name, taxonomy_term_path($term), array('attributes' => array('rel' => 'tag', 'title' => $term->description)));} print ('') . implode(', ', $items3);} endif;?>
вот так вот сейчас выводится словарь, но показывает только текст, что тут надо изменить чтоб вместо текста была картинка
Попробуйте в node.tpl.php добавить
<?php
foreach ($node->taxonomy as $k => $v) {
print taxonomy_image_display($k, "alt='$term->name'");
}
?>
если это писать то картинка отображается, но как мне ее отображать именно в заголовке?
В node.tpl.php попробуйте этот код вставить внутрь тега h2, например.
сейчас заголовок поста выводится так:
<h3 class="post-title"><?php if (count($taxonomy)): $terms = taxonomy_node_get_terms_by_vocabulary($node, 3); if ($terms) { foreach ($terms as $key => $term) {$items3[] = l($term->name, taxonomy_term_path($term), array('attributes' => array('rel' => 'tag', 'title' => $term->description)));} print ('') . implode(', ', $items3);} endif;?> -> <a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h3>
отображается так:
что мне изменить в коде чтоб вместо "девочки" была картинка???
UPD: если делать так:
<h3 class="post-title"><?php foreach ($node->taxonomy as $k => $v) { print taxonomy_image_display($k, "alt='$term->name'"); } ?> -> <a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h3>
то ваще ничего не работает
В чем именно это проявляется?
пишет что ошибка в этой строке
аллилуйя! это просто я криворукий.
<h3 class="post-title"><?php foreach ($node->taxonomy as $k => $v) { print taxonomy_image_display($k, "alt='$term->name'"); } ?> -> <a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h3>
работает, выводит только картику, но выводит она ее криво
как сделать чтоб это все было в одной строке?
Попробуйте поставить на картинку CSS-свойство vertical-align: middle;
все проблема решена полностью ^_^ всем огромное спасибо за помощь
вопрос. на главной странице картинки отображаются, а если жму читать далее то их нет, что я опять сделал не так?
В node.tpl.php настраиваются заголовки постов в лентах.
Заголовки на страницах node/x настраиваются аналогично в page.tpl.php. Только код лучше заключить в
<?php
if ($node) {
...
}
?>