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ó:
Fórum:
field--field_neve.tpl.php
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:
Nem tudom ez így elég drupalos megoldás-e, de nálam működik.
Üdv
Zoli
Sajnos nem írja ki az alt tag-et...
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?
Szia
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
Így már rendben lesz!
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:)))
az img alt szövegét szerintem
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)
Geva
----- Számítások - Kalkulátorok
Ez a megközelítés még jobban tetszik...
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!
nem haragszom meg :)
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
én is így gondolom:
é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
Geva
----- Számítások - Kalkulátorok
Ha jól értem, három megoldásról írtatok...
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!
szerintem 2 megoldás is létezik
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:
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
Abszolút érthető volt a leírásod!
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:
(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!!!
biztonsági rés
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.
-
clear: both;
Ajaj, köszi a figyelmeztetést
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...
A nézetben kapcsolatoknál
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.
ha én ezt anno tudtam volna
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
így-így!
pont így! a tplekben turkerászásnak itt nincsen semmi oka.
-
clear: both;
Nálam megint nem úgy mennek a dolgok, mint mindenki másnál
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?
Az eredeti kérdésnél nem
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....
A Drupal verzió nem stimmelt
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ó:
Í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!
nem kell semmilyen kapcsolat
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...
-
clear: both;
így-így! - hogy klasszikust idézzek:)
A kapcsolatot tényleg kivettem, ezt elfelejtettem odaírni:)