День добрый.
Я создал свой тип контента с помощью CCK (добавил 5 полей: день, месяц, год, час, минута)
Создал view к этому типу контента
задал row style: node (материал).
Также я установил модуль image и позволил присоединять изображение к моему типу материала, а также к типу story.
В template.php моей темы немного переопредилил вывод присоединенных изображений к материалам задав 2 ф-ии:
<?php
function MYTHEME_image_attach_teaser($node) {...}
function MYTHEME_image_attach_body($node) {...}
?>
В этих ф-ях я добавил свой css класс к тегу
<?php
$class = 'image-attach-teaser' . ($image->status ? '' : ' image-unpublished');
$class .= ' image-attach-teaser-left';// в ф-ии MYTHEME_image_attach_teaser
$class = 'image-attach-teaser' . ($image->status ? '' : ' image-unpublished');
$class .= ' image-attach-body-left';// в ф-ии MYTHEME_image_attach_body
?>
В css стиле моей темы дописал
.image-attach-teaser-left {
padding:0px 7px 3px 0px;
float:left;
}
.image-attach-body-left {
padding:0px 7px 3px 0px;
float:left;
}
Картинка выводятся слева. Текст ее обрамляет. Все получилось как и задумывалось.
Но вот проблема когда выводяться материалы на главной, а также мой материал в виде тизеров
некоторые из иоих 5 полей (при условии что содержимого в тизере мало) как бы являются продолжением тизера (см. в аттаче)
Мне нужно чтобы поля даты выводились в отдельном контейнере с моим css классом у которого я бы задал стиль .myclass {clear:both;} т е ниже всего контента на отдельной строке. Но я ума не приложу как это можно сделать. пробовал создать файл в моей теме node-mytype.tpl.php но это не работает на главной. То же самое и в случае с views-view-fields--mytype.tpl.php (оба варианта работают только при просмотре ноды, но не в тизере на главной). Ума не приложу как это сделать.
Вложение | Размер |
---|---|
![]() | 30.87 КБ |
Комментарии
Решил проблему.
Если кому интересно решение то:
Создал node-mytype.tpl.php и в нем блок вывода контента
print $content;
?>
заменил на
<?php
<div class="content clear-block">
<?php
function _leadZero($num) {
if(strlen($num) <= 1) {
return "0".$num;
} else {
return $num;
}
}
print $node->content['image_attach']['#value'];
print $node->content['body']['#value'];
$day = _leadZero($node->content['field_day']['field']['items'][0]['#item']['value']);
$month = _leadZero($node->content['field_month']['field']['items'][0]['#item']['value']);
$year = $node->content['field_year']['field']['items'][0]['#item']['value'];
$hour = _leadZero($node->content['field_hour']['field']['items'][0]['#item']['value']);
$minute = _leadZero($node->content['field_minute']['field']['items'][0]['#item']['value']);
print '<div class="action-date">'."\r\n";
print '<b>Дата проведения </b>';
print $day."-".$month."-".$year." ".$hour.":".$minute;
print '</div>';
?>
</div>
?>
Странно то что вчера делал то же самое, но это НЕ РАБОТАЛО на главной а работало только при просмотре непосредственно ноды. Все таки странная вещь этот друпал.