2011-06-29 7 views
3

私のレイアウトxmlを最適化し、繰り返しを取り除く助けが必要です。 私のモジュールのいくつかのページでは、jsファイルをインクルードしています。 ここに私のモジュールレイアウトXMLの内容です:マゼンタレイアウトで選択したページにJSとCSSを含める

<layout version="0.1.0"> 
<catalog_product_view> 
    <reference name="head"> 
     <!-- jQuery(compatibility mode) and jQuery UI --> 
     <action method="addJs"><script>jquery/jquery-1.6.1.js</script></action> 
     <action method="addJs"><script>jquery/jquery-ui-1.8.13.js</script></action> 
     <action method="addCss"><script>css/ui_themes.1.8.13/smoothness/jquery-ui.css</script></action> 
     <!-- Other Libraries --> 
     <action method="addJs"><script>myreviews/quickpager.jquery.js</script></action> 
     <!-- Custom Libraries --> 
     <action method="addJs"><script>myreviews/functions.js</script></action> 
     <action method="addJs"><script>myreviews/popup.js</script></action> 
     <action method="addCss"><script>css/myreviews.css</script></action> 
    </reference> 
    <reference name="content"> 
     <block type="myreviews/view" name="myreviews.view" template="myreviews/view.phtml" /> 
    </reference> 
</catalog_product_view> 
<myreviews_form_additional> 
    <reference name="head"> 
     <!-- jQuery(compatibility mode) and jQuery UI --> 
     <action method="addJs"><script>jquery/jquery-1.6.1.js</script></action> 
     <action method="addJs"><script>jquery/jquery-ui-1.8.13.js</script></action> 
     <!-- Custom Libraries --> 
     <action method="addCss"><script>css/myreviews.css</script></action> 
    </reference> 
    <reference name="content"> 
     <block type="myreviews/form" name="myreviews.form_additional" template="myreviews/form_additional.phtml" /> 
    </reference> 
</myreviews_form_additional> 
<myreviews_form_confirm> 
    <reference name="head"> 
     <action method="addCss"><script>css/myreviews.css</script></action> 
    </reference> 
    <reference name="content"> 
     <block type="myreviews/form" name="myreviews.form_confirm" template="myreviews/form_confirm.phtml" /> 
    </reference> 
</myreviews_form_confirm> 

それはすべてが働いていますが、ヘッド基準の同じ個展に出せるを繰り返さないようにする方法はありますか? 多分、すべてのjsとcssインクルードを書く方法が別々のハンドルであり、それを私のページで実行させるのですか?

ありがとうございました。

答えて

6

うん、ハンドルは行く方法です。例:

レイアウトファイルで、このどこかを定義します。

... 
<myreviews_form_base translate="label"> 
    <label>Base layout handle for MyReviews</label> 
    <reference name="head"> 
     <action method="addJs"><script>jquery/jquery-1.6.1.js</script></action> 
     <action method="addJs"><script>jquery/jquery-ui-1.8.13.js</script></action> 
     <action method="addCss"><script>css/myreviews.css</script></action> 
    </reference> 
</myreviews_form_base> 

その後、あなたは適切な場所にこのハンドルを使用することができます。

... 
<catalog_product_view> 
    <update handle="myreviews_form_base"/> 
    ...other stuff... 
</catalog_product_view> 

これはmyreviews_form_baseハンドルに含まれるすべてのアクションを適用しますハンドルcatalog_product_viewに移動します。

+0

魅力的な作品!ありがとう。 – grisevg

関連する問題