2011-12-20 57 views
0

我正在一個drupal 7網站上工作,對此我很陌生。我需要從網站的其他部分創建一個完全獨立的主頁。我注意到頭部是在所有腳本加載的html.tpl.php文件中構建的。我寧願不將腳本加載到只在首頁上使用的網站的其他部分。另外我發現drupal在我的腳本的末尾添加了一些代碼,使其無用。首頁單獨的js文件

/js/image_scale.js?lwhgie」

這到底是怎麼回事,怎麼辦得到這更好的控制? 感謝

回答

2

只需添加幾點:

如果您想要聚合您的主頁JS(您可能會也可能不會),那麼您不應該將樣式表手動添加到模板文件。您可以在hook_preprocess_page()添加它們,像這樣:

/** 
* 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的添加一些代碼,以我的腳本使之無用結束。

/js/image_scale.js?lwhgie」

這不應該使你的腳本無用從drupal_get_js()評論:

一個虛擬的查詢字符串添加到文件名,以獲得對瀏覽器緩存的控制權,該字符串在每次更新或全緩存更新時都會發生變化,因爲 URL已更改,因此強制瀏覽器加載文件的新副本。 get ti我()作爲查詢字符串,而不是強制重新加載每個 頁面請求。

+0

我會嘗試這個解決方案。什麼是MYMODULE和模塊...?我可以看到MYMODULE1.js是我想添加的js文件。這些變量之間有什麼區別。 – EZDC 2011-12-20 18:26:41

+0

我可以用css文件做這個嗎? – EZDC 2011-12-20 18:37:06

+0

我做了一些測試,並通過.info文件添加了jquery庫,發現我的腳本開始工作。這是爲什麼?我認爲jQuery可以用Drupal標準...? – EZDC 2011-12-20 18:43:13

0

你可以創建一個在你的主題文件夾,名爲page--front.tpl.php新的模板和這將成爲您的主頁模板,現在您可以添加/刪除任何您想要的html標記。更多信息請看這裏:http://drupal.org/node/1089656。此外,您可以「告訴」drupal使用您的自定義模板文件hook_preprocess_page()template.php文件在您的主題文件夾中。請參閱我之前發佈的鏈接上的評論

+0

我正在使用頁面 - front.tpl.php模板文件,但我也使用面板。不知道這是否重要,但我無法使預處理功能正常工作。 – EZDC 2011-12-20 18:45:07

相關問題