it-swarm-eu.dev

Přizpůsobení první položky v pohledu

Jako blok na mé domovské stránce se snažím vydat:

<ul>
  <li><a><img><p>Node 1</p></a></li>
  <li><a>Node 2</a></li>
  <li><a>Node 3</a></li>
  <li><a>Node 4</a></li>
</ul>

kde každý <li> představuje uzel a obraz/text dodávaný poli CCK připojenými ke každému uzlu.

V současné době používám blokové zobrazení k výstupu uzlů 2-4 a zobrazení přílohy k představení prvního uzlu, jak je uvedeno zde: http://www.agileapproach.com/blog-entry/the-views2 -attachment-display

Problém je, že můj výstup skončí spíše takto:

<div class="attachment attachment-before">
  <div class="view view-homepage-news ..">
    <div class="item-list">
      <ul>
        <li class="views-row ...">  
          <a><img><p>Node 1</p></a>            
        </li>
      </ul>
    </div>  
  </div> <!-- /.view -->
</div>
<div class="item-list">
  <ul>
    <li class="views-row ..."><a>Node 2</a></li>
    <li class="views-row ..."><a>Node 3</a></li>
    <li class="views-row ..."><a>Node 4</a></li>
  </ul>
</div>

Pravděpodobně mohu ohnout, že výstup bude vyhovovat mému účelu, ale bude to zahrnovat hodně templingu a konfigurace. Chtěl bych se také vyhnout použití CSS a/nebo JavaScript k úpravě výstupu, pokud to není moje jediná možnost.

Jaký je tedy nejjednodušší způsob, jak přiblížit výstup tomu, co potřebuji?

Upravit: zde je nějaký hrubý php kód, který používám v poli php code customfield (na základě návrhu Jeremyho Frencha: Zde je kód, který používám v mém PHP customfieldu kódu:

<?php
  ++$static;
  if ($static == 1) {
    $nd=node_load($data->nid);
    $img_path = imagecache_create_path('news_image_thumbnail', $nd->field_image[0]['filepath']);
    print '<a><img src="' . $img_path . '"><p>Node 1</p></a>';
  } else {
    print "<a>Node $static</a>";
  }
?>
8
Daniel Nitsche

Mohli byste něco udělat s views_customfield .

Přidáte pole php, dostanete ho pouze pro zobrazení požadované značky (bez prvků) a na výstup hodnoty pouze pro číslo řádku 1.

5
Jeremy French

Osobně k tomu používám funkce předzpracování, například následující:

function HOOK_preprocess_views_view_fields(&$vars) {
  if ($vars['view']->name == 'VIEW_NAME' && $vars['view']->row_index == 1) {
    // Do stuff here.
  }
}
8
Decipher

Nejsem si jistý, zda správně rozumím vaší otázce, ale věřím, že byste k tomu mohli použít modul sémantické pohledy . Pokud nastavíte styl v části Základní nastavení na sémantická zobrazení, budete mít v nastavení sémantických pohledů možnost nastavit „atribut první třídy“, který vám pomůže zacílit na první položku seznamu ve vašem pohledu ve stylu motivu. css soubor.

6
Jay

Nejjednodušší řešení je s vlastní šablonou. To však nemusí být spousta práce. S informacemi o tematických okruzích dostupných v rozhraní zobrazení můžete vidět, jakou šablonu je třeba změnit. Vše, co musíte udělat, je přidat nějaký kód pro tisk dalších položek pro první uzel. Názory budou procházet každým řádkem, takže by mělo být snadné.

4
googletorp