2011-12-20 15 views
0

私はdrupal 7サイトで作業しており、これには非常に新しいです。残りのサイトとは完全に別のホームページを作成する必要があります。私は頭部がすべてのスクリプトがロードされるhtml.tpl.phpファイルに組み込まれていることに気付きました。私はむしろフロントページでのみ使用されるサイトの残りの部分にスクリプトをロードしません。また、私はdrupalがスクリプトの最後にいくつかのコードを追加して無用にしていることを発見しました。ここで起こっているとどのように? おかげフロントページ用に別のjsファイル

答えて

2

ちょうど2つの点を追加するだけです:

ホームページを集約したい場合は、スタイルシートを手動でテンプレートファイルに追加しないでください。

/** 
* Implements hook_preprocess_page(). 
*/ 
function MYMODULE_preprocess_page(&$vars) { 
    if ($vars['is_front']) { 
    $path = drupal_get_path('module', 'MYMODULE'); 
    drupal_add_js($path . '/MYMODULE1.js'); 
    drupal_add_js($path . '/MYMODULE2.js'); 
    $vars['scripts'] = drupal_get_js(); 
    } 
} 

また、Drupalは役に立たない、それをレンダリング私のスクリプトの最後にいくつかのコードを追加することに、私を発見した:あなたはこのようなものは、hook_preprocess_page()でそれらを追加することができます。役に立たないスクリプトをレンダリングするべきではありません

/js/image_scale.js?lwhgie」

drupal_get_js()のコメントから:ダミーのクエリ文字列をファイル名に追加され

、 browser-cachingを制御します。 URLが変更されたため、ブラウザにファイルの新しいコピーをロードするように強制します(drupal_add_js()を参照)。 get tiすべての ページリクエストにリロードを強制するために、代わりにquery-stringとしてme()を使用します。

+0

私はこの解決策を試みます。 MYMODULEとモジュールとは何ですか? MYMODULE1.jsが追加したいjsファイルであることがわかります。これらの変数の違いは何ですか? – EZDC

+0

私はcssファイルでこれを行うことができますか? – EZDC

+0

私は少しテストを行い、jqueryライブラリを.infoファイルに追加して、スクリプトが動作することを確認しました。何故ですか? jqueryはdrupalの標準でできると思った...? – EZDC

0

をこれのよりよい制御を取得し、あなたのテーマフォルダにpage--front.tpl.phpと呼ばれる新しいテンプレートを作成することができない何

/js/image_scale.js?lwhgie」

とあなたのホームページのテンプレートになるでしょう。あなたが望むHTMLマークアップを追加/削除することができます。詳細はこちらhttp://drupal.org/node/1089656また、hook_preprocess_page()を使用してカスタムテンプレートファイルを使用するようにDrupalに指示することができます。template.phpファイルあなたのテーマフォルダにあります。先に投稿したリンクのコメントを参照してください。

+0

私はpage - front.tpl.phpテンプレートファイルを使用していますが、私もパネルを使用しています。そのことが問題なのかどうかは分かりませんが、私は前処理機能を動作させるのに問題があります。 – EZDC

関連する問題