1: <?php
2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
26:
27: 28: 29: 30: 31: 32: 33:
34: class Mage_Bundle_Block_Adminhtml_Catalog_Product_Edit_Tab_Attributes_Extend
35: extends Mage_Adminhtml_Block_Catalog_Form_Renderer_Fieldset_Element
36: {
37: const DYNAMIC = 0;
38: const FIXED = 1;
39:
40: 41: 42:
43: public function __construct()
44: {
45: parent::__construct();
46: $this->setCanEditPrice(true);
47: $this->setCanReadPrice(true);
48: }
49:
50: 51: 52: 53: 54:
55: public function getElementHtml()
56: {
57: $elementHtml = parent::getElementHtml();
58:
59: $switchAttributeCode = $this->getAttribute()->getAttributeCode().'_type';
60: $switchAttributeValue = $this->getProduct()->getData($switchAttributeCode);
61:
62: $html = '<select name="product[' . $switchAttributeCode . ']" id="' . $switchAttributeCode
63: . '" type="select" class="required-entry select next-toinput"'
64: . ($this->getProduct()->getId() && $this->getAttribute()->getAttributeCode() == 'price'
65: || $this->getElement()->getReadonly() ? ' disabled="disabled"' : '') . '>
66: <option value="">' . $this->__('-- Select --') . '</option>
67: <option ' . ($switchAttributeValue == self::DYNAMIC ? 'selected' : '')
68: . ' value="' . self::DYNAMIC . '">' . $this->__('Dynamic') . '</option>
69: <option ' . ($switchAttributeValue == self::FIXED ? 'selected' : '')
70: . ' value="' . self::FIXED . '">' . $this->__('Fixed') . '</option>
71: </select>';
72:
73: if (!($this->getAttribute()->getAttributeCode() == 'price'
74: && $this->getCanReadPrice() === false)
75: ) {
76: $html .= '<span class="next-toselect">' . $elementHtml . '</span>';
77: }
78: if ($this->getDisableChild() && !$this->getElement()->getReadonly()) {
79: $html .= "<script type=\"text/javascript\">
80: function " . $switchAttributeCode . "_change() {
81: if ($('" . $switchAttributeCode . "').value == '" . self::DYNAMIC . "') {
82: if ($('" . $this->getAttribute()->getAttributeCode() . "')) {
83: $('" . $this->getAttribute()->getAttributeCode() . "').disabled = true;
84: $('" . $this->getAttribute()->getAttributeCode() . "').value = '';
85: $('" . $this->getAttribute()->getAttributeCode() . "').removeClassName('required-entry');
86: }
87:
88: if ($('dynamic-price-warrning')) {
89: $('dynamic-price-warrning').show();
90: }
91: } else {
92: if ($('" . $this->getAttribute()->getAttributeCode() . "')) {";
93:
94: if ($this->getAttribute()->getAttributeCode() == 'price'
95: && $this->getCanEditPrice() === false
96: && $this->getCanReadPrice() === true
97: && $this->getProduct()->isObjectNew()
98: ) {
99: $defaultProductPrice = ($this->getDefaultProductPrice()) ? $this->getDefaultProductPrice() : "''";
100: $html .= "$('" . $this->getAttribute()->getAttributeCode() . "').value = " . $defaultProductPrice . ";";
101: } else {
102: $html .= "$('" . $this->getAttribute()->getAttributeCode() . "').disabled = false;
103: $('" . $this->getAttribute()->getAttributeCode() . "').addClassName('required-entry');";
104: }
105:
106: $html .= "}
107:
108: if ($('dynamic-price-warrning')) {
109: $('dynamic-price-warrning').hide();
110: }
111: }
112: }";
113:
114: if (!($this->getAttribute()->getAttributeCode() == 'price'
115: && !$this->getCanEditPrice()
116: && !$this->getProduct()->isObjectNew())
117: ) {
118: $html .= "$('" . $switchAttributeCode . "').observe('change', " . $switchAttributeCode . "_change);";
119: }
120: $html .= $switchAttributeCode . "_change();
121: </script>";
122: }
123: return $html;
124: }
125:
126: public function getProduct()
127: {
128: if (!$this->getData('product')){
129: $this->setData('product', Mage::registry('product'));
130: }
131: return $this->getData('product');
132: }
133: }
134: