Показ тизеров в несколько колонок
Прислано: Gerasimovjazz@gmail.com
чт, 26/07/2007 - 09:04
Подскажите пажалста как мне организовать вывод тизеров с графическими файлами и несколькими полями так, как показано на приложенном рисунке.
- Gerasimovjazz@gmail.com's blog
- Для комментирования войдите или зарегистрируйтесь
модуль CCK + Views
хотя если поправить images то можно и им
- Для комментирования войдите или зарегистрируйтесь
а поконкретнее можно. я так и думал, что ответы будут носить такой характер. вы б ещё в handbook посоветовали заглянуть =)
- Для комментирования войдите или зарегистрируйтесь
можно вполне себе обойтись и без cck
нужно поставить views и views_bonus_pack модули.
http://drupal.org/project/views_bonus
Не понятно, почему хэндбуки вызывают такое неприятие. банальный поиск по друпал.орг дает несколько путей решения задачи нескольких колонок
- Для комментирования войдите или зарегистрируйтесь
хотя да.... без ССК наверное не обойтись
- Для комментирования войдите или зарегистрируйтесь
тут дело не в друпале - надо просто придумать какой-то хитрый нтмл шаблон - наверно на дивах
- Для комментирования войдите или зарегистрируйтесь
Да пробовал всё описанное на drupal.org (там всего один вариант решения — именно его и использовал). ССК для создания дополнительных полей я использую и так. Но вот как заставитьь эти несколько полей отображаться в несколько колонок ума приожить не могу... =)
- Для комментирования войдите или зарегистрируйтесь
Думаю надо делать темы для View результатов (сам еще не делал - буду поззже)
И результаты на дивах сделать...
- Для комментирования войдите или зарегистрируйтесь
Вот что у меня получилось. Вариант тестовый, так что без притензий :)
в template.php
<?php
function phptemplate_views_view_list_VIEWNAME($view, $nodes, $type) {
$fields = _views_get_fields();
$taken = array();
// Set up the fields in nicely named chunks.
foreach ($view->field as $id => $field) {
$field_name = $field['field'];
if (isset($taken[$field_name])) {
$field_name = $field['queryname'];
}
$taken[$field_name] = true;
$field_names[$id] = $field_name;
}
// Set up some variables that won't change.
$base_vars = array(
'view' => $view,
'view_type' => $type,
);
foreach ($nodes as $i => $node) {
$vars = $base_vars;
$vars['node'] = $node;
$vars['count'] = $i;
$vars['stripe'] = $i % 2 ? 'even' : 'odd';
foreach ($view->field as $id => $field) {
$name = $field_names[$id];
$vars[$name] = views_theme_field('views_handle_field', $field['queryname'], $fields, $field, $node, $view);
}
$output .= _phptemplate_callback('views-list-search_range', $vars);
}
if($output) {
$output = "<div id=\"products_container\">".$output."</div>";
return $output;
}
}
?>В views-list-VIEWNAME.tpl.php
<?php
<div id="product_holder">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2"><?php print $field_pictures_fid; ?><?php print $title;?><?php print $name; ?><?php print $field_price_value; ?>?>
ну и в CSS
div#product_holder { padding: 10px 10px 10px 10px; width:200px; float:left; }
- Для комментирования войдите или зарегистрируйтесь





Комментарии