как присвоить картину типу материалов?

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

Аватар пользователя Totaku Totaku 22 декабря 2009 в 22:26

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

[картинка хлеба] Хлеб всему голова!

как это сделать?

как сделать перед темой просто буковками какой это тип материала я разобрался (выгядит так: [хлеб] Хлеб всему голова), а вот как сделать картинками я не могу понять. помогите.

Комментарии

Аватар пользователя ankheg ankheg 22 декабря 2009 в 22:31

"Totaku" wrote:
есть у меня несколько типов материалов, допустим: хлеб, вода и пиво

Если действительно так, то это неудачно спроектированная модель данных. Лучше один тип материала "продукт" и к нему, например, прицеплена таксономия "тип продукта". И тогда модуль taxonomy image.

Если всё-таки как у вас, то в шаблоне node.tpl.php менять картинки в зависимости от $node->type.

Аватар пользователя Totaku Totaku 22 декабря 2009 в 22:37

"ankheg" wrote:
Если действительно так, то это неудачно спроектированная модель данных. Лучше один тип материала "продукт" и к нему, например, прицеплена таксономия "тип продукта". И тогда модуль taxonomy image.

вот это мы рассмотрим, ну и я как бы только начинаю вникать во все тонкости процесса, так что спасибо большое за такой путь. завтра попробую

"ankheg" wrote:
Если всё-таки как у вас, то в шаблоне node.tpl.php менять картинки в зависимости от $node->type.

а можно поподробней я что-то не совсем вас понял

Аватар пользователя ankheg ankheg 22 декабря 2009 в 22:42

"Totaku" wrote:
вот это мы рассмотрим

Да, лучше сейчас переделать, иначе потом не сможете пользоваться многими модулями по-человечески.

"Totaku" wrote:
а можно поподробней я что-то не совсем вас понял

У каждой темы оформления есть файл node.tpl.php. Там можно использовать такой код:

<?php
if ($node->type == 'type1') {
  
$img 'image1.jpg';
}
else if (
$node->type == 'type2') {
  
$img 'image2.jpg';
}
?>
Аватар пользователя Totaku Totaku 23 декабря 2009 в 17:21

я ничего там не понял Sad

<?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;?>

вот так вот сейчас выводится словарь, но показывает только текст, что тут надо изменить чтоб вместо текста была картинка

Аватар пользователя Totaku Totaku 23 декабря 2009 в 18:13

сейчас заголовок поста выводится так:

<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>

то ваще ничего не работает

Аватар пользователя Totaku Totaku 23 декабря 2009 в 18:30

аллилуйя! это просто я криворукий.

<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>

работает, выводит только картику, но выводит она ее криво Sad

как сделать чтоб это все было в одной строке?

Аватар пользователя Totaku Totaku 27 декабря 2009 в 0:59

вопрос. на главной странице картинки отображаются, а если жму читать далее то их нет, что я опять сделал не так?

Аватар пользователя ankheg ankheg 27 декабря 2009 в 12:54

В node.tpl.php настраиваются заголовки постов в лентах.

Заголовки на страницах node/x настраиваются аналогично в page.tpl.php. Только код лучше заключить в

<?php
if ($node) {
  ...
}
?>