[РЕШЕНО] Как выделить заголовок одной из нод на главной?

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

Аватар пользователя gruz gruz 23 февраля 2009 в 20:54

Такая задача: Нужно чтобы при создании/редактировании ноды в группе workflows (или другой), среди checkbox'ов Make sticky, Promote и др. добавился checkbox Make hot, при этом заголовок ноды на главной странице с отмеченным Make hot, выделялся размером/цветом шрифта, т.е. чтобы у заголовка был класс или айди, отличный от других, чтобы я его мог сделать каким хочу.

При этом sticky не подходит, т.к. ноды должны следовать своим естественным порядком, сами ноды являют собой отдельный тип материала, без body, только title и поля cck, и на главной выводятся в виде тизеров.

Меня полностью устраивает существующий вывод/расположение/дизайн заголовков нод, не хватает выделения некоторых из них - чтобы они были "горячими", бросались в глаза.

вот как сейчас:

вот как хочу чтобы было (как вариант, главное чтобы был свой css класс а дальше дело за фантазией)

Комментарии

Аватар пользователя Ромка Ромка 23 февраля 2009 в 22:38

С помощью CCK добавь чекбокс и темизируй вывод заголовка в node.tpl.php своей тепы в зависимости от того установлен он или нет.

Аватар пользователя iryston iryston 24 февраля 2009 в 11:21

"Химический Али" wrote:
Или термин в таксономию.

А можно про это поподробнее. Или хотя бы подсказку, как нарыть такую информацию.

Аватар пользователя Химический Али Химический Али 24 февраля 2009 в 14:03

Да также, как и Ромка посоветовал Smile При наличии определенного термина, которым помечен материал, темизировать линк. А термин не отображать. Поройтесь в топиках о темизации на .орге - непременно найдете способы.

Я думаю, нужно будет лишь вставить 1-2 функции в template.php и чуток переписать node.tpl.php

А можно и не скрывать этот термин, а использовать, например, чтобы найти рекомендованные таким образом материалы.

Что-то вроде

foreach($node->taxonomy as $term_id=>$term_info) {
//тут мутим логику для исключения термина-метки
}

Аватар пользователя gruz gruz 15 декабря 2009 в 18:01

Всем спасибо за помощь, всё получилось, я пошел по первому пути (первый комент от Ромки), добавив еще одно поле CCK, хотя если-бы сделал как подсказал Химический Али с помощью таксономии, тогда можно было-бы сделать отдельный список/блок/страницу горячих новостей, но т.к. пока этого не требуется пошел по более простому пути.
Вот мои действия:
1. Идем в Content types выбираем нужный материал
2. Жмем добавить поле (Add field)
3. Выбираем тип поля (Field type), я выбрал Text - Check boxes/radio buttons, хотя можно было и Integer и др, у меня это не важно, главное чтобы были Check boxes/radio buttons, вводим имя, описание, опции, в значениях (Allowed values list) я ввел всего одно: "Make hot"
4. Теперь идем в node.tpl.php, и вставляем в нужном месте проверку вышеуказанного поля, и в зависимости от результата добавляем нужный код:
вот как было:

<h2 class="title">

вот как стало:

<h2 class="title<?php if ($teaser && $node->field_hot[0][value]) { print " hot_title"; } ?>">

так как мне нужно выделить заголовки только на главной, т.е. когда ноды - тизеры, отсюда и условие "if ($teaser" и собственно самое главное - это проверка созданного поля на наличие значения (в моем случае хоть какого-то) - "$node->field_hot[0][value]", если эти условия выполняются, то в класс title добавляется класс hot_title, который я в style.css разукрашиваю как хочу.

PS. Дальше больше, я добавил доп условия для подсвечивания "горячих" новостей разных тематик (горячая спорт новость - синим, горячая полит новость - красным и т.п.)
Также добавил страницу, где выводятся только "горячие" новости - создаем любой views - и в фильтр добавляем "Content: Make this = Make hot (field_hot Is one of Make hot)"