質問

私は 1列レイアウトのCMSページを持っています。ページのメインコンテナの外側のページのタイトルを移動したいのですが。現在の設定は次のとおりです。

<div class="main-container col1-layout">
       <div class="main">
         <div class="page-title">
           <h1>Page Title</h1>
         </div>
           <p>Some content here..</p>               
        </div>
       </div>
 </div>
.

ページタイトル要素はメインコンテナの外側に座っています。これはXMLアップデートを通して行うことができますか?

役に立ちましたか?

解決

単純なレイアウトアップデートXMLではこれを行うことはできません。これを実現する最も簡単な方法は、CMSページに固有の新しいルートテンプレートを作成することです。これについての手順を以下に示します。

1。レイアウト更新XMLファイル

CMS > Pages > [Select your CMS Page] > Design > Layout Update XMLセクションに進みます。このレイアウトの更新コードをそこに置く。

<!-- removing default page heading block -->
<reference name="content">
    <remove name="page_content_heading" />
</reference>

<!-- defines new root template;add new page head block -->
<reference name="root">
    <action method="setTemplate">
        <template>custom/page/cms_1column.phtml</template>
    </action>
     <block type="core/template" name="cms_page_heading" as="cms_page_heading" template="cms/content_heading.phtml"/>
</reference>
.

このコードは基本的に3つのアクションを実行します。

  1. デフォルトのCMSページの見出しブロックをレイアウトから削除します。そのため、CMSページで表示しているデフォルトのタイトルセクションを最終的に削除します。

  2. 新しいルートテンプレート、CMSページのcustom/page/cms_1column.phtmlを定義します。なぜこれが必要なのか説明します。

  3. 再度CMSページの見出しブロックを再定義していますが、今回はrootブロックの内部ではなく、contentブロック内の内部ではありません。

  4. 2。カスタムルートテンプレート

    を定義します

    新しいファイルapp\design\frontend\[package]\[theme]\template\custom/page/cms_1column.phtmlを作成し、そのファイルにapp\design\frontend\[package]\[theme]\template\page/1column.phtmlのすべてのコンテンツをコピーします。その後、このファイル内の見出しブロックをこのファイルの中に呼び出します。

    <div class="wrapper">
        <?php echo $this->getChildHtml('global_notices') ?>
        <div class="page">
            <?php echo $this->getChildHtml('header') ?>
            <?php echo $this->getChildHtml('cms_page_heading') ?>
            <div class="main-container col1-layout">
                <div class="main">
                    ...
    
    .

    <?php echo $this->getChildHtml('cms_page_heading') ?>このパートはCMSページの見出しブロックをレンダリングし、それは layout-div ブロックを上回ります。必要に応じて、必要に応じてCMSページの見出しブロックの位置を調整できます。

    このカスタムCMSページの見出しブロックを追加するためだけに新しいルートテンプレートを使用しています。これはコアファイルの触れを避け、したがってこの場合は最良の解決策になるでしょう。

他のヒント

これは私のXMLを実行することはできません。XML

以下のように
<cms_page translate="label">
        <label>CMS Pages (All)</label>
        <reference name="content">
            <block type="core/template" name="page_content_heading" template="cms/content_heading.phtml"/>
            <block type="page/html_wrapper" name="cms.wrapper" translate="label">
                <label>CMS Content Wrapper</label>
                <action method="setElementClass"><value>std</value></action>
                <block type="cms/page" name="cms_page"/>
            </block>
        </reference>
    </cms_page>
.

CMSページのページタイトルは、Content Area内で呼ばれるcontent_heading.phtmlから来ています。

だからメインコンテナを並べたい場合は、1column.phtmlのように状態を付けることができます

<?php if(Mage::app()->getRequest()->getRouteName() === 'cms' && $this->getContentHeading()):?>
    <div class="page-title">
        <h1><?php echo $this->getContentHeading(); ?></h1>
    </div>
<?php endif; ?>
.

または良い方法は、CMSページ用の独自のルートファイルを設定して、そのファイルの変更を必要に応じて設定できます。

CMSページの新しいレイアウトの手順に従うことができますこちら

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top