絶対パスはInfoファイルで許可されていますか?
-
29-09-2020 - |
質問
モジュール用の.info
ファイルを書き、/sites/all/libraries
にインストールされているスクリプトを含めたい:
だから私は私の.info
ファイルに以下の行を含めました:
scripts[] = /sites/all/libraries/zeroclipboard-2.2.0/dist/ZeroClipboard.js
.
しかしながら、このパスの先頭のスラッシュの有無にかかわらず、常に同じ結果を得ています.Drupalはこれをモジュールディレクトリに対して相対的に扱い、ロードして読み取りに失敗します。
/sites/all/modules/custom/clipboard//sites/all/libraries/zeroclipboard-2.2.0/dist/ZeroClipboard.js?nsnrjh
.
だから私は自分の質問に答えたかもしれませんが、Drupal Docsでこれに対する決定的な答えを見つけることができませんか?
ありがとう、
mb
解決
_system_rebuild_module_data
それ。確認するためだけにコードに全セクションがあります。
// 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);
}
.
My 推測は、モジュール自体がインストールされていない場合、モジュールが存在するとは限らないとは思わない。それはエラーを導入する方法です。また、モジュールが自分のディレクトリの外側に到達できるようにすることも、セキュリティ違反です。
あなたがあなたのモジュールに含めることができないスクリプトが必要な場合は、ライブラリAPI を使用してください。もちろん他の方法がありますが、それらのほとんどは問題があり、すべての問題を修正することは、とにかくこの準備ができたモジュールのクローニングを非常に多くのものになるでしょう。
他のヒント
カスタムモジュールを作成している場合は、これらの関数を使用して、LiraryからライブラリーまたはJSファイルを追加できます。
$info = libraries_load('ui.tabs');
drupal_add_library('system', 'ui.tabs');
. 所属していません drupal.stackexchange