2010-09-03 6 views
0

J'ai besoin de supprimer une certaine valeur d'option d'un attribut, par exemple color. Si color a les options rouge, bleu et vert, alors j'ai besoin de supprimer l'un d'entre eux, par exemple bleu.comment pouvons-nous supprimer certaines options d'un attribut déroulant (magento)

J'ai jusqu'à présent réussi à obtenir les valeurs d'attribut mais j'ai des problèmes pour supprimer une option particulière.

$attribute_model  = Mage::getModel('eav/entity_attribute'); 
    $attribute_options_model= Mage::getModel('eav/entity_attribute_source_table') ; 

    $attribute_code   = $attribute_model->getIdByCode('catalog_product', 'color_pattern'); 
    $attribute    = $attribute_model->load($attribute_code); 

    $attribute_table  = $attribute_options_model->setAttribute($attribute); 
    $options    = $attribute_options_model->getAllOptions(false); 

Comment puis-je supprimer une option de la liste d'options? Toute aide serait appréciée.

vous Remerciant,

+0

Pour être clair , vous * avez * besoin de le faire par programme, et ne pouvez pas le faire via l'outil d'administration? –

+0

ou la base de données, d'ailleurs ... – silvo

+0

ya, j'ai réussi à insérer une certaine valeur d'option dans un attribut pendant qu'un fichier est téléchargé automatiquement, mais ne semble pas trouver de fonction pour supprimer la valeur d'option de l'attribut tandis que le le fichier est supprimé, de toute façon j'ai trouvé un moyen de le supprimer via sql query .. merci de toute façon :) – jarus

Répondre

0

trouvé un moyen de supprimer des options par instruction SQL;)

if (@unlink(Mage::getBaseDir('media') . DS . "sizecharts" . DS . $sizecharts->getFilename())) { 

    $select = $read->select() 
      ->distinct(true) 
      ->from($optionvalueTable, array('option_id')) 
      ->where('value="' . $sizecharts->getFilename() . '"'); 

    $opt1 = $read->fetchAll($select); 
    $deleteCondition = $write->quoteInto('option_id=?', $opt1[0]['option_id']); 
    $write->delete($optionTable, $deleteCondition); 
    //$model->setId($this->getRequest()->getParam('id')) 
    $sizecharts->delete(); 
} 
2

trouvé une autre façon:

$options['delete'][$option_id] = true; 
$options['value'][$option_id] = true; 

$options['delete'][$another_option_id] = true; 
$options['value'][$another_option_id] = true; 

// (...) 

$setup = new Mage_Eav_Model_Entity_Setup('core_setup'); 
$setup->addAttributeOption($options); 

acclamations, johannes

Questions connexes