Széles kép - magas kép

fox mulder képe

Sziasztok!

Übercart webshop. Az egyik termékhez széles kép tartozik ("széles" = jóval szélesebb a magasságánál), a másikhoz magas ("magas" = jóval magasabb a szélességénél). Azt szeretném elérni, hogy ha a kép széles, akkor foglalja el a content teljes szélességét, ha magas, akkor viszont legyen "float: right". Gondolom, valahogy bele kéne tennem egy wrapper div-be, aminek a stílusa a kép méretadataitól függ, de nem tudom, hogyan. Persze nem csak a node megjelenítésekor, hanem a különböző katalógus listákban is más-más megjelenítés kéne. Hogyan tudnám fülön csípni ezt a problémát?

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

A. Hozzáadsz egy a tartalomtípushoz egy kapcsolót, amivel megadhatod, ha éppen "magas" képet töltöttél fel. A sminkben nézed a field értékét és hozzáadsz egy class-t a képhez. A class-hoz hozzárendeled a formázást.

http://hu2.php.net/gd
imagesx — Get image width
imagesy — Get image height

Én még nem használtam, de szerintem ezekkel a függvényekkel le tudod kérdezni a kép X és Y méretét, a sminkben. Ha éppen "magas"..... (lásd fent)

1
0

...mit tudok: http://web.termuves.hu

fox mulder képe

Főleg nekem (a gd könyvtár használata). Köszi, jó a tipp, de mire kell nekem az imagesx és imagesy függvény, ha megadtam a "magas" mezőt?

0
0

Fox Mulder

eMeLA képe

Ó. Félreérthető, és felületes voltam. Ez két lehetséges megoldás.

Az első manuális. Vagyis te mondod meg, hogy magas vagy széles a kép.

A második pedig automatikusan "megnézi", hogy éppen magas, vagy széles képpel van-e dolga.
A felületességem itt van jelen. Mivel nem ez a két függvény kell neked, hanem a getimagesize(). http://hu2.php.net/manual/en/function.getimagesize.php

Vagyis valami ilyesmi kell a smink fájlba:

list($width,$height) = getimagesize($node->field_ezakepem[0]['filepath']);
if ($width > $height) .....; // ez éppen egy fekvő kép
else ....;                           // ez meg az álló kép
1
0

...mit tudok: http://web.termuves.hu

fox mulder képe

Mindkettő jó, kipróbálom, aztán amelyik könnyebb...

0
0

Fox Mulder

jabba306 képe

Bocs, nem ehhez a témához akartam hozzászólni.

1
0
silversk8r képe

node megjelenítésekor node-product.tpl.php -be:

$imgcache = $node->field_image_cache[0]; //ha csa kegy kép kell
//foreach($node->field_image_cache as $imgcache) { //ha több képet szeretnénk
  $image_path = base_path() . $imgcache['filepath'];
  //$image_info = getimagesize($image_path);
  $image_info = image_get_info($image_path);
  $image_class = ($image_info['height'] > $image_info['width']) ? 'portrait' : 'landscape';
  print theme('image', $imgcache['filepath'], $imgcache['data']['alt'], $imgcache['data']['title'], array('class' => $image_class));
  //print theme('imagecache', 'product', $imgcache['filename'], $imgcache['data']['alt'], $imgcache['data']['title'], array('class' => $image_class));
//}

a többi pedig css
img . portrait {float: right}
img .landscape {width: 100%} /* nem biztos hogy ez így jó ötlet */

És egy modul ami esetleg hasznos lehet:
http://drupal.org/project/imagecache_proportions
0
0