2011-05-25 3 views
5

ग्राहक गुणों के साथ ठीक है, मेरे पास एक बहु-विकल्प चयन है जिसे मैंने ग्राहक ग्रिड प्रबंधित करने के लिए जोड़ा है।ग्राहक प्रबंधन के भीतर बहु-विकल्प ग्राहक विशेषता प्रदर्शित करें व्यवस्थापक ग्रिड

protected function _filterProdOptionsCondition($collection, $column) { 
    if(!$value = $column->getFilter()->getValue()) { 
     return; 
    } 
    $this->getCollection()->addFieldToFilter('prod_codes', array('finset' => $value)); 
    #print($collection->getSelectSql()); 
} 

अब इस काम:

->addAttributeToSelect('prod_codes')

यहाँ मेरी _filterProdOptionsCondition विधि है:

$prodCode = Mage::getSingleton('eav/config')->getAttribute('customer','prod_codes'); 
    $prodCodeOptions = $prodCode->getSource()->getAllOptions(false); 
    $prodOptions = array(); 

    foreach($prodCodeOptions as $k) 
     $prodOptions[$k['value']] = $k['label']; 

    $this->addColumn('prod_codes', array(
     'header' => Mage::helper('customer')->__('Product Code'), 
     'width'  => '100', 
     'index'  => 'prod_codes', 
     'type'  => 'options', 
     'options' => $prodOptions, 
     'filter_condition_callback' 
        => array($this, '_filterProdOptionsCondition'), 
    )); 

मैं अपने विशेषता है मेरी Grid.php के शीर्ष पर संग्रह में जोड़ा ठीक है और बेवकूफ अगर मेरे पास केवल एक चयनित विकल्पों में से एक बार, एक बार मैं एक से अधिक विकल्प लागू करता हूं ग्राहक विशेषताएँ मैं व्यवस्थापक ग्रिड के भीतर एक खाली परिणाम प्राप्त करूंगा, हालांकि यह अभी भी खोजने योग्य है।

print($collection->getSelectSql()); के साथ एक नजदीक देखो मुझे लगता है कि विशेषता आईडी मान अल्पविराम सीमांकित सूची में वापस आ रहे हैं।

अब उस पृष्ठभूमि के साथ मेरे प्रश्न पर, क्या व्यवस्थापक ग्रिड के भीतर इन बहु-विकल्पों को प्रदर्शित करने के लिए कोई विधि या "Magento" तरीका है, मुझे अभी अनजान है? या क्या मुझे केवल अल्पविराम मूल्यों को विस्फोट करने और प्रदर्शन मानों को बनाने के लिए एक नए संग्रह के लिए कॉल करने की आवश्यकता है? किसी भी मदद की सराहना की!

+1

ठीक है ऐसा लगता है मैं व्यवस्थापक विजेट ग्रिड के लिए विकल्प रेंडरर का विस्तार करने की जरूरत है। मजेदार कैसे जवाब का सबसे अस्पष्ट सबसे उपयोगी था। http://www.magentocommerce.com/boards/port.php/viewthread/25566/#t84377 – B00MER

उत्तर

5

प्रकट होता है कि मुझे कोमा मूल्यों की प्रत्याशा करने के लिए कॉलम रेंडरर का विस्तार करना था और उन्हें बस प्रस्तुत करना था, मुझे आश्चर्य है कि यह तब तक नहीं बनाया गया है जब कार्यक्षमता मल्टीप्शन गुण बनाने के लिए मौजूद है लेकिन इसके लिए कोई ग्रिड डिस्प्ले विकल्प नहीं है।

एप्लिकेशन/कोड/स्थानीय/दाना/Adminhtml/ब्लॉक/विजेट/ग्रिड/कॉलम/रेंडरर/options.php

public function render(Varien_Object $row) 
{ 
    $options = $this->getColumn()->getOptions(); 
    $showMissingOptionValues = (bool)$this->getColumn()->getShowMissingOptionValues(); 
    if (!empty($options) && is_array($options)) { 
     $value = $row->getData($this->getColumn()->getIndex()); 
     if (is_array($value)) { 
      $res = array(); 
      foreach ($value as $item) { 
       if (isset($options[$item])) { 
        $res[] = $options[$item]; 
       } 
       elseif ($showMissingOptionValues) { 
        $res[] = $item; 
       } 
      } 
      return implode(', ', $res); 
     } 
     elseif (isset($options[$value])) { 
      return $options[$value]; 
     } elseif (is_string($value)) { // <--- MY CHANGES HERE 
      $values = explode(',', $value); 
      $returnOptions = ""; 
      foreach($values as $k=>$v) { 
       $returnOptions .= $options[$v]. ", "; 
      } 
      return substr($returnOptions, 0, -2); 
     } 
     return ''; 
    } 
} 
+1

केवल एक चीज जो मैं जोड़ूंगा वह यह है कि मैंने एक जोड़ा (जारी ($ विकल्प [$ v])) जो लाइन जोड़ता है $ returnOptions स्ट्रिंग के लिए। अगर $ $ विकल्प में $ v नहीं था तो मुझे त्रुटियां मिल रही थीं। ऐसा करने से ऐसा लगता है। –

संबंधित मुद्दे