include a page.tpl.php-ban

mat323 képe

Sziasztok! Kellemes Ünnepeket mindenkinek! :)

A tanácsotokat szeretném kérni, hogy jó módszer-e JavaScipt menüt beillesztésére az page.tpl.php file-ba e sor betétele? <?include "menu.html"; ?>

Nem fogja feleslegesen minden egyes node-nál -oldalletöltésnél- frissíteni és újra letölteni/betölteni a menüt és a képfájlokat, lassítva ezzel az oldal működését?

Fórum: 
aries képe

Nem, nem jó, erre való a drupal_add_js() és ne a page.tpl.php-be tedd bele, hanem a template.php theme_page() fgv-nyébe.

Aries
http://aries.mindworks.hu

0
0
Anonymous képe

És milyen függvénnyel lehet pl. page.tpl.php-ben felépíteni (megjeleníteni) egy menüt? Ahhoz hasonlóan, ahogy a views_build_view() egy nézetet megjelenít.

0
0
mat323 képe

Aries köszönöm a választ! Nagyon hasznos információ!

Anonymous: alapból tudsz menüt építeni a drupallal nem kell hozzá semmilyen függvény! esetleg próbáld ki a Nice menü vagy a DHTML modulokat.

0
0
pp képe

Az a baj, hogy amit mondasz, abból az jön le, hogy Te egy képekből álló, netán flash menüt szeretnél beszúrni minden egyes oldalba. Ezt megteheted úgy, hogy a page.tpl.php-ba beszúrod. Ezt bárhogyan máshogyan is teszed meg, akkor is lassítani fogja az oldal letöltését, mert le kell tölteni, ugyanis ha nem tölti le a böngésző, akkor nem is tudja megjeleníteni. Egy megfelelően beállított szervernél a flash-t nem kell mindig letöltenie, mert a böngésző be tudja gyorstárazni. (már ha nincs vicces proxy, vagy rendszergazdai beállítás)

Ez a megoldás akkor jó, ha nem változtatod gyakran ezt a menüt, mert ezt csak szerver oldalon lehet megváltoztatni. Ha a menü modul előállított menü blokkját akarod megjeleníteni egy helyen, akkor annak az egyik korrekt módja az, hogy létrehozol egy régiót és abba beleteszed a menü blokkját, majd a régiót megjeleníted a megfelelő helyen és css-ben megformázod.

Amit Aires ír az egy valamilyen dinamukus javascriptes menü, mely korrekt megjelenítési módja lehet amit írt, de igazából egy modult kéne írni hozzá, hogy többször is felhasználható legyen.

Természtesen ha egy nem karbantartható, de működő verziót szeretnél, akkor belegányolhatod a page.tpl.php-ba. (néha csak ez a megoldás jöhet számításba ;)) Mind esetre js-t ne tégy a hedbe.

pp

0
0
Anonymous képe

Jobb oldalra szeretném tenni a navigációs menüt (csak a felhasználók látják), de nem szeretnék a jobb oldali sidebar-ba mást tenni, csak ezért a menüért meg nem szeretém, hogy az egész oldal mentén elvegye a helyet. Pl. vízszintes Google-banner se férne a két sidebar közé. Azon is meglepődtem, hogy a fejléc, lábléc, oldalblokkok táblázatból vannak, nem div-ekből. Táblázatnál pedig nem tudom, meg lehet-e csinálni úgy, hogy a jobb oldali sidebar ne menjen végig a láblécig.
Ezért szeretném a jobb oldali mezőt elhagyni, és egy div-be berakni a navigációs menüt.

"létrehozol egy régiót és abba beleteszed a menü blokkját, majd a régiót megjeleníted a megfelelő helyen" - na ez jó lenne, de én alapból csak a fejléc-lábléc-oldalsó mezőkbe tudom betenni a blokkokat a Drupal adminisztrációs felületéből, és valami erre való kód érdekelne amit page.tpl.php-be be tudnék helyezni.

0
0
crt képe

Szia.

Hozzáadhatsz egyéni régiókat is a sminken belül.
A táblázatokat le tudod cserélni <div> elemekre, kicsit hozzáfaragod a css-t és kész.

Üdv: Zoli

0
0
pp képe

Ez innentől nem Drupal kérdés. Ez itt kérem HTML/CSS kérdés.
Milyen Drupal-t használsz?
Milyen sminket használsz? (a garland nem használ táblázatot pl.)

Tehát Te pusztán azt szeretnéd, hogy ne táblázatos legyen az oldalkialakítás?

Ezért szeretném a jobb oldali mezőt elhagyni, és egy div-be berakni a navigációs menüt.

Hát hagyd el a jobb oldali mezőt, és a tartalmát (a jobb sidebar-t) tedd bele egy div-be. Így két legyet ütsz egy csapásra, eltűnik a jobboldali sáv és megjelenik egy divben egy olyan cucc amibe aztán a webes felületen azt raksz amit akarsz.

pp

0
0
Anonymous képe

Igen, így oldottam meg én is, de köszi!
Amúgy Bluemarine-t használok, az táblázatos. És Drupal 5.x

0
0
csonti képe

a drupal_add_js jó ötletnek tűnik (ha nem szégyen megkérdezni, akkor hogyan kell konkrétan használni? :) de mit csináljon az ember akkor, ha pl. a jquery legújabb verziójára van szükség? Jómagam pl. az ui.jquery -ből az accordiont és a tabs-ot passzíroztam legutóbb a page.tpl.php -be a sec ill. primary links -ek felhasználásával. Nos itt jött a probléma: a Drupal jquery.js-e 1.0 és úgy tűnik, a jquery update modul sem ad megoldást, főleg egy multisite Drupal esetén. Hogyan lehetne mégis egy bizonyos sminknél pl. 1.2.x verziójú jquery-t használni anélkül, hogy a Drupal kis legördülő menüi eltűnnének?

0
0
Illyés Edit képe

JS Tools modulban vannak fülek, lenyíló/felcsukódó blokk, és még egy pár dolog. Lehet, hogy megtalálod benne, ami neked kell.

A drupal_add_js használata template.php-ben, ha a JS fájl is a sminkmappában van:

drupal_add_js('sites/all/themes/sminkneve/fajlneve.js');
0
0
pp képe

  drupal_add_js( drupal_get_path('theme','smikneve') .'/fajneve.js','theme');

Ha több js fájl is van, akkor azokat érdemes egy külön könyvtárban gyűjteni. Ekkor a /fajneve.js helyett a /konyvtar/fajneve.js "formulát" kell használni.

Az esetek 99 százalékában ez a megoldás felesleges, de nem árt megszokni, hátha egyszer egy olyan sminket kell készítenünk, ahol ez számít. Mondjuk egy multisite rendszernél, ahol van x fizetős sminked. Ekkor csak a megfelelő sites/example.com/themes könyvtárba kell bemásolnod a sminket, és nem kell a sminken módosítanod. Azt csak félve mondom, hogy esetleg egy olyan sminket csinálsz, amit meg szeretnél osztani a nagyközönséggel...ja és ha megszokod, akkor ezt modul fejlesztésnél is használhatod.

pp

0
0
csonti képe

Megpróbáltam a fenti két megoldást a javascript beszúrására, de a drupal_add_js nem hajlandó semmiképpen sem beágyazni a kért javascriptet. Nem történik semmi, az oldal forrásában sem jelenik meg, pedig u. azzal az útvonallal adtam meg, mint ahogy az html script parancsában működik is, ill. ahogy a pp írta. Mi okozhatja, hogy nem megy ez a drupal_add_js? Köszi a választ.

0
0
aries képe

A függvénynek a page.tpl.php meghívása előtt kell lefutnia. Nálad ez hogy van?

Aries
http://aries.mindworks.hu

0
0
csonti képe

Sajnos én a page.tpl.php -be próbáltam beírni, így hiába akart, nem tudott előtte lefutni.
Mi fut előtte a sminken belül? A template.php? Köszi a kapaszkodót!

0
0
aries képe

0
0
pp képe

Mi a hiba?

pp
Nyílván egy multisite rendszernél, ha felülírod a misc/jquery.js-t akkor mindenhol be kell kapcsolnod ezt a modult. Vagy szerinted egy 4.7-es Drupalnak működnie kéne akkor, ha felülírod 5.x-el?
Ez az egyik hátránya a multisite-nak, hogy ha upgrade-lesz egyszerre kell csinálnod az összes szájton, tehát addig áll egy szájt, amíg sor nem kerül rá.

pp

0
0
csonti képe

itt vannak hasznos dolgok js, jquery fronton:
http://groups.drupal.org/taxonomy/term/583
csak azért írom, hátha másoknak is jól jön majd.

0
0