it-swarm-ko.tech

검색 결과 페이지를 어떻게 사용자 정의합니까?

내 콘텐츠 유형의 티저보기 및 페이지보기를 사용자 정의했습니다. 이제 검색 결과 페이지에 티저보기를 사용해야합니다. 기본적으로 Drupal 각 결과에 대해 전체 텍스트 뒤죽박죽이 표시됩니다. 콘텐츠 유형별로 각 모양을 사용자 정의 할 수 있어야합니다. 변경하지 않으려면 drupal은 결과를 표시하는 방식 만 나타냅니다.).

39
J-Fiz

Theme_search_results () 또는 theme_search_result ()를 대체 할 수 있습니다.

첫 번째는 검색 결과 페이지에 대해 호출되는 테마 함수이고, 두 번째는 단일 결과를 렌더링하기 위해 호출되는 테마 함수입니다. 두 테마 기능 모두 첫 번째 경우 템플릿 파일 ( search-results.tpl.php 을 사용하고 두 번째 경우 search-result.tpl.php ).

search-result.tpl.php는 노드 유형을 포함하는 Drupal 6에서 $info_split['type']를 사용합니다. 최신 Drupal 7 버전, $info_split['type']는 더 이상 전달되지 않지만 search-result.tpl.php는 노드에 대한 검색이 수행되는 경우 여전히 $result['node']를 얻습니다. $result['node']->type는 다음의 컨텐츠 유형입니다. 노드.

Drupal 7, 이상에서는 모듈이 hook_search_page () 를 구현할 수 있지만 검색과 통합되는 모듈에서 사용되는 후크입니다. 다른 모듈이 리턴 한 결과에 대한 결과 페이지를 변경하려는 모듈이 아닌 모듈.
또한 Drupal 7에서 각 테마 함수는 전처리 함수를 사용합니다.이 경우 hook_preprocess_search_results ()hook_preprocess_search_result () . 템플릿 파일에 전달 된 값을 편집해야하는 경우에 유용합니다.

28
kiamlaluno

Drupal 7에서 ...

... 결과에 표시된 정보를 수정합니다.

그리고 당신은 ...

... 결과의 마크 업을 사용자 정의합니다.

콘텐츠 유형의 티저를 검색 결과로 사용하는 방법의 예입니다. 다음 스 니펫은 테마의 template.php에 들어갑니다.

/**
 * Implements template_preprocess_search_result
 * @param type $vars
 */
function MYTHEME_preprocess_search_result(&$vars) {
  $node = $vars['result']['node'];
  if ($node->nid) { // if the result is a node we can load the teaser
    $vars['teaser'] = node_view($node, 'teaser'); 
  }
}

이 스 니펫은 search-result.tpl.php 파일입니다.

<article>
  <?php if ($teaser) : // for nodes we can use the teaser as search result ?>
    <?php print drupal_render($teaser); ?>
  <?php else : // for other results we use the default from core search module ?>  
    <?php print render($title_prefix); ?>
    <h3><a href="<?php print $url; ?>"><?php print $title; ?></a></h3>
    <?php print render($title_suffix); ?>
    <?php if ($snippet) : ?>
      <p><?php print $snippet; ?></p>
    <?php endif; ?>
  <?php endif; ?>
  <?php if ($info): ?>
    <footer><?php print $info; ?></footer>
  <?php endif; ?>
</article>
18
batigolix

최근에 Drupal 7 아키텍처 웹 사이트에서 검색 결과를 다루는 데 많은 시간을 보냈으며 Display Suite 모듈을 사용하여 정착했습니다.

Display Suite 모듈에는 검색 결과를 제어 할 수있는 훌륭한 방법이 있습니다. 검색 결과에서 티저를 쉽게 사용할 수 있습니다. 이것은 튜토리얼입니다 모듈의 관리자가 검색 결과에 사용하는 데 집중합니다.

항상 Drupal과 마찬가지로 동일한 작업을 수행하는 다양한 방법이 있습니다. 콘텐츠 형식별로 결과를 나눌 수 있기 때문에이 방법이 마음에 들었습니다.

9
woop