5

ルート テンプレートを 2columns-right.phtml から 1column.phtml に設定したいので、onepage/checkout/success ページに問題があります。問題ないはず...

base-theme と custom-theme を含むデフォルトのパッケージを取得しました。

  • フロントエンド/ベース/デフォルト/
  • フロントエンド/デフォルト/カスタム/

最初に、local.xml のテンプレートを変更しようとしました

フロントエンド/デフォルト/カスタム/レイアウト/local.xml

<layout>
...
<checkout_onepage_success>
        <reference name="root">
            <action method="setTemplate"><template>page/1column.phtml</template></action>
        </reference>
</checkout_onepage_success>
...
</layout>

効果なし。

次に、カスタム checkout.xml (上記と同じ) を使用しようとしましたが、何の効果もありませんでした。また、base/default/layout/checkout.xml の内容全体をコピーして、テンプレート ファイルのみを変更しても効果はありません。

すべてのキャッシュをクリーンアップ/無効にし、すべての非標準プラグインをアンインストールしました。

Magento は V.1.7.0.2 です。

何か案は?

--

/base/default/layout/checkout.xml=> 2columns-left.phtml

/default/custom/layout/checkout.xml=> 1column.phtml

フロントエンド/ブラウザ => 2columns-right.phtml

4

1 に答える 1

8

クリスチャン、あなたは自分で言った、パッケージとテーマは「デフォルト構成」スコープに設定されています。ファイルを /default/custom/layout/ に配置すると、ファイルは別のテンプレート フォルダーに配置されます。次の 2 つ (3 つ) のいずれかを行うことができます。

デザイン設定の変更

System > Configuration > Design > Themesで、TemplatesSkin、およびLayout"custom"に設定します。

キャッシュを更新すると、フォルダー /design/frontend/default/custom/... の使用が開始されます。

デフォルト/デフォルトのテーマ パッケージを使用

デフォルトのテーマを編集するだけです。ファイルを「ベース/デフォルト」から「デフォルト/デフォルト」にコピーして、ファイルを上書きしないように設定してから、ファイルを「デフォルト/カスタム」から移動してデフォルトフォルダに上書きすることができます。

注:これで問題は解決しますが、一般的にはお勧めしません。(読み続けてください; D)

デザイン設定を変更して local.xml を使用する

上記のように構成を変更します。現在、Magento でレイアウトを変更する最も受け入れられている方法は、local.xmlを使用することです。これは、Default/Custom/Layout/フォルダーにあります。この 1 つのファイルですべてのレイアウトの更新が行われ、その過程でコア ファイルに触れる必要はありません。

基本ファイルを直接編集するわけではないため、慣れ親しんでいるいくつかのことを変更する必要があります。local.xml は最後にロードされるため、ここで行った調整は上書きされません。目的を達成するために、local.xml は次のように開始される場合があります。

local.xml

<?xml version="1.0"?>

<layout version="0.1.0">

    <checkout_onepage_success>
        <reference name="root">
            <action method="setTemplate">
                <template>page/1column.phtml</template>
            </action>
        </reference>
    </checkout_onepage_success>

    <checkout_onepage_failure>
        <reference name="root">
            <action method="setTemplate">
                <template>page/1column.phtml</template>
            </action>
        </reference>
    </checkout_onepage_failure>

</layout>

物事を削除する方法を調整する必要がありますが、コメントアウト、削除、または行の移動ほど単純ではありません。

ブロックを完全に削除する

ブロックを削除するには、そのブロック名 (または as="") を取得し、適切な参照に以下のコードを挿入します。

<remove name="left.permanent.callout" />

ブロックを別の場所に移動する

ブロックの移動には 2 つの部分があります。最初に、含まれている参照でsetChild をunsetChildし、新しい場所にブロックを挿入する必要があります。例えば:

<reference name="left">
    <action method="insert">
        <!-- Name of Block -->
        <blockName>right.poll</blockName>
        <!-- Name of Adjacent Block -->
        <siblingName>left.newsletter<siblingName>
        <!-- Does it Come Before(0)? Or After(1)? Adjacent Block  -->
        <after>0</after>
    </action>
</reference>

<reference name="right">
    <action method="unsetChild">
        <name>right.poll</name>
    </action>
</reference>

注:ここで、0は通常、phtml ファイルにecho $this->getChildHtml('')が含まれているブロックにのみ適用されます。これは、xml にリストされているように、参照されているすべての子ブロックをロードしていることを意味します。

また、ブロック名を使用して同じ関数を使用するファイル (例: getChildHtml('top_links') ) では、通常、そのテンプレート ファイルをデザイン (Default/Custom/Template/) に複製し、手動でecho $this-を追加する必要があります。 >getChildHtml('your_block_name')ブロックを表示したい場所 (local.xml に配置した後)。

これで始められるはずです。オンラインにはたくさんの優れた記事があり、スタック オーバーフローも情報を得るのに適した場所です。

于 2013-08-02T17:15:55.250 に答える