Sziasztok!
Szeretnék készíteni egy olyan megoldást, ami bizonyos mezőtartalmakat (pl. térképet, esetleg szöveges tartalmat) egy ikonra kattintáskor rétegként jelenít meg az oldalon. Például olyat, mint itt a cím melletti térkép ikonra kattintva: http://www.calidadrural.es/aceite/23
Most épp a fancybox pluginnel próbálkozom, és addig eljutottam, hogy ha kirakok mondjuk egy térképet, akkor arra kattintva a térkép szépen megjelenik az overlay-en. Viszont az sehogy sem áll össze a fejemben, hogyan lehetne csak az ikonkattintásra előhozni, egyébként nyilván nem kell látszania.
Melyik modulhoz, modulokhoz kapcsolódik a téma?:
Drupal verzió:
Fórum:
Dokumentáció alapján:http:/
Dokumentáció alapján:
http://fancyapps.com/fancybox/#examples
lásd például az "Inline" tartalom megjelenítését, a link:
<a class="various" href="#inline">Inline</a>
ez az inline id-vel ellátott DOM-elem tartalmát fogja megjeleníteni, ami most a példaoldalon ez:
Szóval magyarul egy lehetőség, hogy egyszerűen elrejted az adott mezőt, de megjelenítesz hozzá egy fentihez hasonló linket, ami az adott tartalom id-jára mutat anchorral (#valamiazonosito).
Aztán megjelenítheted iframe-ben is:
Nyilván a megfelelő osztállyal (class) kell helyettesíteni, itt a példában a various class-szel ellátott elemekre inicializálta a FancyBoxot (lásd JavaScript-fül).
Aztán AJAX-szal is be lehet tölteni természetesen tartalmat:
<a class="various fancybox.ajax" href="/demo/ajax.php">Ajax</a>
Na, de ott van a lehetőségek széles tárháza, a dokumentáció egész bőbeszédű. :)
rtfm :)
Köszönöm, egészen sokat keresgéltem, éppen csak a megfelelő oldalon nem... :)
Íme egy megoldás, hátha hasznos lesz valakinek
Alapvetően persze nagyon egyszerű elemekről van szó, viszont a hajam kihullott, mire összeraktam, lévén ilyesmivel eddig nem foglalkoztam.
A feladatban egy Leaflet térképet kell megjeleníteni az overlayen. A címet bekértem egy mezőben, majd ebből egy geofield-del lett térképi információ. Alapesetben ebből egyszerű Leaflet-térképet csinálni, csak a megjelenési formáját kell Leaflet-re állítani. Viszont itt a fenti megoldás érdekében köré kell rakni egy div-et:
<div id="inline" style="width: 400px; display: none;">
Mivel amúgy is használok Display Suite-ot az oldalon, meg más ötletem nem volt, készítettem egy code field-et a DS-tal. Itt jött a következő gond: Nem találtam olyan tokent ami eleve a Leaflet-térképet adja vissza, csak a koordinátákat lehetett lekérdezni. Tehát kódból kellett generálni a térképet:
Itt az tartott el egy jó darabig, amíg megtaláltam, hogy sima PHP-mezőben nem érhető el az $entity objektum, ehhez a Display Suite code szükséges.
Ez már szuperül kirajzolja a térképet, viszont ha elrejtem a div-et, akkor a felugró overlay-en csak egy szürke mező jelenik meg :( Újabb néhány órás keresgélés után megtaláltam, hogy előbb kell generálni a térképet és utána elrejteni. Így végül a DS-mezőbe még odabiggyesztettem ezt a kis div-bezáró jquery-kódot:
drupal_add_js('jQuery(document).ready(function () { jQuery("#inline").hide(); });', 'inline');
Persze simán lehet, hogy túlbonyolítottam, de azért jó kis feladat volt...