0

私はこの問題をマグネトフォーラムに投稿しましたが、2週間何も群れがなかったので、ここに投稿して、もう少し洞察を得ることを願っています

「フォーラムを調べて、1つの製品のビューを変更する方法を検討してきました。フォーラムで、ビューを好きなように変更できる良い投稿を見つけましたが、私のページは2つの別々のファイルから作成されているようです。 1つはapp/design / frontend / base / default / template / catalog / productのview.phtmlと呼ばれ、もう1つは同じパスのさらに2つのディレクトリview /type/のすぐ下にあるdefault.phtmlと呼ばれます。変更する必要のあるコードはデフォルトです.phtmlですが、それを実行して、ページの残りの半分またはview.phtml部分の表示を停止するように設定すると表示されます。

使ってます ....

<reference name="product.info">
<action method="setTemplate">              
<template>catalog/product/view/type/default1.phtml</template></action>
</reference>

...バックエンドの製品のカスタムレイアウトセクション。ただし、これはページのサイズ設定セクションのみを示しており、名前/説明/画像の魔女はview.phtmlによって出力されません。

では、view.phtmlを取得して新しいdefault1.phtmlを表示するにはどうすればよいですか?

そして私が試してみると.....

<reference name="product.info">
<action method="setTemplate"> 
<template>catalog/product/view.phtml</template>
</action>
</reference>

動作しますが、サイズセクションにdefault1.phtmlが表示されません。これはすべて、男性用と女性用の2つの異なるサイズのグラフを表示する必要があるためです。mysteryhousecostumes.netにアクセスし、レディース製品、次にメンズに移動すると、私の問題を確認できます。メンズ製品は引き続きレディースサイズチャートにリンクしています。

view.phtmlを修正して、defaultではなくdefault1にリンクするにはどうすればよいですか?複製のview.phtmlを作成する必要があることに気付きましたが、ここにある2つのファイル間の接続が私のview.phtmlであることがわかりません…

<?php $_helper = $this->helper('catalog/output'); ?>
<?php $_product = $this->getProduct(); ?>
<script type="text/javascript">
var optionsPrice = new Product.OptionsPrice(<?php echo $this->getJsonConfig() ?>);
</script>
<div id="messages_product_view"><?php echo $this->getMessagesBlock()->getGroupedHtml() ?>    </div>
<div class="product-view">
<div class="product-essential">
<form action="<?php echo $this->getSubmitUrl($_product) ?>" method="post" id="product_addtocart_form"<?php if($_product->getOptions()): ?> enctype="multipart/form-data"<?php endif; ?>>
    <div class="no-display">
        <input type="hidden" name="product" value="<?php echo $_product->getId() ?>" />
        <input type="hidden" name="related_product" id="related-products-field" value="" />
    </div>

    <div class="product-shop">
        <div class="product-name">
            <h1><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></h1>
        </div>

        <?php if ($this->canEmailToFriend()): ?>
            <p class="email-friend"><a href="<?php echo $this->helper('catalog/product')->getEmailToFriendUrl($_product) ?>"><?php echo $this->__('Email to a Friend') ?></a></p>
        <?php endif; ?>

        <?php echo $this->getReviewsSummaryHtml($_product, false, true)?>
        <?php echo $this->getChildHtml('alert_urls') ?>
        <?php echo $this->getChildHtml('product_type_data') ?>
        <?php echo $this->getTierPriceHtml() ?>
        <?php echo $this->getChildHtml('extrahint') ?>

        <?php if (!$this->hasOptions()):?>
            <div class="add-to-box">
                <?php if($_product->isSaleable()): ?>
                    <?php echo $this->getChildHtml('addtocart') ?>
                    <?php if( $this->helper('wishlist')->isAllow() || $_compareUrl=$this->helper('catalog/product_compare')->getAddUrl($_product)): ?>
                        <span class="or"><?php echo $this->__('OR') ?></span>
                    <?php endif; ?>
                <?php endif; ?>
                <?php echo $this->getChildHtml('addto') ?>
            </div>
            <?php echo $this->getChildHtml('extra_buttons') ?>
        <?php endif; ?>

        <?php if ($_product->getShortDescription()):?>
            <div class="short-description">
                <h2><?php echo $this->__('Quick Overview') ?></h2>
                <div class="std"><?php echo $_helper->productAttribute($_product, nl2br($_product->getShortDescription()), 'short_description') ?></div>
            </div>
        <?php endif;?>

        <?php echo $this->getChildHtml('other');?>

        <?php if ($_product->isSaleable() && $this->hasOptions()):?>
            <?php echo $this->getChildChildHtml('container1', '', true, true) ?>
        <?php endif;?>

    </div>

    <div class="product-img-box">
        <?php echo $this->getChildHtml('media') ?>
    </div>

    <div class="clearer"></div>
    <?php if ($_product->isSaleable() && $this->hasOptions()):?>
        <?php echo $this->getChildChildHtml('container2', '', true, true) ?>
    <?php endif;?>
</form>
<script type="text/javascript">
//<![CDATA[
    var productAddToCartForm = new VarienForm('product_addtocart_form');
    productAddToCartForm.submit = function(button, url) {
        if (this.validator.validate()) {
            var form = this.form;
            var oldUrl = form.action;

            if (url) {
               form.action = url;
            }
            var e = null;
            try {
                this.form.submit();
            } catch (e) {
            }
            this.form.action = oldUrl;
            if (e) {
                throw e;
            }

            if (button && button != 'undefined') {
                button.disabled = true;
            }
        }
    }.bind(productAddToCartForm);

    productAddToCartForm.submitLight = function(button, url){
        if(this.validator) {
            var nv = Validation.methods;
            delete Validation.methods['required-entry'];
            delete Validation.methods['validate-one-required'];
            delete Validation.methods['validate-one-required-by-name'];
            if (this.validator.validate()) {
                if (url) {
                    this.form.action = url;
                }
                this.form.submit();
            }
            Object.extend(Validation.methods, nv);
        }
    }.bind(productAddToCartForm);
//]]>
</script>
</div>

<div class="product-collateral">
<?php foreach ($this->getChildGroup('detailed_info', 'getChildHtml') as $alias => $html):?>
    <div class="box-collateral <?php echo "box-{$alias}"?>">
        <?php if ($title = $this->getChildData($alias, 'title')):?>
        <h2><?php echo $this->escapeHtml($title); ?></h2>
        <?php endif;?>
        <?php echo $html; ?>
    </div>
<?php endforeach;?>
    <?php echo $this->getChildHtml('upsell_products') ?>
    <?php echo $this->getChildHtml('product_additional_data') ?>
</div>

4

3 に答える 3

1

「デバッグモード」を有効にすることで、どのページでどのブロックが使用されているかを見つけるのに役立つ可能性があります。これを有効にするには、管理パネルに移動して[システム]-> [構成]に移動し、左側のナビゲーションで[現在の構成スコープ]を[デフォルトの構成]から[your-stores-nameWebストア]に切り替えます。

ページが自動更新され、[詳細]セクションの左ナビゲーションの下部にある[開発者]をクリックし、アコーディオンの[デバッグ]セクションに[テンプレートパスのヒント]と[ブロック名をヒントに追加]が表示され、これらの選択フィールドをそれぞれに切り替えます。 「はい」をクリックしてから、ページの右上にある[構成の保存]ボタンをクリックします。

デバッグモードがアクティブになると、すべてのブロックが赤で囲まれ、テンプレートの場所とブロック名の参照でラベル付けされます。これが将来役立つことを願っています。

于 2012-10-17T23:11:02.687 に答える
0

これが機能しない理由は、view.phtmlが製品ビューページの親ブロックに似ているためです。したがって、無効にするとサイズ設定セクションのみが表示され、有効にすると間違ったサイズ設定セクションが表示されます。

あなたがする必要があるのは、view.phtml内で新しいサイジングテンプレートについて教えてください。

これは、最初にブロックを作成し、次にそれにテンプレートを割り当て、次にそれをview.phtmlファイルで呼び出すことによって行われます。

これを行う最も簡単な方法は、最初のサイジングブロックが何と呼ばれるかを調べ、xmlでそれを探してコピーし、名前を一意の名前に変更し、テンプレートを新しいファイルに変更することです。

次に、view.phtmlファイルに移動し、名前でブロックを呼び出して表示します。

あなたの場合、変更する必要があるのは次の行だと思います。

<?php if ($_product->isSaleable() && $this->hasOptions()):?>
    <?php echo $this->getChildChildHtml('container2', '', true, true) ?>
<?php endif;?>

それは読むべきです:

<?php if ($_product->isSaleable() && $this->hasOptions()):?>
    <?php echo $this->getChildHtml('your_new_block_name') ?>
<?php endif;?>
于 2012-08-16T20:39:09.400 に答える
0

OKだから、サイズチャートブロックを含むコードを見つけました

 <?php echo $this->getChildHtml('product_type_data') ?>

コメントアウトすると、期待どおりの結果が得られ、サイズ表が消えます。Catalog.xmlで、コードが何であるかを見つけました(catalog.xmlファイルがいくつかありますが、正しいものがあることを確認する方法はありますか? )。

とにかく私が見つけたコードは...

<PRODUCT_TYPE_simple translate="label" module="catalog">
        <label>Catalog Product View (Simple)</label>
        <reference name="product.info">
            <block type="catalog/product_view_type_simple" name="product.info.simple"as="product_type_data" template="catalog/product/view/type/default.phtml">
            <block type="core/text_list" name="product.info.simple.extra" as="product_type_data_extra" translate="label">
                <label>Product Extra Info</label>
            </block>
        </block>
    </reference>
</PRODUCT_TYPE_simple>
<PRODUCT_TYPE_configurable translate="label" module="catalog">
    <label>Catalog Product View (Configurable)</label>
    <reference name="product.info">
        <block type="catalog/product_view_type_configurable" name="product.info.configurable" as="product_type_data" template="catalog/product/view/type/default.phtml">
            <block type="core/text_list" name="product.info.configurable.extra" as="product_type_data_extra" translate="label">
                <label>Product Extra Info</label>
            </block>
        </block>
    </reference>
    <reference name="product.info.options.wrapper">
        <block type="catalog/product_view_type_configurable" name="product.info.options.configurable" as="options_configurable" before="-" template="catalog/product/view/type/options/configurable.phtml"/>
    </reference>
</PRODUCT_TYPE_configurable>

私が追加した

<PRODUCT_TYPE_simple translate="label" module="catalog">
    <label>Catalog Product View (Simple)</label>
    <reference name="product.info">
        <block type="catalog/product_view_type_simple" name="product.info.simple" as="product_type_data1" template="catalog/product/view/type/default1.phtml">
            <block type="core/text_list" name="product.info.simple.extra" as="product_type_data_extra" translate="label">
                <label>Product Extra Info</label>
            </block>
        </block>
    </reference>
</PRODUCT_TYPE_simple>

<PRODUCT_TYPE_configurable translate="label" module="catalog">
    <label>Catalog Product View (Configurable)</label>
    <reference name="product.info">
        <block type="catalog/product_view_type_configurable" name="product.info.configurable" as="product_type_data1" template="catalog/product/view/type/default1.phtml">
            <block type="core/text_list" name="product.info.configurable.extra" as="product_type_data_extra" translate="label">
                <label>Product Extra Info</label>
            </block>
        </block>
    </reference>
    <reference name="product.info.options.wrapper">
        <block type="catalog/product_view_type_configurable" name="product.info.options.configurable" as="options_configurable" before="-" template="catalog/product/view/type/options/configurable.phtml"/>
    </reference>
</PRODUCT_TYPE_configurable>

次に、呼び出し元のphpを次のように変更しました...

<?php echo $this->getChildHtml('product_type_data1') ?>

しかし、私は翻訳で何かを逃しました

于 2012-08-20T17:48:03.530 に答える