ALT szöveg megjelenítése

L.Tiny képe

Sziasztok!

Csináltam egy slideshow-t (views_slideshow-7.x-3.x-dev). Az egyes oldalakra feltöltött képekből áll össze a váltókép, a lapozó pedig a képek thumbnail mérete. Azt szeretném megoldani, hogy a kis képek alatt (v. fölött) jelenjen meg a kép ALT szövege. Tehát ne csak az egér kép fölé mozgatásakor, hanem fixen látszódjon.

Megoldható ez valahogy? A views-on belül próbáltam beállítani, de eddig nem sikerült.

Köszi előre is a segítséget!

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

Szia!

Szerintem a field.tpl.php lehet a megoldás. Ha az image field-ed neve például: termek_kep, akkor a file elnevezése:

field--field_termek_kep.tpl.php és a saját sminked templates mappájába kell tenni.

A kód ami kiírja az ALT és TITLE tagokat:

<!--
THIS FILE IS NOT USED AND IS HERE AS A STARTING POINT FOR CUSTOMIZATION ONLY.
See http://api.drupal.org/api/function/theme_field/7 for details.
After copying this file to your theme's folder and customizing it, remove this
HTML comment.
-->
<div class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>
  <?php if (!$label_hidden): ?>
    <div class="field-label"<?php print $title_attributes; ?>><?php print $label ?>:&nbsp;</div>
  <?php endif; ?>
  <div class="field-items"<?php print $content_attributes; ?>>
    <?php foreach ($items as $delta => $item): ?>
 
	 <div class="termek_kep_doboz clearfix">
		<div class="termek_kep"><?php print render($item); ?></div>
		<div class="termek_kep_title"><?php print $item['#item']['title']; ?></div>
		<div class="termek_kep_alt"><?php print $item['#item']['alt']; ?></div>
	 </div>
 
	<?php endforeach; ?>
  </div>
</div> 

Nem tudom ez így elég drupalos megoldás-e, de nálam működik.

Üdv
Zoli

1
0
L.Tiny képe

Szia!

Köszi a választ. Sajnos nálam nem jelent meg az alt tag, de biztos én rontok el valamit. A sminkem ninesixty, ebben nincs alapból template mappa, de létrehoztam és abba tettem a field--field_katalagus_kepek.tpl fájlt, benne a fenti kóddal. Semmi. Aztán próbáltam úgy, hogy nem tettem a template mappába, de úgy sem működik. Gyorstártörlés megvolt.

A templételésben nincs gyakorlatom, szóval ettől még lehet ez egy jó megoldás, főleg, hogy Nálad műxik...

Esetleg nem kell valamit még testre szabni ebben a kódban?

0
0
blackzoli képe

Szia

Nem használtam még a ninesixty sminket, én ZEN sminkhez szoktam alsminket készíteni.

Egyébként az eredeti field.tpl.php file-t a gyári field modul mappájában találod:

modules/field/theme/field.tpl.php

http://api.drupal.org/api/drupal/modules!field!theme!field.tpl.php/7

Erről tudsz készíteni másolatot field--field_katalagus_kepek.tpl néven.
Az így elkészített másolatba pedig bele tudod illeszteni azt a részt amit küldtem.

A ninesixty-n belül, ha nincs template mappa, nem tudom hová kell illeszteni. Talán a smink gyökér mappájába? Úgy próbáltad?

A kódban maximum a CSS osztályok nevei egyediek, de attól működnie kellene a dolognak.

Egyébként a hozzászólásodban katalAgus van írva, ez csak itt van elírva, vagy a file is katalAgus lett miközben a field-ed neve katalOgus ?

Üdv
Zoli

2
0
L.Tiny képe

Hálás köszönetem az idiot proof eligazításért, de nekem ez kell:)) Van még mit tanulnom a Drupal használatából.

A ninesixty sminknél a gyökérbe kell rakni a tpl.php fájlokat (mint kiderült). Így sem megy simán, hogy a gyári field.tpl.php-t használom, mert ezt a mezőt (és a képeket) elrejtettem a megjelenés beállításainál, és egy views blokkban csináltam belőle slideshow-t. Most, hogy engedélyeztem a megjelenést, a tartalom alján ott vannak még egyszer a feltöltött képek, és végre ott figyel az alt és a title szöveg minden kép alatt!!!
Hogy miképpen fogok ebből egy ugyan olyan slideshowt csinálni, ugyan oda a jobb felső ficakba, az még rejtély, de a fő problémán túljutottam... a segítségeddel!!! Köszi még egyszer!

Ja, és a field nevét ide jól írtam, a mező létrehozásakor gépeltem el. De már marad így, úgysem tudja meg senki:)))

0
0
Geva képe

az img alt szövegét szerintem az elkészített views-ba kellene kiiratni, ott szeretnéd látni a slideshow-ban ...vagy valamit félreértek? ...nem értem a field-... kezdetű templétet

más kiindulást javaslok, ha a slideshow-ban szeretnéd csak az img alt szövegét látni:

az elkészített views templétje tutira views-... -zal kezdődik(dr7). Hogy melyik ez a templét, amibe aztán majd php kóddal kiiratható a megjelenített kép alt szövege, azt a views-ból lehet megtudni:

- az Advanced keretben találsz egy Theme(vagy Smink): Information részt, amelyből pontosan azonosíthatod a templétedet,
keresd a képhez listázott templéteknél
...és válassz onnét

ha nem tudod így megoldani, akkor a felhasználónak kell adni egy szöveges mezőt, ahova a tartalom beküldésekor közvetlenül beírhatja a kép alatt megjelenítendő szöveget. Ezzel a megoldással már csak hozzá kell adnod ezt a szöveges mezőt a views-odhoz, aztán némi css... voálá :-)
(egyéb helyeken pedig le kell tiltani ennek a mezőnek a megjelenését, hogy ne kavarjon be a már korábban kialakított megjelenítésekbe)

2
0
L.Tiny képe

Köszi Éva ezt a remek ötletet!
Remélem Zoli nem haragszik meg, de talán most ez lesz a jobb megoldás nekem. A views template-eket már nézem is. Innen talán már csak egy lépés. Majd leírom, hogy sikerült!

0
0
blackzoli képe

Szia!

Természetesen nem haragszom meg, sőt örülök, hogy egy problémának egy másfajta megoldását is látom. Mindig tanul az ember:)

Éva, írtad, hogy nem érted a field kezdetű tamplatet. Javítsatok ki ha tévedek, de szerintem a kettőnk megoldása ott tér el, hogy ha a views kezdetű templatet használod, akkor a megjelenítés az elkészített nézetre lesz hatással, ha viszont magát a field-et templatezed, akkor ha azt a mezőt nem views al jeleníted meg, akkor is fog látszani az alt és title tag. Nem jól gondolom?

A másik megoldással kapcsolatban is lenne egy kérdésem:

"ha nem tudod így megoldani, akkor a felhasználónak kell adni egy szöveges mezőt, ahova a tartalom beküldésekor közvetlenül beírhatja a kép alatt megjelenítendő szöveget."

Ha az image field-nél engedélyezve van, hogy értékek száma korlátlan, tehát egy multi image field-ről van szó, akkor hogyan lehet megoldani, hogy minden képhez tartozzon egy szöveges mezőbeli érték?

Üdv
Zoli

1
0
Geva képe

én is így gondolom:
- Zoli, a megoldásod az img minden megjelenésére vonatkozik, míg az enyém csupán a views-ban láttatja az img alt szövegét :-)
(az alt szöveget kell megjeleníteni a views_slideshow-val elkészített vetítésben --> az én olvasatom szerint. Kérdés: mit szeretne a kérdező) ...vagyis mindketten a felvetett probléma értelmezése szerint oldottuk meg :-)

Kiss Laci írta: „oldalakra feltöltött képekből áll össze a váltókép” ezt nem többszörös mezőként értelmeztem

- többszörös image field mezőre nyilvánvalóan nem jó megoldás a plussz felirat mező, ennél az esetnél egyértelműen maradna a megfelelő templét kiválasztása, majd php kóddal az alt kijelzése.
A plussz felirat mező - egyszeresen engedélyezett img field mezőnél - jó megoldás lehet olyanoknak, akik nem beszélnek php-ül :-)

szvsz így már kerek a téma,
Zoli, köszönöm a kérdésedet
üdv
Éva

1
0
L.Tiny képe

Köszönöm a válaszokat!

Ha jól értem, három megoldásról írtatok, és mindegyik más esetben alkalmazandó.

1. Zoli első válaszában szereplő kód akkor működik, ha az oldalra feltöltött tetszőleges számú kép field-ként jelenik meg (a lap alján, vagy ahová css-sel rakjuk), a meghatározott képstílusban.

2. Éva két javaslata közül az egyik, hogy plusz mezőt hozunk létre, amibe a kép címét kell beírni. Ez csak egy kép feltöltésénél működik, de ott ez talán a legegyszerűbb megoldás.

3. Rám Éva másik javaslata vonatkozik, ami szerint a field rejtve van, és a feltöltött képek (nálam korlátlan számú kép) egy slideshow-ban jelenik meg az oldaldobozban, egy külön blokkban. Itt értelem szerűen csak a gyári alt vagy title mezőkkel lehet operálni. A javasolt Theme: Information leírásban valóban ott vannak a használható tpl.php-k, sajnos több is mint amennyiből egyszerűen ki tudnám választani, hogy nekem melyik is kell. Szinte mindegyiket kipróbáltam már de minden esetben hibaüzenetet ad. Éles eszemmel rájöttem, hogy ide nem lesz jó az a kód, amit Zoli írt az elején. Viszont én "nem beszélek php-ül" így sakk-matt.
Ha esetleg ebben tudnátok segíteni, hogy a konkrét tpl.php fájlba mit kell írnom, akkor lenne teljes az öröm:)

Köszönöm!

0
0
blackzoli képe

Szia!

Szerintem két megoldás jöhet szóba:

1: view template

Tegyük fel, hogy az image field-ed neve: field_slideshow_kepek

- a sites/all/modules/views/theme helyen lévő views-view-field.tpl.php nevű file-ról készíts egy másolatot views-view-field--field-slideshow-kepek.tpl.php névvel
- ezt az új file-t másold bele a ninesixty smink gyökér könyvtárába
- a fileba a print $output részhez írd be a következőt:

<?php print $output; ?>
<?php print '<br/>'.$row->field_field_slideshow_kepek[0]['raw']['alt']; ?>
<?php print '<br/>'.$row->field_field_slideshow_kepek[0]['raw']['title']; ?> 

Ezt követően a chache és a theme registry törlése után még nyomj egy "Rescan template files" gombot a views-on belül az Advanced-> Theme: Information résznél. Ezek után ha frissíted az oldalt működnie kell.

2: "kattingatós" megoldás

Írtad, hogy a field template azért nem jó neked, mert a tartalom megjelenítése résznél kiveszed az image field-mezőt a megjelenítésből és a normál tartalomnál ez nem is jelenik meg, csak a views által generált slideshow-ban.
A Display Suite modullal ( http://drupal.org/project/ds/ ) lehet felvinni különböző megjelenítéseket (manage view modes - > Add a view mode).
Alapból van két megjelenítési mód: a teaser (Bevezető) és a full (teljes tartalom).
Itt fel tudsz vinni egyéni megjelenítési módot, nem tudom pl.: slideshow_box_megjelenites

Ezt követően meg tudod csinálni, hogy a bevezetőben vagy a teljes nézetben ha ki is veszed az image field megjelenítését, attól függetlenül az új általad felvitt megjelenítési módban meghagyod.

Ezek után a views-ban be tudod állítani a következőt:
Formátum -> Megjelenítés: Tartalom | slideshow_box_megjelenites

Magyarán a field-ek megjelenítését a Display suite-ra bízod, és a megjelenítési módok közül tudsz választani a Views-ban.

Ezzel a megoldással már az első hozzászólásomban lévő field templatet is tudod használni, hisz a Display Suite megoldja Neked, hogy az a field, csak a saját nézetedben legyen látható.

Huuuh, nem tudom érthetően fogalmaztam-e, ha valami nem világos, kérdezz bátran.

Üdv
Zoli

1
0
L.Tiny képe

Szia!

Abszolút érthető volt a leírásod! A view template vonalon haladtam és ahogy leírtad, simán összejött. A title megjelenést és a sortörést kivettem, tehát maradt ez:

  1. <?php print $output; ?>
  2. <?php print $row->field_field_katalagus_kepek[0]['raw']['alt']; ?>

(igen, még mindig "katalagus")

Aztán egy kis css, és pont úgy néz ki, ahogy megálmodtam:)) Ha elkészül az oldal, ide teszem a linket, hogy lássátok az eredményt.

Hálás köszönetem Neked és természetesen Évának is!!!

0
0
aboros képe

felhasználók által bevitt raw értékeket csakúgy kiíratni nem kimondottan a nyugodt éjszakák és nyaralások záloga. a nyers értékben bármi lehet, gonosz kód is, ezért az a szokás, hogy minden ilyen adatot átkergetünk valamiféle szűrőn. pont erre való például a check_plain().

mivel most már "kész" van, ezért talán késő, de szerintem amit akarsz, ahhoz felesleges tplekben turkálni, egyszerűen hozzáadhadtad volna mezőként a nézethez a kép alt "mezőjét" és kész.

1
0

-
clear: both;

L.Tiny képe

Ajaj, köszi a figyelmeztetést!
Ez a biztonsági kockázat akkor is fennáll, ha csak a tulajdonosnak lesz admin joga?

Egyébként távolról sincs még kész az oldal, tehát ha van mód csiszolni rajta, akkor megteszem. Csak hogyan? Hová kell ezt a check_plain() "dolgot" tenni?

A mezőként hozzákapcsolás nem működött, nem volt ilyen lehetőség, hogy alt mező... Bár egy ilyen patterns-t találtam: [node:field-katalagus-kepek:alt] de ezzel nem tudtam mit kezdeni. Annyira azért nem vagyok még profi:) De igyekszem!

UI: kezdünk nagyon elvékonyodni...

0
0
pityu73 képe

„A mezőként hozzákapcsolás nem működött, nem volt ilyen lehetőség, hogy alt mező... ”

A nézetben kapcsolatoknál vedd fel a kép mezőjét (nálam ez Tartalom: Kép (field_image_cache) - fid), és akkor lesz egy ilyen mező amit felvehetsz (Tartalom: Kép (field_image_cache) - data)
Itt már kitudod választani az alt mezőt amit meg akarsz jeleníteni.

4
0
blackzoli képe

Egyértelmű, hogy ez a legelegánsabb és legegyszerűbb megoldás.
Ha én anno ezt tudtam volna, én sem szívok tpl file-ok átírogatásával.
És ezzel a megoldással az említett biztonsági rés is kiküszöbölhető.

Csak ismételni tudom magam: Mindig tanul az ember! :)

Üdv
zoli

0
0
aboros képe

pont így! a tplekben turkerászásnak itt nincsen semmi oka.

1
0

-
clear: both;

L.Tiny képe

Köszi István!
Szeretném így megcsinálni, de nálam megint nem úgy mennek a dolgok, mint mindenki másnál:( Nem akartam rögtön kérdezni, próbáltam megoldani a dolgot, de valami nem stimmel.

Felvettem a kapcsolatoknál a kép mezőt - már ez sem pont olyan formátumú, mint nálad:
Tartalom: Katalógus képek (field_katalagus_kepek:fid),
nem pedig
Tartalom: Katalógus képek (field_katalagus_kepek) - fid.

Viszont olyan mezőt meg nem találok, hogy
Tartalom: Katalógus képek (field_katalagus_kepek:data),
vagy ..._kepek) - data.
Egyáltalán "data" keresésre nincs semmilyen mező. Itt akadtam el...

Hol lehet a hiba?

0
0
pityu73 képe

Az eredeti kérdésnél nem néztem a verzió számot és én D6 és az ott használt view3-nál néztem elnézést.
De van egy D7 játszóterem és ott úgy tudtam előcsalni a alt mezőt hogy kétszer vettem fel a kép mezőt. Egyiknél hagytam a következőn (formázó:kép) stb stb... a többi beállítás lényegtelen.
A másik mezőnél pedig (formázó:kép) és itt pedig az "Eredmények átírása" résznél Mező kimenetének felülírását bekapcsoltam. Itt a helyettesítési mintákból pedig kivettem ezt az adatot:
([field_termek_kep-alt] == Raw alt)
és beírtam így: [field_termek_kep-alt].
Így ennél a mezőnél csak az alt szövegem jelent meg, és így a nézetemnél van kép is és a hozzátartozó alt szöveg két külön mezőben.
De elkészítheted egy mezőben is ezzel a felülírásos móddal formázva is.
Kattíngatós módszernél segítenek a helyettesítési minták a view-ben.

Teszt D7 és Drupal Commerce product-nál volt mert hirtelen ehhez volt most legyártott nézetem, de szerintem sima tartalomnál is így kell látszódnia a view-nek a kép mezőnél, és még valami itt nem kellet a kapcsolatoknál a képet felvennem, de lehet a tartalomnál kell.

remélem ez jobban segít....

1
0
L.Tiny képe

Köszi István!
Így már minden működik, valóban a Drupal verzió nem stimmelt. De így legalább itt egy oldalon megvan a 6-osra és a 7-esre is a megoldás.

Nálam egy picit még cifrább volt a helyzet, mert a slideshow-t úgy oldottam meg, hogy pager-ként a feltöltött képek jelenjenek meg thumbnail képstílusban. Ezért két sor is be kellett szúrnom a Rewrite results-hoz:

[field_katalagus_kepek]
[field_katalagus_kepek-alt]

Ilyen lett a tesztverzió:
alt tag kiírása

Így akkor már nincs biztonsági kockázat, és ez megnyugtató:)

Minden szuper, köszönöm a segítséget és a hozzám való türelmet!

0
0
aboros képe

egyszerűen felülírod a képmező kimenetét és magát a képet plusz az alt szöveget is belevarrod. így: https://skitch.com/aboros/ee6b3/image-alt-text-demo-content-playground.l...

1
0

-
clear: both;

L.Tiny képe

A kapcsolatot tényleg kivettem, ezt elfelejtettem odaírni:)

0
0