drupal_add_js hova?

makgab képe

Üdv!

Adott a drupal_add_js(), ami gmap keresést hajt végre egy div-ben.
Ezt a fv-t hova érdemes tenni? Az adott modul .inc fájlájának elejére v. inkább a .info fájlba "globálisan"?

Vagy csak az adott form létrehozó/megjelenítő függvénybe tegyem a drupal_add_js() fv-t, ahol szükség van rá?

Melyik lenne jó?

Drupal verzió: 
Sweetchuck képe

Modul *.info fájlban nem tudsz JS-t és CSS-t hozzáadni. Ez a funkció csak sminkekhez tartozó info fájlokban működik.

drupal_add_js() és drupal_add_css() használatát kerülni kell.

Keress a környéken egy "render array"-t (form_alter, page_alter, block_view_alter)
és ott használd ezt http://api.drupal.org/api/drupal/developer%21topics%21forms_api_referenc...

0
0
makgab képe



Erre gondoltam:

# mymodule.info
// ...
scripts[] = js/myscript.js

De akkor valahogy így kellene használnom, ha jól olvasom:

$form['#attached']['js'] = array(
drupal_get_path('module', 'ajax_example') . '/ajax_example.js',
);
 
// vagy
 
$form['#attached']['js'] = array(
  drupal_get_path('module', 'ajax_example') . '/ajax_example.js' => array(
  'type' => 'file',
  ),
);
0
0
Sweetchuck képe

Ezzel  $form['#attached']['js'] = array(...); teljesen felülvágod
azt ami eddig benne volt a tömbben. Legtöbb esetben *_form_alter() környezetben nem ez elvárt megoldás.

Inkább ezt javaslom:
 $form['#attached']['js'][] = 'path/to/my.js';

2
0
makgab képe

Ok, kösz.

0
0
makgab képe

Így működik, mert hiányolja a 'data' indexet:

$form['#attached']['js'][] = array(
  'data' => drupal_get_path('module', 'ajax_example') . '/ajax_example.js',
  'type' => 'file'
);
0
0
makgab képe

A drupal_add_js() ill. drupal_add_css() fv-eket hol célszerű használni?
Vagy egyáltalán nem ajánlott?

0
0