如何在视图中主题公开过滤器项目 - drupal 6

时间:2011-04-26 19:03:35

标签: drupal-6 views drupal-views

我试图在我创建的视图上为一组特定的公开过滤器添加一些样式。

该视图被称为user_search,因此我创建了views-exposed-form - user-search.tpl.php并且不起作用(它所做的只是删除暴露的过滤器但仍显示视图)。 views-exposed-form - user-search - page.tpl.php也得到了相同的结果。

即使它确实有效,我仍然不知道要放在哪里以显示表单,这样我就可以添加样式或容器div。

print drupal_render($form);无效。

2 个答案:

答案 0 :(得分:8)

经过大量挖掘后我找到了解决方案。

首先,您必须找到views-exposed-form.tpl.php文件,该文件应位于sites/all/modules/views/theme/文件夹中。我们正在使用acquia堆栈,因此它位于vendor/文件夹中。

将其复制到themes/YOUR-THEME/文件夹并将其重命名为views-exposed-form--your-view-name.tpl.php

如果您只想实现视图的特定显示,请将其命名为views-exposed-form--your-view-name--display.tpl.php

然后,您可以使用现有框架根据​​需要对其进行编辑。这是一个例子。

<?php
// $Id: views-exposed-form.tpl.php,v 1.4.4.1 2009/11/18 20:37:58 merlinofchaos Exp $
/**
 * @file views-exposed-form.tpl.php
 *
 * This template handles the layout of the views exposed filter form.
 *
 * Variables available:
 * - $widgets: An array of exposed form widgets. Each widget contains:
 * - $widget->label: The visible label to print. May be optional.
 * - $widget->operator: The operator for the widget. May be optional.
 * - $widget->widget: The widget itself.
 * - $button: The submit button for the form.
 *
 * @ingroup views_templates
 */
?>
<?php if (!empty($q)): ?>
  <?php
    // This ensures that, if clean URLs are off, the 'q' is added first so that
    // it shows up first in the URL.
    print $q;
  ?>
<?php endif; ?>
<div class="views-exposed-form">
  <div class="views-exposed-widgets clear-block">
    <?php foreach($widgets as $id => $widget): ?>
      <div class="views-exposed-widget">
        <?php if (!empty($widget->label)): ?>
          <label for="<?php print $widget->id; ?>">
            <?php print $widget->label; ?>
          </label>
        <?php endif; ?>
        <?php if (!empty($widget->operator)): ?>
          <div class="views-operator">
            <?php print $widget->operator; ?>
          </div>
        <?php endif; ?>
        <div class="views-widget">
          <?php print $widget->widget; ?>
        </div>
      </div>
    <?php endforeach; ?>
    <div class="views-exposed-widget">
      <?php print $button ?>
    </div>
  </div>
</div>

答案 1 :(得分:1)

如果对如何设置网页的某个部分有疑问,请安装Theme Developer module。它将允许您查看当前正在输出页面特定区域的主题文件或函数,以及可以使用哪些文件或函数来覆盖它。有关更多详细信息,请参阅screencast