it-swarm-ko.tech

노출 된 필터 옵션을 어떻게 포맷합니까?

나는 이것이 쉬운 질문이라고 생각하지만, 몇 시간 동안 쿵쾅 거렸다.
아래 그림과 같이 노출 된 필터가있는 뷰를 사용하고 있습니다.

  • 키워드 검색
  • 도면 유형
  • 금형의 종류
  • 고객 이름

    screenshot

"고객 이름"및 "적용"버튼이 다음 줄에 래핑되는 한 줄에 모두 있습니다.
한 줄에 "키워드 검색"을 한 다음 다른 줄에 "도면 유형"+ "금형 유형"+ "고객 이름", 마지막 줄에 "적용"버튼을 만들려면 어떻게해야합니까?

6
Dreadstar

Drupal 7에 대한 뷰 3은 각 노출 된 위젯 DIV에 고유 한 이름을 가진 클래스를 친절하게 제공합니다. 그런 다음 명확한 속성과 부동 속성을 추가해야합니다.

Views 2를 사용하는 경우 views/theme 폴더의 views-exposed-form.tpl.php 파일을 재정의해야합니다. 이 코드를 테마 파일 경로의 views-exposed-form.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 views-widget-<?php print $id ?>">
        <?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>
5
Adam S

위의 코드를 테마 폴더에 템플릿 재정의로 저장 한 후 모든 양식 요소와 해당 "래퍼"DIV에 고유 한 id = ""속성을 갖도록 수정했습니다.

필자의 경우 동일한 뷰를 페이지에서 두 번 출력했습니다. 하나의 모바일 (필드 목록) 버전과 하나의 데스크탑 (테이블) (반응 형 웹 사이트 레이아웃 용). 원래 코드는 Web Accessibility Standards (Double A)를 통과하지 못했습니다-yaaawn !!

foreach ($widgets as $id => $widget):
  $id_attr = drupal_html_id($widget->id);
  ?>
  <div id="<?php print $id_attr; ?>-wrapper" class="views-exposed-widget views-widget-<?php print $id; ?>">
    <?php if (!empty($widget->label)): ?>
      <label for="<?php print $id_attr; ?>">
0
user20183