Проблема темизации node

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

Аватар пользователя shuma shuma 27 ноября 2013 в 11:29

Всем привет,
у меня опять появился вопрос, на этот раз по темизации нод.
При создании материала есть раздел Тип машины, он сделан в виде Список (целые числа), в списке имеется:
0|Седан
1|Универсал
2|Хэчбэк
3|Джип
4|Минивен
5|Бус
6|Грузовая
При размещении записи можно установить несколько чекбоксов с нужным типом машин. И все бы хорошо, но тип машин я вывожу в виде иконок и тут появляется проблема. Если устанавливать флажки с начиная с типа 0|Седан и далее по порядку, то на странице выводятся нужные иконки. Но если например установить флажок начиная с 3|Джип, то на странице ничего не отображается.
Вот этот код я использую для вывода иконок. Подскажите, что в нем не так и как исправить эту проблему.


<?php if($content['field_taxi_type'][0]['#markup']=='0')
       {print 
'<img title="Седан" src="img/sedan.jpg">';}
       else {print 
'';}
       
?>
           <?php if($content['field_taxi_type'][1]['#markup']=='1')
       {print 
'<img title="Универсал" src="img/uni.jpg">';}
       else {print 
'';}
       
?>
           <?php if($content['field_taxi_type'][2]['#markup']=='2')
       {print 
'<img title="Хэтчбек" src="img/hachback.jpg">';}
       else {print 
'';}
       
?>
           <?php if($content['field_taxi_type'][3]['#markup']=='3')
       {print 
'<img title="Внедорожник" src="img/jeep.jpg">';}
       else {print 
'';}
       
?>
           <?php if($content['field_taxi_type'][4]['#markup']=='4')
       {print 
'<img title="Минивен" src="img/minivan.jpg">';}
       else {print 
'';}
       
?>
        <?php if($content['field_taxi_type'][5]['#markup']=='5')
       {print 
'<img title="Бус" src="img/bus.jpg">';}
       else {print 
'';}
       
?>
        <?php if($content['field_taxi_type'][6]['#markup']=='6')
       {print 
'<img title="Грузовик" src="img/bigbus.jpg">';}
       else {print 
'';}
       
?>

Комментарии

Аватар пользователя Torvild Torvild 27 ноября 2013 в 12:40

Только не говорите,что это всё в файле шаблона)

Почему бы Вам не задействовать таксономию - функционал "из коробки"?
Удобней,и,думаю,впоследствии пригодится.

Аватар пользователя shuma shuma 27 ноября 2013 в 12:46

"Torvild" wrote:
Только не говорите,что это всё в файле шаблона)

Почему бы Вам не задействовать таксономию - функционал "из коробки"?
Удобней,и,думаю,впоследствии пригодится.

Да, все это в файле материала node--car.tpl.php. Это очень плохо?

Хорошо, а если я сделаю вывод типа автомобиля через таксономию. Как потом значению таксономии заменить иконкой?

Аватар пользователя Torvild Torvild 27 ноября 2013 в 14:43

"shuma" wrote:
Да, все это в файле материала node--car.tpl.php. Это очень плохо?

Хорошо, а если я сделаю вывод типа автомобиля через таксономию. Как потом значению таксономии заменить иконкой?

Необходимо разделять логику и представление - чаще всего,в шаблоне должны быть только PHP-переменные и HTML теги.

Вам надо сделать так:
-Создаете словарь таксономии "Тип авто".
-Для термина добавляете поле "Изображение".
-Забиваете словарь парами тип-иконка.
-В нужном типе материала добавьте поле "ссылка на термин" и выберите свой словарь.
-В template.php циклом проходитесь по массиву терминов объекта node,забиваете их картинки в переменную и передаёте её в шаблон и всё. Smile

Аватар пользователя Torvild Torvild 27 ноября 2013 в 14:48

Еще вариант - затемить с помощью CSS,опираясь на классы термина таксономии (выводить их прямо в ноду).
text-indent: -9999px; background: sedan.png; и т.д.

Аватар пользователя StingMU StingMU 27 ноября 2013 в 15:49

А можно просто картинкам давать имена:
img/auto_0.jpg
img/auto_1.jpg
img/auto_2.jpg
и т.п. и вместо цифры подставлять свой ключ значения, а вместо тайтла - само значение)

P.S. Не забудьте об обязательном атрибуте "alt" у всех картинок!

Аватар пользователя shuma shuma 28 ноября 2013 в 20:37

"ХулиGUN" wrote:
Да тут даже не в самом коде дело, а в подходе для реализации

Вас уже смущает то, что вы когда то советовали другим? http://www.drupal.ru/node/87633
А вообще странные вы люди. Все прям в таком недоумении, но вместо того чтобы помочь, только языки чешете. Ну и сообщество

Аватар пользователя shuma shuma 28 ноября 2013 в 22:40

"ХулиGUN" wrote:
И вот зачем городить непонятную хрень из кучи говна? Если так хочется перебирать все значения, то есть хорошая функция switch()... Прежде чем что то делать, нужно думать а не тупо копипастить чужой код, не находите?

Вы конечно же все правильно говорите, только меньше экспрессии, ок?
ПС Спасибо за приведенный код