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;
}
}
實際產生什麼URL(查看頁面源)?此外,請確保您的屬性允許在前端使用html標籤(您可以通過後端的屬性管理來確保這一點)。 –
什麼是您的字段類型? – Mufaddal
字段類型:文本字段。前端的HTML標籤:是的。 – user2381937