2013-05-22 103 views
0

我試圖在產品的屬性字段中添加'a href'/鏈接。 但是,我正在使用的方法不起作用 - 儘管它們在CMS頁面內容中工作。當我查看產品,將顯示該鏈接的屬性,但實際的URL似乎不正確生成(404錯誤)magento鏈接到產品屬性不起作用的cms頁面

我已經試過如下:

1. <a href="<?php echo Mage::getBaseUrl(); ?>test-page">Test link 1</a> 
2. <a href="{{store url='test-page'}}">Test link 2</a> 
3. <a href="index.php/test-page">Test link 3</a> 

我是什麼做錯了?

您的幫助是預先感謝

謝謝!

+0

實際產生什麼URL(查看頁面源)?此外,請確保您的屬性允許在前端使用html標籤(您可以通過後端的屬性管理來確保這一點)。 –

+0

什麼是您的字段類型? – Mufaddal

+0

字段類型:文本字段。前端的HTML標籤:是的。 – user2381937

回答

2

Magento EAV屬性值不會被PHP自己解析。爲了向用戶顯示,它們通過前端模型呈現。示例見eav_attribute表。

根據「我們不想顯示整個網址,只是文本鏈接」評論,您需要一個具有自定義前端模型的屬性。我猜測它是通過管理面板添加的,它不允許添加自定義的前端模型。儘管添加前端模型需要腳本,但我建議首先通過腳本添加屬性。

要正確安裝此屬性,Magento需要執行安裝腳本,這是一個Magento術語,用於(通常)PHP代碼,它只能執行一次操作數據庫的能力。運行這些先決條件的模塊存在:

應用的/ etc /模塊/ Your_Module.xml

<?xml version="1.0" encoding="UTF-8"?> 
<config> 
    <modules> 
     <Your_Module> 
      <active>true</active> 
      <codePool>local</codePool> 
     </Your_Module> 
    </modules> 
</config> 

應用程序/代碼/本地/你/模塊的/ etc/config.xml中

<?xml version="1.0" encoding="UTF-8"?> 
<config> 
    <modules> 
     <Your_Module> 
      <version>1.0.0.0</version> 
     </Your_Module> 
    </modules> 
    <global> 
     <models> 
      <your_module> 
       <class>Your_Module_Model</class> 
      </your_module> 
     </models> 
     <resources> 
      <your_module_setup> 
       <setup> 
        <module>Your_Module</module> 
       </setup> 
      </your_module_setup> 
     </resources> 
    </global> 
</config> 

應用程序/代碼/地方/你/模塊/ SQL/your_module_setup /安裝-1.0.0.0.php

<?php 

$installer = Mage::getResourceModel('catalog/setup','catalog_setup'); 
/* @var $installer Mage_Catalog_Model_Resource_Setup */ 

$installer->startSteup(); 

$installer->addAttribute(
    'catalog_product', 
    'unique_attr_code', 
    array(
     'label'  => 'Link to Product', 
     'required' => 'false',    //or true if appropriate 
     'group'  => 'General',   //Adds to all sets 
     'frontend' => 'your_module/frontend_url' 
    ) 
); 

$installer->endSetup(); 

應用程序/代碼/地方/你/模塊/型號/前端/ Url.php

class Your_Module_Model_Frontend_Url 
    extends Mage_Eav_Model_Entity_Attribute_Frontend_Abstract 
{ 
    public function getUrl($object) 
    { 
     $url = false; 
     if ($path = $object->getData($this->getAttribute()->getAttributeCode())) { 
      $url = Mage::getUrl('path'); 
     } 
     return $url; 
    } 
}