jQuery a kezdőlapon

Pál úr képe

Ü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: 
Paal képe

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:

  1. script.js
    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.
  2. .info fájlban
    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.
  3. template.php
    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.

0
0

--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan

pp képe

.info fájl a legelegánsabb. A hármast én nem használnám.

pp

0
0
Illyés Edit képe

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.)

0
0
pp képe

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

0
0
Bálint képe

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?

0
0
Pál úr képe

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.

0
0
pp képe

Természetesen egyes.

pp

0
0
Pál úr képe

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.

0
0
gyurex képe

Mentés megvolt?

0
0
Pál úr képe

.. 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.

0
0