Echter hebben wij in het begin toen ik nog niet zo bekend was met Magento alles in de omschrijving geplaats alles onder dezelfde attributenset (lekker makkelijk maar niet netjes). Nu ik Magento aardig onder der knie heb door veel te ondervinden en het Kickstart Magento boek (Nederlands gebaseerd op versie 1.6 )te lezen. Vindt ik toch dat het mooier is als alles netjes in attributen is opgedeelt. ook beter voor de zoekfuntie's natuurlijk.
Maar achteraf kan je volgens mij niet meer een andere attributenset selecteren bij het product.
Ieder attribuut wat nu niet van toepassing is wordt weergeven met N/B maar eigenlijk wil ik dat die hele regel niet wordt weergegeven.
De enigste oplossing lijkt te zijn dat ik al mijn producten moet verweideren en weer opnieuw moet aanmaken :S onder een geschikte attributenset.
Dit vond ik nogal veel werk dus ben ik even opzoek gegaan nar waar dit ik de code afgehandeld wordt.
In heb app\code\core\Mage\Catalog\Block\Product\View\Attributes.php gevonden.
Volledige inhoud:
Code: Selecteer alles
<?php
/**
* Magento
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@magentocommerce.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade Magento to newer
* versions in the future. If you wish to customize Magento for your
* needs please refer to http://www.magentocommerce.com for more information.
*
* @category Mage
* @package Mage_Catalog
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
/**
* Product description block
*
* @category Mage
* @package Mage_Catalog
* @author Magento Core Team <core@magentocommerce.com>
*/
class Mage_Catalog_Block_Product_View_Attributes extends Mage_Core_Block_Template
{
protected $_product = null;
function getProduct()
{
if (!$this->_product) {
$this->_product = Mage::registry('product');
}
return $this->_product;
}
/**
* $excludeAttr is optional array of attribute codes to
* exclude them from additional data array
*
* @param array $excludeAttr
* @return array
*/
public function getAdditionalData(array $excludeAttr = array())
{
$data = array();
$product = $this->getProduct();
$attributes = $product->getAttributes();
foreach ($attributes as $attribute) {
// if ($attribute->getIsVisibleOnFront() && $attribute->getIsUserDefined() && !in_array($attribute->getAttributeCode(), $excludeAttr)) {
if ($attribute->getIsVisibleOnFront() && !in_array($attribute->getAttributeCode(), $excludeAttr)) {
$value = $attribute->getFrontend()->getValue($product);
if (!$product->hasData($attribute->getAttributeCode())) {
$value = Mage::helper('catalog')->__('N/A');
} elseif ((string)$value == '') {
$value = Mage::helper('catalog')->__('No');
} elseif ($attribute->getFrontendInput() == 'price' && is_string($value)) {
$value = Mage::app()->getStore()->convertPrice($value, true);
}
if (is_string($value) && strlen($value)) {
$data[$attribute->getAttributeCode()] = array(
'label' => $attribute->getStoreLabel(),
'value' => $value,
'code' => $attribute->getAttributeCode()
);
}
}
}
return $data;
}
}
Nou volgt hieronder regel 60-70 en dan zie je in Regel 65 N/A staan deze N/A wordt door onze vertaling vertaald in N/B.
Code: Selecteer alles
// if ($attribute->getIsVisibleOnFront() && $attribute->getIsUserDefined() && !in_array($attribute->getAttributeCode(), $excludeAttr)) {
if ($attribute->getIsVisibleOnFront() && !in_array($attribute->getAttributeCode(), $excludeAttr)) {
$value = $attribute->getFrontend()->getValue($product);
if (!$product->hasData($attribute->getAttributeCode())) {
$value = Mage::helper('catalog')->__('N/A');
} elseif ((string)$value == '') {
$value = Mage::helper('catalog')->__('No');
} elseif ($attribute->getFrontendInput() == 'price' && is_string($value)) {
$value = Mage::app()->getStore()->convertPrice($value, true);
}
Nou zou er dus in deze file de aanpassing gemaakt moeten worden dat er geen N/A komt maar dat er helemaal geen regel weergegeven wordt.
Dit klinkt heel eenvoudig maar ik ben een actionscript man en geen PHPer.
Beste PHPer lezer van dit topic. Zou u dit voor ons Magento gebruikers kunnen aanpassen?
Zou voor iedere gebruiker wel handig kunnen zijn natuurlijk zodat je gewoon maar 1 attributenset hoeft aan te maken.
Alvast bedankt.