Magento Attributen niet weergeven bij N/B (PHPer gezocht)

1
In Magento behoor je eigenlijk een geschikte attributenset te maken bij ieder product en die set dan te selecteren bij het aanmaken van dat product.

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.

Re: Magento Attributen niet weergeven bij N/B (PHPer gezocht

4
Rudy schreef:En deze nog om de attributesets te wijzigen per product. Dan kan je het helemaal netjes maken.
http://www.magentocommerce.com/magento- ... e-set.html
Dat zou idd precies zijn wat ik nodig heb maar de installatie lukt niet erg.

Na het installeren zegt hij dat alles gelukt is maar ik zie niks veranderen. ik maak gebruik van versie 1.6.2.0 en in de reviews is wel bij andere te lezen dat het hun bij 1.6.1.0 gelukt is maar nog geen geslaagde bij 1.6.2.0 versie.
Cach legen en opnieuw inloggen browser starten etc. heb ik al gedaan.
Advertentie

Met Shopify maak je zelf je eigen webwinkel dankzij meer dan honderd thema’s en de complete appstore. Shopify sluit ook goed aan op dropshippers. De software is technisch volledig SEO-geoptimaliseerd en biedt alle sociale media-integraties. Meer info op Shopify.com.