2012-12-04 78 views
0

我在尋找一些關於如何最好地從模板phtml文件鏈接到CMS產品頁面的建議。我需要使用'foreach'生成一個鏈接,因爲每個產品都有自己的CMS產品頁面。例如,我有6個產品目前正在主頁上顯示,我想要一個'立即訂購'按鈕,將用戶帶到'添加到購物車'頁面(view.phtml)和'更多信息?'。按鈕,將用戶帶到該產品的CMS頁面...有沒有辦法實現這一點?鏈接到Magento中的CMS產品頁面

下面是new.phtml

<div class="new-product-content"> 
<?php if (($_products = $this->getProductCollection()) && $_products->getSize()): ?> 
    <h3 class="subtitle new-products"><?php echo $this->__('HOT PRODUCTS') ?></h3> 
    <?php $_columnCount = $this->getColumnCount(); ?> 
    <?php $i=0; foreach ($_products->getItems() as $_product): ?> 
    <?php if ($i++%$_columnCount==0): ?> 

    <ul> 
    <?php endif ?> 
    <li class="thumb<?php if(($i-1)%$_columnCount==0): ?> first<?php elseif($i%$_columnCount==0): ?> last<?php endif; ?>"> 
      <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>" ><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(175) ?>" width="175" height="175" alt="<?php echo $this->htmlEscape($_product->getName()) ?>" /> 
      </a> 
       <div class="caption">  
        <h4 class="product-name"> <?php $_productName = $this->helper('core/string')->truncate($this->htmlEscape($_product->getName()),20,'...', $_remainder, true); ?> 
        <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productName ?>"> 
        <?php echo $_productName ?><?php echo $this->__('&#8482;'); ?></a></h4> 
        <?php echo $this->getPriceHtml($_product, true, '-new') ?> 
         <div class="clearfix"></div> 
        <div class="desc">     
        <?php $sdesc = $_product->getShortDescription(); 
        $sdesc = trim($sdesc); 
        $limit = 180; 
        if (strlen($sdesc) > $limit) { 
         $sdesc = substr($sdesc, 0, strrpos(substr($sdesc, 0, $limit), ' ')); 
        } ?> 
        <?php echo $sdesc."..."; ?> 
        </div> 
       <div class="clearfix"></div> 
<div class="btn-group"> 
    <button class="btn" type="button" title="<?php echo $this->__('Add to Cart') ?>" onclick="setLocation('<?php echo $this->getProductUrl($_product) ?>')"><?php echo $this->__('Order now...') ?></button> 

<!--I NEED TO CHANGE THE DESTINATION OF THIS LINK <button class="btn" type="button" title="<?php echo $this->__('More info') ?>" onclick="setLocation('<?php echo $this->getProductUrl($_product) ?>')"><?php echo $this->__('More info?') ?></button> ---> 
</div> 
     </li> 
     <?php if ($i%$_columnCount==0 || $i==count($_products)): ?> 
    </ul> 
    <div class="clearfix"></div> 
<?php endif ?> 
<script type="text/javascript"> 
$j('.thumb li').last().css('border-right', 'none'); 
</script> 
<script type="text/javascript">decorateGeneric($$('ul.products-grid'), ['odd','even','first','last'])</script> 
<?php endforeach; ?> 
<?php endif; ?> 
<div class="clearfix"></div> 
</div> 
+0

不知道你正在嘗試做的,但獲取一個cms頁面的鏈接,你可以做'<?php echo $ this-> getUrl('cms_product_page_id');?>' –

+0

@RS謝謝你的迴應,基本上我需要找到一種鏈接到產品頁面的方法對於new.phtml中顯示的每個產品,總共有六個產品都有自己的CMS產品頁面。指定CMS ID將意味着每個產品只會調用一個頁面,但每個產品都有自己的...希望更有意義。我想也許我需要以某種方式將CMSid與產品鏈接起來 – user1704524

+0

什麼是'CMS產品頁面'? –

回答

1

代碼試着這麼做,你需要獲得的CMS頁面的「URL鍵」

<button class="btn" type="button" title="<?php echo $this->__('More info') ?>" onclick="setLocation('<?php echo $this->getUrl('url key'); ?>')"><?php echo $this->__('More info?') ?></button> 
+0

問題在於此。我需要以某種方式將CMS page_id與每個product_id鏈接起來,因此,當點擊「更多信息」鏈接時,會加載屬於該產品的正確CMS頁面。如果我簡單地添加url密鑰,我的商店中的所有商品都將加載相同的頁面... – user1704524

+0

這樣做的一種簡單方法是使每個cms頁面url密鑰包括產品ID或SKU等。例如,product- 123,where product_id = 123 ... then'<?php echo $ this-> getUrl('product-'。$ _products-> getId()); ?>' –

+0

我會試試這聽起來像是正確的解決方案。 – user1704524

相關問題