2008-11-19 3 views
1

Я использую Drupal 5 и имею множество представлений, которые я хочу изменить. Используя мастер просмотра, я могу создать другой шаблон для каждого экземпляра, но я хочу сделать те же самые изменения во всех своих представлениях и иметь 30 файлов в швах каталога тем, как чертовски много обслуживания и кода. Кто-нибудь знает, есть ли способ по умолчанию для одновременного обращения ко всем представлениям, а затем используя то, что у меня есть в настоящее время для одного выхода?Как изменить HTML-код модуля просмотра drupal 5

Вот что я сейчас:

просмотры список-дом _______ _______ статьи latest.tpl.php

<?php 
/** 
* views template to output one 'row' of a view. 
* This code was generated by the views theming wizard 
* Date: November 17, 2008 - 2:07pm 
* View: home_articles_latest 
* 
* Variables available: 
* $view -- the entire view object. Important parts of this object are 
* home_articles_latest, . 
* $view_type -- The type of the view. Probably 'page' or 'block' but could 
* also be 'embed' or other string passed in from a custom view creator. 
* $node -- the raw data. This is not a real node object, but will contain 
* the nid as well as other support fields that might be necessary. 
* $count -- the current row in the view (not TOTAL but for this page) starting 
* from 0. 
* $stripe -- 'odd' or 'even', alternating. * $title -- Display the title of the node. 
* $title_label -- The assigned label for $title 
* $comment_count -- This will display the comment count. 
* $comment_count_label -- The assigned label for $comment_count 
* $field_abstract_value -- 
* $field_abstract_value_label -- The assigned label for $field_abstract_value 
* 
* This function goes in your views-list-home_articles_latest.tpl.php file 
*/ 


//now we add the stylesheet... 
//drupal_add_css(path_to_theme() .'/views-list-home_articles_latest.css'); 

    ?> 
    <?php print $view ?> 
<div class="view-label view-field-title"> 
    <?php print $title_label ?> 
</div> 
<div class="view-field view-data-title"> 
    <?php print $title?> 
</div> 

<?php if ($comment_count != '0' && $view_type == 'block'): ?> 
<div class="view-label view-field-comment-count"> 
    <?php print $comment_count_label ?> 
</div> 
<div class="view-field view-data-comment-count"> 
    <?php print $add?><?php print $comment_count?> 
</div> 
<?php endif; ?> 

<?php if ($count == 0): ?> 
<div class="view-label view-field-field-abstract-value"> 
    <?php print $field_abstract_value_label ?> 
</div> 
<div class="view-field view-data-field-abstract-value"> 
    <?php print $field_abstract_value?> 
</div> 
<?php endif; ?> 

в template.php

/** 
* views template to output a view. 
* This code was generated by the views theming wizard 
* Date: November 17, 2008 - 2:07pm 
* View: home_articles_latest 
* 
* This function goes in your template.php file 
*/ 
function phptemplate_views_view_list_home_articles_latest($view, $nodes, $type) { 
    $fields = _views_get_fields(); 

    $taken = array(); 

    // Set up the fields in nicely named chunks. 
    foreach ($view->field as $id => $field) { 
    $field_name = $field['field']; 
    if (isset($taken[$field_name])) { 
     $field_name = $field['queryname']; 
    } 
    $taken[$field_name] = true; 
    $field_names[$id] = $field_name; 
    } 

    // Set up some variables that won't change. 
    $base_vars = array(
    'view' => $view, 
    'view_type' => $type, 
); 

    foreach ($nodes as $i => $node) { 
    $vars = $base_vars; 
    $vars['node'] = $node; 
    $vars['count'] = $i; 
    $vars['stripe'] = $i % 2 ? 'even' : 'odd'; 
    foreach ($view->field as $id => $field) { 
     $name = $field_names[$id]; 
     $vars[$name] = views_theme_field('views_handle_field', $field['queryname'], $fields, $field, $node, $view); 
     if (isset($field['label'])) { 
     $vars[$name . '_label'] = $field['label']; 
     } 
    } 
    $items[] = _phptemplate_callback('views-list-home_articles_latest', $vars); 
    } 
    if ($items) { 
    return theme('item_list', $items); 
    } 
} 

Спасибо,
Стив

ответ

0

Я считаю, что каждый шаблон должен обновляться независимо, если вы говорите о чем-то, что происходит внутри шаблона представления. Я не знаю, как обновить только одну небольшую часть n просмотров.

Если у вас есть заголовок, который вы помещаете над шаблоном для каждого вида, вы можете сделать это со вспомогательной функцией в template.php или условным в node.tpl.php. Но если это будет дальше внутри, я считаю, что вам не повезло.

2

I думаю просто создание файла с именем «views-list.tpl.php» применимо ко всем представлениям в стиле списка (если не указан более конкретный файл .tpl.php).

В противном случае может быть способ получить то, что вы хотите, используя функции темы.

0

В представлениях 5 нет возможности, чтобы модули отображали файлы tpl по умолчанию, поэтому имя шаблона не поможет вам. Ключ - это функция, которая помещается в ваш файл template.php, «phptemplate_views_view_list_home_articles_latest». Это функция PHP, перехватывающая рендеринг любого вида списка с именем «home_articles_latest». Если вы хотите, чтобы он перехватывал ВСЕ виды, вы просто изменили имя самой функции на: «phptemplate_views_view»

Помните, что это повлияет на все: сборка блоков боковой панели с видами, RSS-каналами и т. Д.

 Смежные вопросы

  • Нет связанных вопросов^_^