Drupal 5 görüşleri modülünün HTML nasıl değiştirilir

4 Cevap php

Ben Drupal 5 kullanıyorum ve ben çıkışını değiştirmek istediğiniz manzaralı çok sayıda var ediyorum. Gösterim sihirbazını kullanarak, her örnek için farklı bir şablon oluşturabilir, ama ben bütün görünümleri karşısında aynı değişiklikleri yapmak isteyen ve bakım ve kodu bir sürü bir cehennem gibi temalar dizin dikişleri 30 dosyaları yaşıyorum. Aynı anda tüm görüşlerini ele ve daha sonra bir off için ne var şu anda kullanarak varsayılan bir yolu var ise herkes biliyor mu?

İşte şimdi ne var:

Gösterim-list-home_______articles_______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 içinde

/**
 * 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);
  }
}

Thanks,
Steve

4 Cevap

I think, sadece (daha belirli. Tpl.php dosyası mevcut olduğu sürece) "views-list.tpl.php" Liste-tarzı görünümleri için geçerli olacak adlı bir dosya oluşturarak.

Aksi takdirde, tema fonksiyonları kullanarak istediklerini elde etmek için bir yol olabilir.

Ben her şablon görünümün şablon içinde gider bir şeyden bahsediyoruz eğer, bağımsız güncellenmek zorunda inanıyoruz. Ben n görüşlerini sadece küçük bir bölümünü güncelleştirmek için bir yol bilmiyorum.

Eğer her görünüm için şablonun üzerinde koyuyorduk bir başlık varsa template.php veya node.tpl.php bir koşullu bir yardımcı fonksiyonu ile bunu yapmak mümkün olabilir. Bundan daha içerde Ama eğer, ben şans olduğuna inanıyorum.

Eğer gitmek istediği yere herhangi bir şans hook_form_alter () sizi alabilirim?

İzlenme 5, orada modüller öntanımlı olarak tpl dosyaları maruz için yolu yok, yani şablonu adı herhangi size yardımcı olmayacaktır. Anahtar template.php dosyasında, "phptemplate_views_view_list_home_articles_latest" koymak ediliyor fonksiyonudur. Bu 'home_articles_latest' adlı herhangi bir liste görünümü render yakalama bir PHP fonksiyonu bulunuyor. "Phptemplate_views_view": Eğer TÜM görüşlerini kesmek istedim, sadece işlevin kendisinin adını değiştirmek istiyorum

Her şeyi etkileyeceğini unutmayın - kenar çubuğu blokları manzaralı kurmak, RSS vb beslemeleri