在产品页面侧栏中获取产品的评论页面URL

时间:2011-07-01 12:41:48

标签: url magento sidebar

我正在尝试在该产品页面的侧边栏中获取产品评论页面的网址。我知道这不会那么困难,但它现在正在打败我。

我可以获得产品页面网址(基本上是侧边栏所在页面的网址),但不是评论页面...这与最后的-reviews.htm的网址基本相同,而不仅仅是.htm < / p>

我哪里错了?我需要做什么电话?

2 个答案:

答案 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()
      ));
  }

您可以在模板中使用此功能的内容来生成所需的链接。