Долго мучился с раположением полей фильтра и решил написать краткую статью, вдруг кому пригодится. Итак:
Сначала предопределяем функцию вывода полей, для этого в файл template.php в папке вашей темы (если нет такого - создайте сами)
добавляем следующую функцию
<?php
function phptemplate_views_filters($form) { //Предопределяет функцию из views.module для всех видов
$view = $form['view']['#value'];
if ($view->name == 'apartment'){ // Поскольку функция предопределяется для всех видов, нужно выделить конкретный, в моем случае это 'apartment'
foreach ($view->exposed_filter as $count => $expose) {
$row[] = drupal_render($form["op$count"]) ;
$box[] = drupal_render($form["filter$count"]);
$label[] = $expose['label'];
}
$row[] = drupal_render($form['submit']);
$label[] = ''; // so the column count is the same.
$title = $view->page_title;
return _phptemplate_callback('views-filters-apartment', array('title' => $title, 'row' => $row, 'box' => $box, 'label'=>$label));
// вывод отдается шаблону под названием views-filters-apartment.tpl.php
}
else{ // если вид не наш, то выполняется оригинальный кусок из views.module
foreach ($view->exposed_filter as $count => $expose) {
$row[] = drupal_render($form["op$count"]) . drupal_render($form["filter$count"]);
$label[] = $expose['label'];
}
$row[] = drupal_render($form['submit']);
$label[] = ''; // so the column count is the same.
// make the 'q' come first
return drupal_render($form['q']) . theme('table', $label, array($row)) . drupal_render($form);
}
}?>
Далее создаем views-filters-apartment.tpl.php
В нем используются следующие переменные:
$label - массив заголовков полей;
$box - массив элементов формы, типа input,select,text
$row - так и не понял для чего, главная фишка, что последний элемент в массиве - это кнопка Submit
<tr>
<td><?php echo $label[0] . ' '; //хотел поставить двоеточия, потом убрал, кавычки оставил ?></td>
<td><?php echo $label[1] . ' '; ?></td>
<td><?php echo $label[2] . ' '; ?></td>
<td><?php echo $label[3] . ' '; ?></td>
<td><?php echo $label[4] . ' '; ?></td>
</tr>
<tr>
<td><?php echo $box[0]; ?></td>
<td><?php echo $box[1]; ?></td>
<td><?php echo $box[2]; ?></td>
<td><?php echo $box[3]; ?></td>
<td><?php echo $box[4]; ?></td>
</tr>
</table>
<table border="0" cellpadding="5" class="apart">
<tr>
<td><?php echo $label[5] . ' '; ?></td>
<td><?php echo $label[6] . ' '; ?></td>
<td><?php echo $label[7] . ' '; ?></td>
<td><?php echo $label[8] . ' '; ?></td>
<td><?php echo $label[9] . ' '; ?></td>
</tr>
<tr>
<td><?php echo $box[5]; ?></td>
<td><?php echo $box[6]; ?></td>
<td><?php echo $box[7]; ?></td>
<td><?php echo $box[8]; ?></td>
<td><?php echo $box[9]; ?></td>
</tr>
</table>
<?php
echo $row[10]; //Последний элемент типа $row - кнопка отправить
?>
Можно глянуть на www.chelrealtor.ru/apartment
Комментарии
В тему - http://drupal.org/node/79302
Имя файла в примере состоит из "views-filters-" название вида ".tpl.php"
Спасибо
ОГРОМНЕЙШЕЕ спасибо, если бы не эта статья не известно скока бы сидел мучался!!! респект автору.