0

このページでは、タグ (タグのリストとタグ フォーム) をタブからレビュー セクションの直前の空き領域に移動しようとしています。

/template/tag/list.phtml のすべてを /template/catalog/product/view.phtml にコピーしました。

<div class="box-collateral box-tags">
    <h2><?php echo $this->__('Product Tags') ?></h2>
    <?php echo $this->getChildHtml('list_before')?>
    <?php if( $this->getCount() ): ?>
    <h3><?php echo $this->__('Other people marked this product with these tags:') ?></h3>
    <ul id="<?php echo $this->getUniqueHtmlId('product-tags_'); ?>" class="product-tags">
        <?php echo $this->renderTags('<li><a href="%1$s">%2$s</a> (%3$s)</li>') ?>
    </ul>
    <script type="text/javascript">
        decorateGeneric($("<?php echo $this->getUniqueHtmlId('product-tags_'); ?>").select('li'), ['first', 'last']);
    </script>
    <?php endif; ?>
    <form id="addTagForm" action="<?php echo $this->getFormAction(); ?>" method="get">
        <div class="form-add">
            <label for="productTagName"><?php echo $this->__('Add Your Tags:') ?></label>
            <div class="input-box">
                <input type="text" class="input-text required-entry" name="productTagName" id="productTagName" />
            </div>
            <button type="button" title="<?php echo $this->__('Add Tags') ?>" class="button" onclick="submitTagForm()">
                <span>
                    <span><?php echo $this->__('Add Tags') ?></span>
                </span>
            </button>
        </div>
    </form>
    <p class="note"><?php echo $this->__("Use spaces to separate tags. Use single quotes (') for phrases.") ?></p>
    <script type="text/javascript">
    //<![CDATA[
        var addTagFormJs = new VarienForm('addTagForm');
        function submitTagForm(){
            if(addTagFormJs.validator.validate()) {
                addTagFormJs.form.submit();
            }
        }
    //]]>
    </script>
</div>

フォームは正しく表示されていますが、タグは表示されていません。

「$this->getCount()」と関係があると思います。では、view.phtml のタグの $this を取得するにはどうすればよいでしょうか? または、どうすればこれを機能させることができますか?

どうもありがとう!

4

1 に答える 1

0

テンプレート tag/list.phtml から catalog/product/view.phtml にコードをコピーした場合は機能しません。catalog/product/view.phtml の背後にあるブロックは、tag/list.phtml の背後にあるブロックと同じメソッド セットをサポートしていないためです。 .

レイアウト XML の product_view ブロック内に tag_list ブロックを移動することをお勧めします。そして、catalog/product/view.phtml で次のようなものを使用できます

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

これは、tag/list.phtml の内容を出力します。

または、レイアウトxmlでブロックを移動したくない場合は、次のようなものを使用できます

<?php echo $this->getLayout()->getBlock('tag_list')->toHtml(); ?>

しかし、それはそれほどきれいではありません:)オプション1を使用することをお勧めします。レイアウトの操作方法に関するいくつかのリソースは、Magento Commerce サイトで入手できます。

于 2012-06-03T15:31:40.200 に答える