답변:
노드 전처리 기능에 테마 후크 제안을 추가하면 트릭을 수행해야합니다.
function MYMODULE_preprocess_node(&$vars) {
if ($vars['node']->type == 'article' && $vars['view_mode'] == 'search_result') {
$vars['theme_hook_suggestions'][] = 'node__article__search_result';
}
}
캐시를 지우고 나면 템플릿 파일 이름으로 node--article--search-result.tpl.php를 사용할 수 있습니다.
NB. MYTHEME_preprocess_node()
대신 함수 를 호출하여 테마의 template.php 파일 에서이 작업을 수행 할 수도 있습니다 .
search_result
이미보기 모드로 선언되어 있으므로 hook_entity_info_alter()
귀하의 경우에는 구현할 필요가 없습니다
다음은 새 기능을 동적으로 추가 할 수있는 기능입니다. 선언 된 해당 전처리 함수도 호출합니다.
그런 다음 전화 drush cache-clear theme-registry
를 걸어 작동 시키십시오.
사용하려면 테마를 테마 이름으로 바꾸고 테마 template.php 파일에 넣으십시오.
예를 들어 Droid라는 테마의 경우이를 호출합니다 droid_preprocess_node(&$variables, $hook) {
...
function THEME_preprocess_node(&$variables, $hook) {
$view_mode = $variables['view_mode'];
$content_type = $variables['type'];
$variables['theme_hook_suggestions'][] = 'node__' . $view_mode;
$variables['theme_hook_suggestions'][] = 'node__' . $view_mode . '_' . $content_type;
$view_mode_preprocess = 'THEME_preprocess_node_' . $view_mode . '_' . $content_type;
if (function_exists($view_mode_preprocess)) {
$view_mode_preprocess($variables, $hook);
}
$view_mode_preprocess = 'THEME_preprocess_node_' . $view_mode;
if (function_exists($view_mode_preprocess)) {
$view_mode_preprocess($variables, $hook);
}
}