Üdv,
feltehetően nagyon amatőr a kérdésem, de egyelőre nem sikerül előrevergődnöm. Szeretnék a kezdőlapon (front) jQuery-t használni. Zen sminket használok, illetve most írom át.
Egyrészt nem tudok rájönni, hogy hogyan kell beleerőszakolni a html-be a /misc/jquery.js-t, mert a template .info fájljába beillesztettem a scripts[] = jquery.js
sort.
Másrészt megpróbáltam a a kis jQuery-t használó szkriptecskét egyelőre a page-front.tpl.php megfelelő helyére <script>...</script>
közé betenni.
Az eredmény végül méfis az, hogy a HTML kimenetbe nem kerül bele a jquery.js, és a szkript meg meghal, ami jogos, mert nincs definiálva a $(document.ready(function() ));
Köszönöm.
P.
Melyik modulhoz, modulokhoz kapcsolódik a téma?:
Fórum:
Minek akarsz olyat, ami már van?
Az 5-ös verziótól a Drupal alapból a jQuery-t használja, így azt külön nem kell betöltetned vele.
Így már csak azt az extra kis jQuery-t használó szkriptecskét kell beleraknod.
Ha 6-os Drupalt használsz (ezt nem írtad!), erre három "Drupalos" megoldásod is van:
D6 a smink mappádban lévő script.js-t (ha van) akkor betölti, így az abba írt custom függvényedet is. Ha nincs ilyen nevű fájl, hozd létre először.
Fogod a zen.info fájlt (vagy az al-sminked .info állományát), és beleírod a következőt:
scripts[] = sajatscript.js
A smink mappádban létrehozol egy sajatscript.js nevű fájlt, és abba helyezed el a saját js-t.
A template.php elejére beírod a következőképpen:
drupal_add_js(path_to_theme().'/sajatscript.js', 'theme');
Remélem jól írtam le őket. Én azt hiszem az elsőt és az utolsót használtam már, de nem tudom melyik a "legelegánsabb" megoldást. Majd valamelyik sminkguru megmondja a tutit.
--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan
.info fájl a legelegánsabb.
.info fájl a legelegánsabb. A hármast én nem használnám.
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
ellenérvek, pls?
A hármassal szemben milyen ellenérvek vannak? (Én is az egyest vagy a kettest használom, de pl. drupal_add_feed()-et gyakran beteszek a template.php-ba. De már felmerült bennem, hogy ez nem biztos, hogy okos dolog.)
kettő nem túl releváns indok
1. mert a hatosban nem így kell.
2. Ha leszármaztatsz egy alsminket akkor a szülő template.php-ja betöltődik, a js beszúródik. Az alsminkben nem tudod ezt felülírni. ;)
A drupal_add_feed()-ről én úgy gondolkodom, hogy az nem egy sminkbeli kérdés, hanem egy funkcióbeli. Tehát, hogy az adott oldalhoz elérhető egy feed is az nem látványbeli dolog, hanem ott a háttérben funkcióknak is kell lennie. Ehhez egy pici modult fejlesztenék, ami a hook_init()-ben hozzáadná a feed linket az adott oldalakhoz.
Persze pontosan csak a feladat ismeretében tudnék nyilatkozni.
js-nél meg pont az a kérdés, hogy látvány elemeket teszünk-e bele(smink), vagy működési logikát(modul). Persze tudom, hogy néha nehéz, vagy egyáltalán nem lehet ezt a határt meghúzni. ;)
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
Csak kíváncsiskodnék
A kérdező csak a főoldalon szeretné include-olni a javascriptet. Tfh logikailag sminkeléshez kapcsolódó funkciókat valósítana meg.
Rögtön az jutna eszembe, hogy template.php-be preprocess_page(), aztán abban drupal_is_front_page() segítségével vizsgálni, hogy hozzá kell-e adni a js-t, vagy nem.
1. Megéri ez így, csak hogy elkerüljük, hogy mindenhol include-olva legyen?
2. Vagy preprocessben csak ne include-olgassunk semmit, ott csak a változóinkkal törődjünk?
valóban, csak smink
Valóban, csak a kezdőoldalon szeretnék sminkeléssel kapcsolatos feladatot (jQuery-vel nyíló-csukódó div-eket) megoldani. De már sikerült.
1
Természetesen egyes.
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
sajnos, nálam nincs
Drupal 6, elnézést.
Beletettem a sminkem .info fájljába azt, hogy
scripts[] = front.js
, és ezt a fájlt a saját sminkem gyökerében létre is hoztam.A
page-front.tpl.php
-ban benne van a<?php print $scripts; ?>
sor.Ennek ellenére ha megnézem a főoldal forráskódját, nincsen benne link sem a jquery.js-re, sem a saját szkriptemre, pedig a fejlesztés miatt be van kapcsolva a
rebiuld theme registry
.És egyelőre mindez localhost-on...
P.
admin/build/themes
Mentés megvolt?
meg -- és megoldódott
.. persze ami a legviccesebb, hogy előtte kb. vagy 100-szor. Végső elkeseredésemben feltettem a Devel modult, és amikor használat után kikapcsoltam, akkor javult meg.
De mindenikek köszönöm a segítséget.