Question

Je suis en train d'écrire un .info fichier pour un module, et je veux inclure un script qui a été installé dans /sites/all/libraries:

J'ai donc inclus la ligne ci-dessous dans mon .info fichier:

scripts[] = /sites/all/libraries/zeroclipboard-2.2.0/dist/ZeroClipboard.js

Cependant, avec ou sans le slash sur ce chemin, j'ai toujours le même résultat:Drupal traite de ce que par rapport au répertoire du module et de la tente et ne parvient pas à charger

/sites/all/modules/custom/clipboard//sites/all/libraries/zeroclipboard-2.2.0/dist/ZeroClipboard.js?nsnrjh

Alors peut-être que j'ai répondu à ma propre question, mais je ne trouve pas de réponse définitive à cette question dans le Drupal docs?

Merci à tous,

MO

Était-ce utile?

La solution

_system_rebuild_module_data est responsable de cela.Il y a toute une section dans le code juste pour s'assurer que:

// Prefix stylesheets and scripts with module path.
$path = dirname($module->uri);
if (isset($module->info ['stylesheets'])) {
  $module->info ['stylesheets'] = _system_info_add_path($module->info ['stylesheets'], $path);
}
if (isset($module->info ['scripts'])) {
  $module->info ['scripts'] = _system_info_add_path($module->info ['scripts'], $path);
}

Mon deviner c'est que le module ne doit jamais supposer que quelque chose n'existe que si le module lui-même ne l'installez pas.C'est une façon d'introduire des erreurs.Aussi, permettant de modules à l'extérieur de leur répertoire pourrait être une violation de la sécurité.

Si vous avez besoin d'un script, vous ne pouvez pas inclure dans votre module, utilisez Les bibliothèques d'API.Bien sûr, il ya d'autres façons, mais la plupart d'entre eux est problématique, et la fixation de tous les problèmes assez grand résultat dans le clonage de ce module de prêt de toute façon.

Autres conseils

Si vous êtes à la création de modules personnalisés vous pouvez ensuite utiliser ces fonctions pour ajouter de la bibliothèque ou le js de lirary.

$info = libraries_load('ui.tabs');
drupal_add_library('system', 'ui.tabs');
Licencié sous: CC-BY-SA avec attribution
Non affilié à drupal.stackexchange
scroll top