CCK + ImageField + ImageCache + Views Galériát

belulo képe

kattintgattam össze aboros DUG14-es videója alapján. Itt megtekinthető.

De amint látszik, a képek vannak felül, a galéria címe pedig alul. Most kicsit jojózik már a szemem, nem jövök rá, miért van ez így, hogy tudom a kettőt megfordítani?

Drupal verzió: 
thamas képe

A Views blokkot a Content-top régióba tetted, ami a Tartalom (Content) fölött van. Tedd át a Content-bottom régióba, ha van ilyen a sminkedben. Ha nincs készíteni kell egyet. Vagy használni kell egy olyan modult, amivel a tartalomba (node) illesztheted a nézetet.

(Más: legközelebb hagyj szóközöket a címben... :o))

0
0

Üdvözlettel:
Hajas Tamás

belulo képe

volt content-bottom. Odatéve jó lett. Viszont így alighanem, ha valaki ír egy megjegyzést hozzá, a képek menthetetlenül lecsúsznak. Ha jól sejtem a második javaslatod ezt megoldja. De hogy is? Ha rtfm, akkor mik a kulcsszavak?

Szóköz: mikor észrevettem, hogy nem törik a cím, már módosítani nem tudtam. Másszor úgy teszek ;-)

0
0

belulo

thamas képe

... hanem a hozzászólásokat is! ;o)

http://drupal.hu/hirek/20090301/14-budapesti-dug-vide%C3%B3n#comment-26424 és a köv. két hozzászólásom

0
0

Üdvözlettel:
Hajas Tamás

aboros képe

ezek a views beágyazók akkor jók, ha gyakran hozol létre olyan nodeokat, amikbe (és csak azokba) más-más nézeteket akarsz pakolni. eseti jelleggel.

itt nem erről van szó ugye, hanem arról, hogy egy adott tartalomtípus minden példányába bele kell varrjunk egy nézetet. ugyan azt a nézetet mindegyikbe.

két praktikus megoldás jut az eszembe, mindkettő ugyan azt a logikát követi, csak máshol valósítja meg azt. hogy melyiket érdemes csinálni, az attól függ, hogy egyébként milyen az oldalad felépítése.

tulajdonképpen mindkettőnél azt csinálod, hogy a (node.tpl.php) $content változóhoz még hozzácsapod pluszba a nézetet is, amit views_embed_view() -val hívsz meg.

1. sminkbe csinálod » template_preprocess_node(), if $node->type galéria, $vars['content'] .= views_embed_view(..)
2. írsz egy saját modult, hook_nodeapi, if $op == view, bodyhoz fűzöd a nézetet views_embed_view(..) -val.

az elsőt talán egyszerűbbnek tűnik megcsinálni, a második viszont nem kötődik a sminkhez, így minden sminkben működni fog szépen. (ha mondjuk több-sminkes az oldalad, akkor a második)

0
0

-
clear: both;

belulo képe

ViewField modullal, de élesbe nem tettem még fel.

Igazából nekem pont csak erre az egy esetre, a Galéria tartalomtípushoz kell, ezért szimpatikus a javaslatod. Egy sminkem van, ezért az elsőnek futok neki.

Mivel alsminkem van, így az eredeti smink node.tpl.php-ját átmásolhatom és azt szerkeszthetem. Ugye alapból ezt fogja használni és nem kell az .info-ba ezt beletenni?

Na, nekigyürkőzök, aztán ha elakadok, akkor majd szólok.

Köszi a segítséget.

0
0

belulo

aboros képe

hanem a template.php -ban, egy template_preprocess_node -ban intézném ezt.
mondjuk most hogy így jobban elgondolom, a node és a hozzászólások is a contentben vannak, szóval nem istibizi, hogy nyakatekert regexpek nélkül közéjük tudod varrni a nézetet.

lehet mégis jobb lenne, ha hook_nodeapi -ban a body-hoz illeszteni azt.

0
0

-
clear: both;

belulo képe

A sminkem node.tpl.php-ját áttettem az alsminkbe, és abba ezt írtam bele:

 
function template_preprocess_node(&$vars) {
if ($node->type == 'gallery'){
$vars['content'] .= views_embed_view('galeria_kepek', $display_id = 'block_1');}
}

Ahol 'gallery' az adott tartalomtípus, 'galeria_kepek' az adott nézet, 'block_1' pedig az adott display neve.

A tanácsotok alapján ez így jó kéne legyen, de a következő hibát adja:

Fatal error: Cannot redeclare template_preprocess_node() (previously declared in /var/www/drupal/includes/theme.inc:1909) in /var/www/drupal/sites/all/themes/trinitas2/node.tpl.php on line 7

Tudományom megállt. Hogyan tovább?

0
0

belulo

aboros képe

az előfeldolgozót a template.php -ba kellene rakni, és SMINKEDNEVE_preprocess_node néven kell implementálni. de feljebb is írtam, hogy ezzel gáz lesz, mert ott a contentben már benne vannak a hozzászólások is, szóval vagy kettészeded a content valami sztringművelettel, közéékeled a nézet és újra összeilleszted, vagy modult írsz és a hook_nodeapi ba pakolod a node bodyhoz a nézetet.

0
0

-
clear: both;

belulo képe

nem láttam, kár. Jó sok guglizástól mentett volna meg.

Ez a hook_nodeapi egyelőre nekem kínai, de igyekszem utánaolvasni.

0
0

belulo

hosszu.kalman képe

Szerintem csinálj egy egyszerű modult.

modulneve.info:

name = Module name
description = Add a view to the content
version = VERSION
core = 6.x
 
dependencies[] = views

moduneve.module:

<?php
function modeulneve_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
  switch ($op) {
    case 'view':
      if ($node->type == 'gallery') {
        $node->content['gallery_view_to_content'] = array(
          '#value' => views_embed_view('galeria_kepek', 'block_1'),
          '#weight' => 10, // A súlyt beállítod a megfelelőre
        );
      }
 
      return $node;
      break;      
  }
}
?>

Szerintem valami ilyesmivel kellene megcsinálni.

0
0
belulo képe

Köszi a segítséget. Kipróbáltam, de nem az igazi. Egyrészt elvégzi a dolgát, azaz a képek alá teszi a hozzászólásokat, másrészt azonban a hozzászólások végén újra kilistázza a képeket.

0
0

belulo

szantog képe

Szerintem bennehagytad a preprocesst is a sminkedben, az meg hozzápattintja a végére még egyszer a galériát.

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.

belulo képe

de igazad van :-)

Ha ez a modul be van kapcsolva, akkor ki kell vennem az adott blokk megjelenítését a blokkok oldalán. Kálmán megoldása kiválóan működik.

Azt azonban nem tudom, mit befolyásol a súly állítása a modulban?

Nagyon szépen köszönöm a segítséget!

0
0

belulo

hosszu.kalman képe

A súly annak a beállítása, hogy milyen sorrendben jelenjenek meg a content-ben a különböző részek. Pl ha vannak cck mezőid, és azt szeretnéd hogy ez a view kettő között legyen, akkor a súly megfelelő beállításával el tudod érni.

0
0
Patuzzi képe

Nekem is ez kellett, de a #weight hatástalan, a view mindig a node felett jelenik meg, még #weight=20 esetén is.
Mi lehet a baj?

0
0
thamas képe

Nem jó megoldás használni a beágyazó modulok valamelyikét és pl. megadni alapértelmezett tartalomnak a létrehozott nézetet?

Viszont ha sminkelés: nem elég ennyi a node-tipus.tpl.php-ba?

<?php print views_embed_view('view_name', $display_id = 'display_id');?>

(Nem próbáltam, az ötlet innen van: http://raincitystudios.com/blogs-and-pods/hubert/a-simple-ajax-image-gal...)

0
0

Üdvözlettel:
Hajas Tamás

belulo képe

létrehozni a sminkemben egy node-gallery.tpl.php-t, amibe a fenti sort tettem fentebb említett konkrét nevekkel, de látszólag nem történt semmi nálam.

Egyelőre nem is próbálgatom, Kálmán alapján létrehozott owngallery modul műxik.

Köszi.

0
0

belulo

aboros képe

a beágyazó modulos megközelítés is működik, de egész picit ágyúval verébre effekt.

sminkrétegben meg azért macerás ez, mert a $content egy sztring ami már a teljes hozzászólásfolyamot is tartalmazza. a $varsból persze újra összerakhatod azt és a node meg a comments közé varrhatod a nézet, de érezhető, hogy ennél sokkal frappánsabb a nodepaival tenni ezt.

a drupal 7 persze mindent felborít majd a hook_page_alter -el, de az még odébb van kicit ;)

0
0

-
clear: both;