我正在尝试在该产品页面的侧边栏中获取产品评论页面的网址。我知道这不会那么困难,但它现在正在打败我。
我可以获得产品页面网址(基本上是侧边栏所在页面的网址),但不是评论页面...这与最后的-reviews.htm的网址基本相同,而不仅仅是.htm < / p>
我哪里错了?我需要做什么电话?
答案 0 :(得分:2)
在您的(您的主题)catalog.xml文件中,找到以<catalog_product_view translate="label">
寻找<reference name="right">
。
如果您的模板在产品视图中没有正确的部分,请在下面的内容中添加一个,然后输入:
<reference name="right">
<block type="review/product_view_list" name="product.info.product_additional_data" as="reviews" template="review/product/view/list.phtml"/>
</reference>
确保您关闭缓存,加载产品页面(希望产品上有评论),您现在应该有必要。
您还希望在产品页面上添加“添加评论”框,以便人们更轻松地添加评论。有一些非常笨拙的方法无法正常工作。但是,这是一种简单易行的方法......
打开前面的layout.xml文件,转到catalog_product_view部分,直接进入内容部分的底部。查找最终结束</reference>
标记。现在添加:
<block type="review/form" name="product.review.form" as="review_form" template="review/form.phtml"/>
现在转到前端,添加您的推荐信,并注意它的完美效果,完成主题等。
希望通过这个例子,您将开始了解Magento布局xml文件的强大和实用性。
<强>附加强>
由于它是一个需要的新块,您需要新的模板文件。
添加:
app/design/frontend/base/default/template/review/sidebar.phtml
输入类似的内容:
<div class="block block-reviews">
<div class="block-title">
<strong><span>Reviews</span></strong>
</div>
<div class="block-content">
<p><a href="<?php echo $this->getMacGuffin($this->getProductId()) ?>">MacGuffin!</a></p>
</div>
</div>
编辑app/code/core/Mage/Review/Block/Product/View/List.php
并在类结束括号之前添加帮助URL功能:
public function getMacGuffin($id)
{ return Mage::getUrl('review/product/list', array('id'=> $id));
}
现在将您的布局XML添加到引用左侧块或引用权限,无论如何,对于产品页面指令:
<block type="review/product_view_list" name="review_sidebar" as="macguffin" template="review/sidebar.phtml"/>
它会为你提供你想要的链接,在一个漂亮的侧边栏块中,你可以使用CSS。将其复制到您的主题。 您可以从我之前指向您的list.phtml模板中获取您想要的内容,并使用您自己的代码来总结您的评论,或者如果您没有评论,请说出其他内容。
答案 1 :(得分:1)
<?php echo $this->getReviewsUrl() ?>
是否适合您?
否则,您可以随时获取您所说的产品网址,在“。”上将其展开,插入评论并将其重新粘贴在一起。我不认为这是一个自动防故障的解决方案,因为我的Magento安装中的审核URL看起来与产品页面URL非常不同,因此您可能会在升级期间破坏某些内容。 (例如,我的产品页面看起来像domain.com/category/product.htm,但评论页面是:domain.com/review/product/list/id/10450/category/281/#review-form)
修改强>
我挖得更深了一点。我在$this->getReviewsUrl()
的帮助模板中找到了app/design/frontend/base/default/template/review/helper/summary.phtml
。
这就解释了为什么你不能在产品页面上使用这个方法;它有不同的背景。 app/code/core/Mage/Review/Block/Helper.php
此模板的块帮助程序有答案:
public function getReviewsUrl()
{
return Mage::getUrl('review/product/list', array(
'id' => $this->getProduct()->getId(),
'category' => $this->getProduct()->getCategoryId()
));
}
您可以在模板中使用此功能的内容来生成所需的链接。