タグ付けされた質問 「layout」

最終的にテンプレートファイルをレンダリングするブロック階層を定義するために使用されるxmlファイルを示します。

2
レイアウトlocal.xmlとモジュールレイアウト
私は最近local.xml、レイアウトの遊び場としてを使用し始めました。理由があるので、使用することに疑問を感じる前に... 私はそれが利点であることを理解しましたが、今はレンガの壁にぶつかりました。 デフォルトのcatalog.xmlレイアウトファイルには、特定のブロックがあります(名前は重要ではありません)。を使用して、layout.xml他のブロックを配置したい場所に汎用の子ブロックを追加しました。 <reference name="not.important"> <block type="core/text_list" name="extra.left.menu" as="extra" /> </reference> ここまでは順調ですね。 しかし、今、私は上記で宣言されたものに子ブロックを追加する必要がある拡張機能を1つ持っています。 この新しいブロックを使用local.xmlすると、うまく機能します。 <block type="core/text_list" name="extra.left.menu" as="extra"> <block type="myextension/some_block" template="some/template.phtml" as="some_name" name="some_name" /> </block> ただしlocal.xml、この新しい拡張機能は将来的に無効になる可能性があるため、経由する必要はありません。私は経由でそれを行う場合はlocal.xml、拡張子を無効ブロックはもう存在しないので、それは私のログファイルをフラッディングします。 だから私の拡張レイアウトファイルにこれを追加します: <reference name="extra.left.menu"> <block type="myextension/some_block" template="some/template.phtml" as="some_name" name="some_name" /> </reference> しかし、この方法では機能しません。これは、local.xmlファイルが最後にロードされたために発生し、モジュールの依存関係を追加できないため、拡張レイアウトファイルがの後にロードされるためと考えられlayout.xmlます。 これにどのように取り組むべきですか?私は何か間違ったことをしましたか? または、このようにしたい場合catalog.xmlは、テーマにクローンの「古き良き方法」を使用し、この新しいブロックをテーマに追加する必要がcatalog.xmlありますか?

3
カスタムオプションコンテナーを上書き/置き換える正しい方法は何ですか?
バックグラウンド 特定の製品で利用可能なオプションに関連/影響を与えるいくつかのカスタムエンティティを作成するモジュールを開発しています。仕組みは次のとおりです。 製品が読み込まれると、製品の2つの属性を使用してカスタムエンティティに対してクエリが実行されます。 クエリの結果を使用して、次のように2段階で表示します(顧客の最初の選択は、2番目の選択肢に影響します)。 チャレンジ これが私がフロントエンドで達成する必要があると知っていることです: 1. Product view.phtmlの2つのロジックをオーバーライドします。 - - 最初: <form action="<?php echo $this->getSubmitUrl($_product) ?>" method="post" id="product_addtocart_form"<?php if($_product->getOptions()): ?> enctype="multipart/form-data"<?php endif; ?>> ...がである場合にenctype="multipart/form-data"のみ追加され、私の製品には実際に$_product->getOptions()は追加されないことに気づくでしょうtrue(これによりが返されますfalse) --- 2番目: <?php if ($_product->isSaleable() && $this->hasOptions()):?> <?php echo $this->getChildChildHtml('container1', '', true, true) ?> <?php endif;?> ...また、私の製品には実際にはカスタムオプションがないため、$this->hasOptions()戻りfalse、container1のレンダリングが妨げられます。 2.以下に示す ように、 'container1'-カスタムオプションのhtmlを「含む」子ブロック(ブロックですか?)を置換/上書き/上書きします。 view.phtml直接コピーして編集することはこれを行う正しい方法ではないと主張するいくつかの投稿を読みましたが、代替手段は何ですか? 第二に、私が読んだIすることができますいずれかremoveまたは作品-私が使用する必要があり、その後、どのように私は正しく自分に置き換えてください方法?unSetcontainer1container1 どうもありがとうございました!

2
削除された左側のブロックを再度追加します
Magento 1.9 CEを実行しています。 ベースから削除された後、左のブロックを再度追加しようとしています。 base / default / layout / storelocator.xml: <dealers_index_index translate="label"> <update handle="storelocator_index_index"/> <label>Store Locator</label> <remove name="right"/> <remove name="left"/> ... jason / default / layout / local.xml: <dealers_index_index translate="label"> <reference name="root"> <action method="setTemplate"><template>page/2columns-left.phtml</template></action> </reference> <reference name="left"/> </dealers_index_index> 顧客のロギングなどに応じて変更されるため、左の要素を明示的に設定する必要なく、単に左を再追加することを望んでいました。 addまたはresetコマンドはありますか?

2
コントローラーにすべての子ブロックをロードする方法
カートに追加するためにAjaxを使用しているため、カートのサイドバーを更新する必要があります。 このコードをコントローラーで試して、ブロックをレンダリングしました。 Mage::app()->getLayout()->getBlockSingleton('page/html')->setTemplate("page/html/upper.phtml")->toHtml(); ただし、親ブロックはレンダリングされ、子ブロックはレンダリングされません。 そしてレイアウトファイルは <block type="core/text_list" name="upper" as="upper" template="page/html/upper.phtml"> <block type="checkout/cart" name="top.cart" as="cart_overview"> <action method="setCartTemplate"><value>checkout/topcart.phtml</value></action> <action method="setEmptyTemplate"><value>checkout/cart/cartEmpty.phtml</value></action> <action method="chooseTemplate"/> <action method="addItemRender"><type>simple</type><block>checkout/cart_item_renderer</block><template>checkout/cart/sidebar/default.phtml</template></action> <action method="addItemRender"><type>grouped</type><block>checkout/cart_item_renderer_grouped</block><template>checkout/cart/sidebar/default.phtml</template></action> <action method="addItemRender"><type>configurable</type><block>checkout/cart_item_renderer_configurable</block><template>checkout/cart/sidebar/default.phtml</template></action> </block> </block> コントローラーで子ブロックをレンダリングする方法 手伝ってください。
7 blocks  layout  ajax  render 

4
local.xmlを介してブレッドクラムブロックを純粋に移動する
純粋にを使用してブレッドクラムブロックを移動したいlocal.xml。 出力するには、デフォルトの場所からコンテンツブロックに移動する必要があります。 通常、私は希望のブロックを移動するときunsetChild、その後insert、しかし、これは、ブレッドクラムブロックを作っているように見える二回ともその実際にはどこにでも移動していません。 <reference name="root"> <action method="unsetChild"><name>breadcrumbs</name></action> <reference name="content"> <action method="insert"><child>breadcrumbs</child></action> </reference> </reference>
7 layout 

2
Magento Core:1つのハンドルで同一のブロック名
「persistent.remember.me」というブロック名のテンプレートを変更したいのですが、同じハンドルの下に同じ名前の2つのブロックがあります。 app / design / frontend / base / default / layout / persistent.xml <checkout_onepage_index> <reference name="checkout.onepage.login"> <action method="setTemplate"><template>persistent/checkout/onepage/login.phtml</template></action> <block type="persistent/form_remember" name="persistent.remember.me" template="persistent/remember_me.phtml" /> </reference> <reference name="checkout.onepage.billing"> <action method="setTemplate"><template>persistent/checkout/onepage/billing.phtml</template></action> <block type="persistent/form_remember" name="persistent.remember.me" template="persistent/remember_me.phtml" /> <block type="core/template" name="persistent.remember.me.tooltip" template="persistent/remember_me_tooltip.phtml" /> </reference> </checkout_onepage_index> 次の内容でlocal.xmlを作成しました。 app / design / frontend / mytheme / …
7 layout  blocks 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.