Arayabileceğiniz bir Drupal birden çok kez şablon hit?

2 Cevap php

Ben çıktı bir şablon Görüntüleme Temalama Sihirbazı kullandım ve template.php gitmek bana kod aşağıdaki yığın verdi.

Ben sadece bu yüzden tüm fonksiyonları bir arada dize işlev adları için bir yol olup olmadığını merak ediyorum, aynı birini çağırarak, ve yerine aynı işlevi çok sayıda sürümlerini yazılı olacak, tek bir şablon korumak için tercih ediyorum? Gibi bir şey:

function phptemplate_views_view_list_recent_articles($view, $nodes, $type),
phptemplate_views_view_list_popular_articles($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-first-with-abstract', $vars);
  }
  if ($items) {
    return theme('item_list', $items);
  }
}

Thanks,
Steve

2 Cevap

Sen sadece gerçek işlevinin bir sürümünü aramak gerekir şablonları olabilir.

Gibi bir şey:

function phptemplate_views_view_list_recent_articles($view, $nodes, $type){
          actual_template_function($view, $nodes, $type);
}

function phptemplate_views_view_list_popular_articles($view, $nodes, $type){
          actual_template_function($view, $nodes, $type);
}

Yukarıda Bir düzeltme 1/2 saat ... dönüşü içerecek şekilde ihtiyaç için beni yavaşladı:

return actual_template_function($view, $nodes, $type);

Bunun dışında, harika çalışıyor.