Я изменяю внешний вид сайта Magento 1.5 и пытаюсь перевести обзоры моих продуктов с отдельной страницы на одну из вкладок «больше информации» в нижней частистраница товара в каталоге.В результате я хочу сделать содержание этой вкладки условным - я хочу, чтобы на вкладке отображались существующие обзоры, когда они существуют, но отображалась форма создания обзоров, когда у продукта еще нет отзывов.
Вот то, что я пробовал до сих пор, кусочки, которые я пытаюсь собрать вместе.
/ app / design / frontend / our-site / default / review.xml:
<catalog_product_view translate="label">
<label>Catalog Product View</label>
<reference name="product.info.tabs">
<action method="addTab" translate="title" module="review">
<alias>product.reviews</alias>
<title>Reviews</title>
<block>review/form</block>
<template>review/form.phtml</template>
</action>
</reference>
</catalog_product_view>
Этот XML приводит к тому, что форма «оставьте свой отзыв» отображается на вкладке «Отзывы» на странице продукта.
Я отследил функцию 'addTab в /app/code/core/Mage/Catalog/Block/Product/View/Tabs.php
, и я могу посмотреть, как это работает.Тем не менее, я не думаю, что видел способ использовать XML, чтобы быть условным относительно того, что должно отображаться на странице.
Я заметил, что файл summary.phtml
делает что-то похожее на то, что я хочу: он имеет:
if ($this->getReviewsCount()): ?>
<div class="ratings">
<?php if ($this->getRatingSummary()):?>
<div class="rating-box">
<div class="rating" style="width:<?php echo $this->getRatingSummary() ?>%"></div>
</div>
<?php endif;?>
<p class="rating-links">
<a href="<?php echo $this->getReviewsUrl() ?>"><?php echo $this->__('%d Review(s)', $this->getReviewsCount()) ?></a>
<span class="separator">|</span>
<a href="<?php echo $this->getReviewsUrl() ?>#review-form">
<?php echo $this->__('Add Your Review') ?></a>
</p>
</div>
<?php elseif ($this->getDisplayIfEmpty()): ?>
<p class="no-rating">
<a href="<?php echo $this->getReviewsUrl() ?>#review-form">
<?php echo $this->__('Be the first to review this product') ?>
</a>
</p>
<?php endif; ?>
Похоже, у него есть условные функции для 'сделай это, если есть обзоры, сделайв противном случае, если нет отзывов.Как я могу вызвать это ранее в цепочке рендеринга, чтобы решить, каким будет контекст блока, который рендерится на странице?Это задача, которую нужно выполнить в части phtml в части XML?