Imagefield-el beküldött képek megjelenítési helyének megadása?

KaoszNagymaester képe

Sziasztok!

Minden készen áll ahhoz, hogy imagefield-el beküldjek képeket, majd lightbox-al meg is jelenítsem.
Viszont jelenleg ez úgy néz ki, hogy a beküldött szöveg (törzs) alatt megjelennek a képek egymás alatt. Én azt szeretném elérni, hogy egy kép a törzsön belül jelenjen meg, melette szöveggel, a többi kép viszont a törzs után, egymás mellett. Megoldható ez?

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
aboros képe

a 'display fields' részben állítsd a mezőt 'hidden' -re.
utána a sminked template.php -jában kábé ilyesmit kell csinálnod.

(az én mezőm neve 'imagefield' a sminkem neve 'playground' és használok egy 'small_square' nevű imagecache sablont a kép előállításához)

function playground_preprocess_node(&$vars){
  if (isset($vars['field_imagefield'][0])){
    $teaserimage = $vars['field_imagefield'][0];
    $preset = 'small_square';
    $vars['content'] = theme('imagecache', $preset, $teaserimage['filepath']) . $vars['content'];
  }
}

hevenyészett megoldás, igazából az irányt mutatja csak.

ennek hatására az imagefield mező első elemének a $preset -el átalakított verziója a 'content' elejére kerül. minden esetben. ez csak egy rövid vázlatos megoldás. a $vars['content'] értékét teljesen tetszőlegesen variálhatod ebben a függvényben, visszatérési érték nincs, a $vars tömbben minden benne van, amit a tpl.php meg fog kapni. módosíthatod, hozzáadhatsz, elvehetsz, amit akarsz. (pl: unset $vars['title'] ..:)

ezután persze css -ben még helyezed a képet, ahogy akarod.

ezt a kódolós részt igazából akkor érdemes elkezdeni, ha tovább akarod spilázni, pl olyan megoldás is elképzelhető, amit nevezzünk 'pszeudo-filter' -nek, hogy egy előre megadott karaktersorozat felel a képekért a body-ban, amiket ebben a template_preprocess_node -ban aztán kicserélsz a képekre. pl: [img2:small:left] helyére (valamilyen regexp -el) bepakolod az imagefield mezőben lévő második kép (img2), 'small' imagecache -elt változatát és hozzáfűzöl még egy 'left' class -t is. :)

kattintgatós megoldás
az lehet, hogy két képmeződ van, mondjuk teaserimage és moreimages. teaserimage csak egy értéket vehet fel, súlya kevesebb, mutatod teaser-ben a node-ra linkelve, full node -ban meg lightbox linkel, moreimages mező meg nem látszik teaserben, csak full node nézetben, és lightbox linkelt. ez talán gyorsabb és egyszerűbb megoldás, de a másik rugalmasabb lehet ;)

0
0

-
clear: both;

KaoszNagymaester képe

Köszi a választ!
Az első megoldást még át kell gondolnom, addig is a másodikhoz lenne még kérdésem: Ebben az esetben csak azt tudom megcsinálni, hogy a törzs rész felett legyen a teaserimage? Vagy azt a kódot, ami megjeleníti a mezőket, át tudom írni, hogy a két mező (teaserimage és a törzs) egymás mellé kerüljenek?

0
0
aboros képe

a megjelenítés egy külön 'réteg'..

a 'teaserimage' meződet a body fölé 'súlyozod' (a manage fields részben)
aztán firebug -gal rámutatsz és látod, hogy kap egy saját class -t, (field-field-teaserimage)...
ezt célzod css -ből és mondod neki, hogy float: left; margin-right: .3em;

0
0

-
clear: both;

KaoszNagymaester képe

Köszi, sikerült megoldanom, úgy ahogy írtad. Már csak az a szépséghiba, hogy a kép melletti szöveg IE alatt nem jelenik meg, Firefox alatt tökéletes... :(

0
0
KaoszNagymaester képe

Elfelejtettem a jogosultásgokat megadni az új mezőhöz. Ezt még szoknom kell... :)

Most minden ok. :)))

0
0