Модуль views_viewtype_my - 10 своих видов во views

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

Аватар пользователя Dimm Dimm 26 ноября 2007 в 19:52

views_viewtype_my v0.01

Добавляет 10 дополнительных видов к модулю views
Отображение видов необходимо определить в template.php

Переопределите функцию
function theme_views_viewtype_my_display($view, $nodes, $type, $teasers = FALSE, $links = TRUE)
как Вам нужно в вашем template.php

PS за основу взят хороший модуль views_tabs

ВложениеРазмер
Иконка пакета views_viewtype_my.zip7.71 КБ

Комментарии

Аватар пользователя Dimm Dimm 1 июля 2008 в 21:18
function theme_viewtype_my_display($view, $nodes, $type, $teasers = FALSE, $links = TRUE) {
  $fields = _views_get_fields();
$content ='';
  foreach ($nodes as $node) {
    switch ($view->type) {
      case 'viewtype_my_1':
      $node = node_load($node->nid);
      $content .=  node_view($node, true, 'my_node_view_1', false);
        break;
      case 'viewtype_my_2':
              $node = node_load($node->nid);
          $content .=  node_view($node, true, 'my_node_view_2', false);
      break;
      case 'viewtype_my_3':
                return views_theme('views_view_nodes', $view, $nodes, $type, false, false);
      break;
      case 'viewtype_my_4':
                return views_theme('views_view_nodes', $view, $nodes, $type, false, false);
      break;
      case 'viewtype_my_5':
                return views_theme('views_view_nodes', $view, $nodes, $type, false, false);
      break;
      case 'viewtype_my_6':
                return views_theme('views_view_nodes', $view, $nodes, $type, false, false);
      break;
      case 'viewtype_my_7':
                return views_theme('views_view_nodes', $view, $nodes, $type, false, false);
      break;
      case 'viewtype_my_8':
                return views_theme('views_view_nodes', $view, $nodes, $type, false, false);
      break;
      case 'viewtype_my_9':
                return views_theme('views_view_nodes', $view, $nodes, $type, false, false);
      break;
      case 'viewtype_my_10':
                return views_theme('views_view_nodes', $view, $nodes, $type, false, false);
      break;
      case 'viewtype_my_teaser':
                return views_theme('views_view_nodes', $view, $nodes, $type, false, false);
      break;
      case 'viewtype_my_node':
            return views_theme('views_view_nodes', $view, $nodes, $type, true, false);
      break;
    }
  }//foreach
        return $content;
}
Аватар пользователя yasik yasik 27 апреля 2009 в 10:58

Дмитрий, Вы могли сказать что я делаю неправильно.
Мне надо чтобы был views который выводил по шаблону отличный от тизера вид
1. я в template.php вставляю эту функцию

<?phpfunction theme_viewtype_my_display($view, $nodes, $type, $teasers = FALSE, $links = TRUE) {
  $fields = _views_get_fields();
$content ='';
  foreach ($nodes as $node) {
    switch ($view->type) {
      case 'viewtype_my_1':
      $node = node_load($node->nid);
      $content .=  node_view($node, true, 'my_node_view_1', false);
        break;.... ?>

только полную версию
2.включаю через админку модуль views_viewtype_my
3.выбираю viewtype_my_1
4.во views в поля вставляю поле тело документа (аннотация)
5. далее у моего типа материала
есть такой шаблон

5.node-prodag_kvartir.tpl.php

<?php <div class="<?php print $node_classes; ?>">
 <
div class="content clear-block clear"><?php print $content?>
      <div class="field-field-price-ob"><?php print "Цена: "$node->field_price_ob[0]['view']?></div>
      <?php if ($page == 0){?>
          <?php if ($node->field_vid00[0]['filepath']==null){?>
             <div class="multimage-teaser" > <img src = "/files/netufoto.gif" ></div>
          <?php }; ?>
           <div class="multimage-teaser"> <?php print $node->field_vid00[0]['view'];?></div>
       <div><?php print "Этаж: ".$node->field_etag0[0]['view'?></div>
       <div><?php print "Этажей: ".$node->field_etagnost[0]['view']?></div>
       <div><?php print "Количество комнат: ".$node->field_kolvokomnat0[0]['view'] .$node->field_raspolog_komnat[0]['view'?></div>
       <div><?php print "Площадь ".$node->field_pl_obshaya0[0]['value']."/".$node->field_field_pl_gilaya0[0]['value']."/".$node->field_pl_kuhnya0[0]['value']." m²"?></div>
       <div class="nedvigimost .field-field-price-ob"><?php print "Цена: "$node->field_price_ob[0]['view']?></div>
       Код:  <?php print $title?> <a href="<?php print $node_url?>"><?php print подробнее ?></a>
         </div> <?php }; ?>
<strong><?php elseif($page!=&& $page=='my_node_view_1'){?>
       <div class="nedvigimost .field-field-price-ob"><?php print "Цена: ".   $node->field_price_ob[0]['view']?></div>
<?php}?> </strong>

         <div><span class="broker_name">Брокер:   <?php print l($node->name"user/"$node->uid);?></span></div>
 </div>     ?>

вставляю в него выделенный фрагмент т.е. должен быть список цен по факту выводится термины таксаномии более того перстаёт работать полный вид.
Что делаю не так ?

Аватар пользователя Dimm Dimm 27 апреля 2009 в 20:24

Попробуйте вставить в template.php этот код:

<?php
function theme_views_viewtype_my_display($view$nodes$type$teasers FALSE$links TRUE) {
  
$fields _views_get_fields();

  foreach (

$nodes as $node) {

    switch (

$view->type) {
      case 
'viewtype_my_1':
        return 
views_theme('views_view_nodes'$view$nodes$typefalsefalse);
        break;

      case 

'viewtype_my_2':
        return 
views_theme('views_view_nodes'$view$nodes$typefalsefalse);
      break;
      case 
'viewtype_my_3':
        return 
views_theme('views_view_nodes'$view$nodes$typefalsefalse);
      break;
      case 
'viewtype_my_4':
        return 
views_theme('views_view_nodes'$view$nodes$typefalsefalse);
      break;
      case 
'viewtype_my_5':
        return 
views_theme('views_view_nodes'$view$nodes$typefalsefalse);
      break;
      case 
'viewtype_my_6':
        return 
views_theme('views_view_nodes'$view$nodes$typefalsefalse);
      break;
      case 
'viewtype_my_7':
        return 
views_theme('views_view_nodes'$view$nodes$typefalsefalse);
      break;
      case 
'viewtype_my_8':
        return 
views_theme('views_view_nodes'$view$nodes$typefalsefalse);
      break;
      case 
'viewtype_my_9':
        return 
views_theme('views_view_nodes'$view$nodes$typefalsefalse);
      break;
      case 
'viewtype_my_10':
        return 
views_theme('views_view_nodes'$view$nodes$typefalsefalse);
      break;
      case 
'viewtype_my_teaser':
        return 
views_theme('views_view_nodes'$view$nodes$typefalsefalse);
      break;
      case 
'viewtype_my_node':
        return 
views_theme('views_view_nodes'$view$nodes$typetruefalse);
        break;
    }
  }
//foreach

    

return $content;
}
?>

а в node-prodag_kvartir.tpl.php
пропишите как будет отображаться нода при page==1
<?php if ($page == 0){?>
...
<?php elseif($page!=1 && $page=='my_node_view_1'){?>
...
<?php else {?>
вот здесь

Аватар пользователя milledi milledi 10 июня 2009 в 10:36

Здравствуйте, Dimm.
У меня есть проблема в оформлении блока и страницы, созданной во вьюс. Создала тему http://www.drupal.ru/node/30370.
Скажите, пожалуйста, ваш модуль может решить мою проблему?

P.S. Пробовала ставить модуль, но ничего не вышло(скорее всего не так что-то делаю).