Javascript betöltési sorrend felülbírálása

scorchio képe

Sziasztok,

van itt ez a Plupload Integration nevű modul, ami egy elég csinos bulk uploadert alkot az oldalba, amit csinálok épp. Szeretném honosítani, amihez be kéne töltenem egy .js-t a modul által betöltött .js-ek után.

Csináltam erre a célra egy mini-modult, ami be is tölti a .js-t. Hiába adtam viszont nagyobb súlyt a modulomnak, mint a Plupload-é, nem kerül "eléggé hátra" az a .js, amit betöltök vele.

[Próbálkoztam már plupload súly + 100-zal is, nem kerül a plupload .js-ei mögé, akárhogy állítgatom.]

Mit gondoltok, mit lehetne kezdeni vele? Modulok között a modul súlyán kívül befolyásolja még valami a betöltési sorrendet?

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
Den képe

Próbáld ki a cache törlését a modulok sorrend állítása után.

0
0
scorchio képe

...a cache-t már egy párszor, de nem igazán akaródzik neki reagálni erre. Az a legviccesebb, hogy a nyelvet behozó .js minden más .js után kerül be, de a plupload .js-ei előtt...!

0
0

Adamek Zoltán aka Scorchio | http://zoltanadamek.com

Den képe

Mi lenne, ha a theme-be tennéd a te js-ed?

0
0
scorchio képe

Könnyen lehet, hogy működne, csak pont ezt szeretném elkerülni. Nem akarom olyan kóddal "piszkítani" a témámat, aminek elvileg semmi köze nem kéne, hogy legyen hozzá. (Ha ez a cucc működik, előszeretettel használnám fel később több oldalon is, semmi kedvem 4-5 témánál egyesével belőni egy olyan honosítást, amire lehet, hogy egy-két modulverzió múlva nem is lesz szükség. Ki tudja, milyen hiba adódhatna majd ebből...) Főleg azért nem, mert egyáltalán nem értem, hogy miért kerülnek pont oda azok a .js-ek...

(Indítottam egy issue-t a modulnál is erről, több szem többet lát alapon.)

0
0

Adamek Zoltán aka Scorchio | http://zoltanadamek.com

pp képe

Hogyan adod hozzá?
Hogyan adja hozzá a modul?

Nem lehet, hogy Te $type='module'-kén adod hozzá a modul pedig $type='theme'-ként? Mert akkor mindig előrébb fog kerülni a tied mint az modulé.

$scope-nál footer-t adsz meg az segít?

Ha a fentiek nem hoznak megoldást, akkor írnod kell a modulodba egy page_preprocest, ami
1. drupal_add_js() függvénnyel lekéri a js-eket tartalmazó tömböt.
2. átrendezed ahogy kell
3. drupal_get_js() és a tömb segítségével felülírod a $scripts változót.

Persze, ez is csak akkor megy majd, ha a smink nem vágja ezt felül. :)

Azt sejtem azonban, hogy valami nagy gyász lehet, mert fordítani js-t nem így kéne, hanem a fordítási felületen és a sorrendtől se kéne függnie a fordításnak.

pp

0
0
scorchio képe

A modul is, meg én is $type='module'-ként adjuk hozzá a js-eket. Úgy, hogy az enyémnek adtam egy $scope = 'footer'-t, már működik is a dolog. Amúgy érdemes megnézni, hogy mi történik, valami callback-es történet van:

/**
 * Page callback for the bulk uploader.
 */
function plupload_upload_page($options = array()) {
  $path = drupal_get_path('module', 'plupload');
  drupal_add_js($path . '/plupload/src/javascript/plupload.js');
  drupal_add_js($path . '/plupload/src/javascript/plupload.html5.js');
  drupal_add_js($path . '/plupload/src/javascript/jquery.plupload.queue.js');
  drupal_add_js($path . '/plupload/src/javascript/plupload.flash.js');
  drupal_add_css($path .'/plupload/examples/css/plupload.queue.css');
</code> 
stb.

Igazad van, hogy valami nagy gyász van, szerintem az a modul, ami ezt az uploadert integrálja, egyáltalán nem is foglalkozik azzal, hogy akár fordításokat is kéne tudnia használni...

Ez a $scope-os megoldás így működik, csak még egy picit tovább kéne fejleszteni, hogy csak akkor adja hozzá a .js-t, amikor ténylegesen kell is (mert mondani sem kell, most minden oldalon megjelenik, ott is, ahol az uploader nem...) Van valami ötletetek, hogy ezt hogy lehetne?

Szerk.:
Köszönöm a segítséged István, végülis a page_preprocess lett a legjobb megoldás. Egy kicsit kellett kutakodnom, hogy mégis hogyan működik az, amit javasoltál, de miután betettem a modulomba, már azt is egyszerűen meg tudtam oldani, hogy csak akkor kerüljön be az új .js, amikor kell - és nem kell $scope = 'footer' sem. Perfekt :)

0
0

Adamek Zoltán aka Scorchio | http://zoltanadamek.com