Views theming tpl-ben megvan, de jó lenne preprocess

szantog képe

Van egy tartalomtípusom, aminek a megjelenését teljesen szétszabdaltam views + quicktabs + panel megoldásokra. Eddig minden szépen megy, a kommentekkel vagyok kicsit viharban.

1. Sikerült összehoznom tpl-ben, hogy a komment formot beszúrom.
Nos, a korábbi instrukcióitok alapján szeretném "szépen" csinálni. Milyen preprocessbe kell ezt betennem, hogy ne a tpl-ben legyen ez a kód?

// Innen kezdődik a komment form, URL-ből kiszedjük a node id-t.
if (arg(0) == 'node' && is_numeric(arg(1))) $nodeid = arg(1);

Megoldás V 1.1: A nézet lekérdezésébe beletettem, hogy "Tartalom: Nid". Ha megvesztem, sem tudtam erre a mezőre hivatkozni bármilyen $row, $field dolgokkal próbálkoztam.

2. Ha nincs hozzászólás, nem jelenik meg sem a header, sem a footer a viewsnak, és mivel a form sem, ezért nyilván a tpl-t sem veszi észre ilyenkor. Viewsnél van "Display even if view has no result", de semmi hatása. Elképzelhető, hogy a panel kavar be? Hogyan tudnám elérni, hogyha nincs a views lekérdezésnek eredménye, akkor is betöltődjön a views?

Drupal verzió: 
Pasqualle képe

Sikerült összehoznom tpl-ben

jo, de melyikben? minden view-hoz legalabb 3 alap tpl letezik..

A nézet lekérdezésébe beletettem, hogy "Tartalom: Nid". Ha megvesztem, sem tudtam erre a mezőre hivatkozni bármilyen $row, $field dolgokkal

kellene tudni a tpl-ed nevet es a field nevet. A field nevet ugy tudod megtudni, hogy az egerkurzort a field fole helyezed es kiolvasod a bongeszod statusz sorabol, pl:
admin/build/views/nojs/config-item/view_name/page_1/field/nid

Viewsnél van "Display even if view has no result", de semmi hatása.

ez az opcio csak a view header es footer reszenek van es csak arra ervenyes..

Hogyan tudnám elérni, hogyha nincs a views lekérdezésnek eredménye, akkor is betöltődjön a views?

a view mindig betoltodik.. irj valamit a views-view--VIEW_NAME.tpl.php fajlba es meglatod..
ha nem tevedek, akkor az ehhez a tpl.php fajlhoz tartozo preprocess fuggveny:

function THEME_NAME_preprocess_views_view(&$vars) {
0
0
szantog képe

views-view--kommentek.tpl.php a $row-t írja elérhetőnek
irj valamit a views-view--VIEW_NAME.tpl.php fajlba es meglatod..

Így csináltam, nem jelent meg. Szerintem Panel3 bug lehet. Akármit írtam a header/footer részbe, az sem jelent meg.

field/nid lett a vége

Közben ráakadtam erre, views theming: http://drupal.org/node/352970 Megpróbálok ez alapján birkózni

0
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

Pasqualle képe

a views-view--kommentek.tpl.php fajl nekem az alap views template fajlnak tunik ahol a "kommentek" a view neve. Nos abban nincs $row valtozo csak $rows, ami a formazott vegeredmenyt tartalmazza..

ha egyetlen field-et akarsz sminkelni akkor lehetoseged van vagy az egy mezore vonatkozo templatet (views-view-field.tpl.php), az egy sorra vonatkozo templatet (views-view-fields.tpl.php), vagy az egyes stilusoknal hasznalatos tobb sorra vonatkozo templateket hasznalni (mivel nincs minden stillushoz egy sor template). A view szerkesztesenel a [Theme: Information] ra kattinva latod a hasznalhato templateket.

nem tudom, hogy mit is szeretnel megvalositani, de ha tobb soros view-d van akkor ez a tartalom:nid mezo minden sorban benne lesz.. Az eddigi info alapjan azt latom, hogy az egesz view-ban szeretned elerni a $nid erteket anelkul, hogy az altalad leirt kod szerepelne a template-ben. Valami ilyesmi megoldast tudok elkepzelni:

function THEME_NAME_preprocess_views_view(&$vars) {
  if ($vars['view']->name == 'kommentek' ) {
    // URL-ből kiszedjük a node id-t, es atadjuk a template-nek.
    if (arg(0) == 'node' && is_numeric(arg(1))) {
      $vars['nodeid'] = arg(1);
    }
    else {
      $vars['nodeid'] = 0;
    }
  }
0
0
szantog képe

Ő lesz az, köszi!

0
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.