Темизация views-view-field.tpl.php

Главные вкладки

Аватар пользователя Zen Zen 27 мая 2009 в 22:52

Как можно темизировать шаблон views-view-field.tpl.php

<?php
// $Id: views-view-field.tpl.php,v 1.1 2008/05/16 22:22:32 merlinofchaos Exp $
 /**
  * This template is used to print a single field in a view. It is not
  * actually used in default Views, as this is registered as a theme
  * function which has better performance. For single overrides, the
  * template is perfectly okay.
  *
  * Variables available:
  * - $view: The view object
  * - $field: The field handler object that can process the input
  * - $row: The raw SQL result that can be used
  * - $output: The processed output that will normally be used.
  *
  * When fetching output from the $row, this construct should be used:
  * $data = $row->{$field->field_alias}
  *
  * The above will guarantee that you'll always get the correct data,
  * regardless of any changes in the aliasing that might happen if
  * the view is modified.
  */
?>
<?php 
print $output?>

что бы на выходе получалось не так:

<div class="views-field-field-photo-fid">
<span class="field-content">
<a class="imagecache imagecache-preview imagecache-linked imagecache-preview_linked" href="/nobilia/sprint_728.html">
<img height="191" width="270" title="" alt="" src="/sites/default/files/imagecache/preview/0211_Sprint728_11133_08_0.jpg"/>
</a>
</span>
</div>

а так:

<a class="imagecache imagecache-preview imagecache-linked imagecache-preview_linked" href="/nobilia/sprint_728.html">
<img height="191" width="270" title="" alt="" src="/sites/default/files/imagecache/preview/0211_Sprint728_11133_08_0.jpg"/>
</a>

Комментарии

Аватар пользователя Обухов Никита Обухов Никита 28 мая 2009 в 6:24

Оно там печатается примерно так:

  <?php if (!empty($field->separator)): ?>
    <?php print $field->separator?>
  <?php endif; ?>

  <<?php print $field->inline_html;?> class="views-field-<?php print $field->class?>">
    <?php if ($field->label): ?>
      <label class="views-label-<?php print $field->class?>">
        <?php print $field->label?>:
      </label>
    <?php endif; ?>
      <?php
      
// $field->element_type is either SPAN or DIV depending upon whether or not
      // the field is a 'block' element type or 'inline' element type.
      
?>
      <<?php print $field->element_type?> class="field-content"><?php print $field->content?></<?php print $field->element_type?>>
  </<?php print $field->inline_html;?>>?>

Попробуйте убрать лишнее и вставить это вместо $output

Аватар пользователя Zen Zen 7 июня 2009 в 20:33

вставлял <?php print $output; ?> и <?php print $field->content; ?> в файл views-view-field.tpl.php вместо содержимого по умолчанию, на странице в итоге вообще ничего не выводится - пусто

Аватар пользователя Nikolas Nikolas 15 июня 2010 в 23:10

Ребята! читайте мануал внимательнее - div и span цепляются в файле views-view-fields.tpl.php
Чтобы убрать их - достаточно использовать для каждого поля:
<?php print $fields['some_id']->content?>

Аватар пользователя fgvlasov fgvlasov 20 ноября 2012 в 13:24

Ребята, если надо оперировать разными полями, созданными во вьюс, то руководствуюясь справкой указанной в самом верху, отдельные поля можно воводить следующим образом:
значала посмотрите их список
<?php print_r($row); ?>
ну а дальше обращайтесь к ним через конструкцию
<?php print $row->node_data_field_obj_page_field_obj_link_value; ?>

Аватар пользователя iShvedkov iShvedkov 10 июня 2013 в 17:14

Ребят, темизирую views-view-fields.tpl.php и никак не могу понять как мне достать ссылку на ноду
На данный момент использую конструкцию
<?php print file_create_url('node/'.$row->_field_data['nid']['entity']->nid);?>
Но тут ссылка вида site.ru/node/3
А я хочу site.ru/moya-stranica
Как такое чудо сотворить?