*/ class Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Checkbox extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract { protected $_defaultWidth = 55; protected $_values; /** * Returns values of the column * * @return array */ public function getValues() { if (is_null($this->_values)) { $this->_values = $this->getColumn()->getData('values') ? $this->getColumn()->getData('values') : array(); } return $this->_values; } /** * Renders grid column * * @param Varien_Object $row * @return string */ public function render(Varien_Object $row) { $values = $this->getColumn()->getValues(); $value = $row->getData($this->getColumn()->getIndex()); if (is_array($values)) { $checked = in_array($value, $values) ? ' checked="checked"' : ''; } else { $checked = ($value === $this->getColumn()->getValue()) ? ' checked="checked"' : ''; } $disabledValues = $this->getColumn()->getDisabledValues(); if (is_array($disabledValues)) { $disabled = in_array($value, $disabledValues) ? ' disabled="disabled"' : ''; } else { $disabled = ($value === $this->getColumn()->getDisabledValue()) ? ' disabled="disabled"' : ''; } $this->setDisabled($disabled); if ($this->getNoObjectId() || $this->getColumn()->getUseIndex()){ $v = $value; } else { $v = ($row->getId() != "") ? $row->getId():$value; } return $this->_getCheckboxHtml($v, $checked); } /** * @param string $value Value of the element * @param bool $checked Whether it is checked * @return string */ protected function _getCheckboxHtml($value, $checked) { $html = 'getColumn()->getFieldName() . '" '; $html .= 'value="' . $this->escapeHtml($value) . '" '; $html .= 'class="'. ($this->getColumn()->getInlineCss() ? $this->getColumn()->getInlineCss() : 'checkbox') .'"'; $html .= $checked . $this->getDisabled() . '/>'; return $html; } /** * Renders header of the column * * @return string */ public function renderHeader() { if($this->getColumn()->getHeader()) { return parent::renderHeader(); } $checked = ''; if ($filter = $this->getColumn()->getFilter()) { $checked = $filter->getValue() ? ' checked="checked"' : ''; } $disabled = ''; if ($this->getColumn()->getDisabled()) { $disabled = ' disabled="disabled"'; } $html = 'getColumn()->getFieldName() . '" '; $html .= 'onclick="' . $this->getColumn()->getGrid()->getJsObjectName() . '.checkCheckboxes(this)" '; $html .= 'class="checkbox"' . $checked . $disabled . ' '; $html .= 'title="'.Mage::helper('adminhtml')->__('Select All') . '"/>'; return $html; } }