2011-07-01 56 views
2

我正在嘗試在該產品頁面上的側邊欄中獲取產品評論頁面的網址。我知道這不是那麼困難,但它現在正在擊敗我..在產品頁邊欄中獲取產品的評論頁面URL

我可以得到產品頁面網址(基本上是側邊欄頁面的網址),但不是評論頁面。 。它與-reviews.htm在本質上是相同的網址而不僅僅是.htm

我在哪裏出錯了?我必須做什麼?

回答

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模板中取得你想要的,並且做你自己的代碼來總結你的評論,或者如果你沒有評論時說別的話。

+0

是否在 「>?或者是一個錯誤的? – BigJ

+0

糟糕!你不是說'普遍的權利'嗎?左和右對我來說是一樣的,除非以'universal'開頭,尤其是如果遵循下面的指示......無論如何,很好的發現,保證你在糾正爲正確的時候能夠工作。 –

+0

不幸的是,這只是在側邊欄中顯示評論。我仍然無法生成評論頁面的鏈接。 – BigJ

1

請問<?php echo $this->getReviewsUrl() ?>是否適合您?

否則,您可以隨時獲取您所說的產品網址,在「。」上展開它,插入評論並將它們粘在一起。但我認爲這不是一個安全的解決方案,因爲我的Magento安裝中的評論URL與產品頁面URL差別很大,所以在升級過程中您可能會破壞某些內容。 (例如,我的產品頁面看起來像是domain.com/category/product.htm,但評論頁面是:domain.com/review/product/list/id/10450/category/281/#review-form)

編輯:

我挖得更深一點。我在app/design/frontend/base/default/template/review/helper/summary.phtml的輔助模板中找到$this->getReviewsUrl()。 這解釋了爲什麼您不能在產品頁面上使用該方法;它有不同的上下文。該座幫手此模板以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() 
    )); 
    } 

您可以使用此功能的內容在你的模板來生成你想要的鏈接。

+0

不幸的是,它不...我曾經考慮過字符串操作來做到這一點,因爲我的評論頁面就像我描述的那樣,所以可以這樣做......它看起來真的很黑,因爲我是肯定magento允許我獲得網址本身 - 我只是不知道該怎麼做! – BigJ

+0

編輯不工作,或者我害怕 - 只是在非對象錯誤上生成舊的調用getId ... – BigJ

相關問題