public function render(Varien_Data_Form_Element_Abstract $element) { $html = '<tr>' . "\n"; $countryId = false; if ($country = $element->getForm()->getElement('country_id')) { $countryId = $country->getValue(); } $regionCollection = false; if ($countryId) { if (!isset(self::$_regionCollections[$countryId])) { self::$_regionCollections[$countryId] = Mage::getModel('directory/country')->setId($countryId)->getLoadedRegionCollection(); } $regionCollection = self::$_regionCollections[$countryId]; } $regionId = $element->getForm()->getElement('region_id')->getValue(); if ($regionCollection && $regionCollection->getSize()) { $elementClass = $element->getClass(); $element->setClass(str_replace('input-text', '', $elementClass)); $html .= '<td class="label">' . $element->getLabelHtml() . '</td>'; $html .= '<td class="value"><select id="' . $element->getHtmlId() . '" name="' . $element->getName() . '" ' . $element->serialize($element->getHtmlAttributes()) . '>' . "\n"; foreach ($regionCollection as $region) { $selected = $regionId == $region->getId() ? ' selected' : ''; $html .= '<option value="' . $region->getId() . '"' . $selected . '>' . $region->getName() . '</option>'; } $html .= '</select></td>'; $element->setClass($elementClass); } else { $element->setClass('input-text'); $html .= '<td class="label"><label for="' . $element->getHtmlId() . '">' . $element->getLabel() . ' <span class="required" style="display:none">*</span></label></td>'; $element->setRequired(false); $html .= '<td class="value"><input id="' . $element->getHtmlId() . '" name="' . $element->getName() . '" value="' . $element->getEscapedValue() . '"' . $element->serialize($element->getHtmlAttributes()) . '/></td>' . "\n"; } $html .= '</tr>' . "\n"; return $html; }
/** * Output the region element and javasctipt that makes it dependent from country element * * @param Varien_Data_Form_Element_Abstract $element * @return string */ public function render(Varien_Data_Form_Element_Abstract $element) { $country = $element->getForm()->getElement('country_id'); if (!is_null($country)) { $countryId = $country->getValue(); } else { return $element->getDefaultHtml(); } $regionId = $element->getForm()->getElement('region_id')->getValue(); $quoteStoreId = $element->getEntityAttribute()->getStoreId(); $html = '<tr>'; $element->setClass('input-text'); $element->setRequired(true); $html .= '<td class="label">' . $element->getLabelHtml() . '</td><td class="value">'; $html .= $element->getElementHtml(); $selectName = str_replace('region', 'region_id', $element->getName()); $selectId = $element->getHtmlId() . '_id'; $html .= '<select id="' . $selectId . '" name="' . $selectName . '" class="select required-entry" style="display:none">'; $html .= '<option value="">' . $this->_factory->getHelper('customer')->__('Please select') . '</option>'; $html .= '</select>'; $html .= '<script type="text/javascript">' . "\n"; $html .= '$("' . $selectId . '").setAttribute("defaultValue", "' . $regionId . '");' . "\n"; $html .= 'new regionUpdater("' . $country->getHtmlId() . '", "' . $element->getHtmlId() . '", "' . $selectId . '", ' . $this->helper('directory')->getRegionJsonByStore($quoteStoreId) . ');' . "\n"; $html .= '</script>' . "\n"; $html .= '</td></tr>' . "\n"; return $html; }
public function render(Varien_Data_Form_Element_Abstract $element) { if ($country = $element->getForm()->getElement('country_id')) { $countryId = $country->getValue(); } else { return $element->getDefaultHtml(); } $regionId = $element->getForm()->getElement('region_id')->getValue(); $html = '<tr>'; $element->setClass('input-text'); $html .= '<td class="label">' . $element->getLabelHtml() . '</td><td class="value">'; $html .= $element->getElementHtml(); $selectName = str_replace('region', 'region_id', $element->getName()); $selectId = $element->getHtmlId() . '_id'; $html .= '<select id="' . $selectId . '" name="' . $selectName . '" class="select required-entry" style="display:none">'; $html .= '<option value="">' . AO::helper('customer')->__('Please select') . '</option>'; $html .= '</select>'; $html .= '<script type="text/javascript"> if ($("' . $country->getHtmlId() . '") != undefined) { new regionUpdater("' . $country->getHtmlId() . '", "' . $element->getHtmlId() . '", "' . $selectId . '", ' . $this->helper('directory')->getRegionJson() . '); } </script>'; $html .= '</td></tr>' . "\n"; return $html; }
/** * Add additional data to form element * * @param Varien_Data_Form_Element_Abstract $element * @return Mage_Adminhtml_Block_Sales_Order_Create_Form_Abstract */ protected function _addAdditionalFormElementData(Varien_Data_Form_Element_Abstract $element) { switch ($element->getId()) { case 'email': $element->setRequired(0); $element->setClass('validate-email'); break; } return $this; }
public function render(Varien_Data_Form_Element_Abstract $element) { $html = '<tr>' . "\n"; $countryId = false; if ($country = $element->getForm()->getElement('country_id')) { $countryId = $country->getValue(); } $regionCollection = false; if ($countryId) { if (!isset(self::$_regionCollections[$countryId])) { self::$_regionCollections[$countryId] = Mage::getModel('directory/country')->setId($countryId)->getLoadedRegionCollection()->toOptionArray(); } $regionCollection = self::$_regionCollections[$countryId]; } $regionId = intval($element->getForm()->getElement('region_id')->getValue()); $htmlAttributes = $element->getHtmlAttributes(); foreach ($htmlAttributes as $key => $attribute) { if ('type' === $attribute) { unset($htmlAttributes[$key]); break; } } // Output two elements - for 'region' and for 'region_id'. // Two elements are needed later upon form post - to properly set data to address model, // otherwise old value can be left in region_id attribute and saved to DB. // Depending on country selected either 'region' (input text) or 'region_id' (selectbox) is visible to user $regionHtmlName = $element->getName(); $regionIdHtmlName = str_replace('region', 'region_id', $regionHtmlName); $regionHtmlId = $element->getHtmlId(); $regionIdHtmlId = str_replace('region', 'region_id', $regionHtmlId); if ($regionCollection && count($regionCollection) > 0) { $elementClass = $element->getClass(); $html .= '<td class="label">' . $element->getLabelHtml() . '</td>'; $html .= '<td class="value">'; $html .= '<select id="' . $regionIdHtmlId . '" name="' . $regionIdHtmlName . '" ' . $element->serialize($htmlAttributes) . '>' . "\n"; foreach ($regionCollection as $region) { $selected = $regionId == $region['value'] ? ' selected="selected"' : ''; $html .= '<option value="' . (int) $region['value'] . '"' . $selected . '>' . $region['label'] . '</option>'; } $html .= '</select>' . "\n"; $html .= '<input type="hidden" name="' . $regionHtmlName . '" id="' . $regionHtmlId . '" value=""/>'; $html .= '</td>'; $element->setClass($elementClass); } else { $element->setClass('input-text'); $html .= '<td class="label"><label for="' . $element->getHtmlId() . '">' . $element->getLabel() . ' <span class="required" style="display:none">*</span></label></td>'; $element->setRequired(false); $html .= '<td class="value">'; $html .= '<input id="' . $regionHtmlId . '" name="' . $regionHtmlName . '" value="' . $element->getEscapedValue() . '" ' . $element->serialize($htmlAttributes) . "/>" . "\n"; $html .= '<input type="hidden" name="' . $regionIdHtmlName . '" id="' . $regionIdHtmlId . '" value=""/>'; $html .= '</td>' . "\n"; } $html .= '</tr>' . "\n"; return $html; }
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element) { $html = ''; $r = Mage::getStoreConfig('gomage_activation/advancednavigation/ar'); $value = explode(',', str_replace($r, '', Mage::helper('core')->decrypt($element->getValue()))); $nameprefix = $element->getName(); $idprefix = $element->getId(); $element->setName($nameprefix . '[]'); $info = Mage::helper('gomage_navigation')->ga(); if (isset($info['d']) && isset($info['c']) && intval($info['c']) > 0) { foreach (Mage::app()->getWebsites() as $website) { $element->setChecked(false); $id = $website->getId(); $name = $website->getName(); $element->setId($idprefix . '_' . $id); $element->setValue($id); $element->setClass('gomage-navigation-available-sites'); if (in_array($id, $value) !== false) { $element->setChecked(true); } if ($id != 0) { $html .= '<div><label>' . $element->getElementHtml() . ' ' . $name . ' </label></div>'; } } $html .= ' <input id="' . $idprefix . '_diasbled" type="hidden" disabled="disabled" name="' . $nameprefix . '" /> <script type="text/javascript"> function updateGomageNavigationWebsites(){ $("' . $idprefix . '_diasbled").disabled = "disabled"; if($$(".gomage-navigation-available-sites:checked").length >= ' . intval($info['c']) . '){ $$(".gomage-navigation-available-sites").each(function(e){ if(!e.checked){ e.disabled = "disabled"; } }); }else { $$(".gomage-navigation-available-sites").each(function(e){ if(!e.checked){ e.disabled = ""; } }); if($$(".gomage-navigation-available-sites:checked").length == 0){ $("' . $idprefix . '_diasbled").disabled = ""; } } } $$(".gomage-navigation-available-sites").each(function(e){ e.observe("click", function(){ updateGomageNavigationWebsites(); }); }); updateGomageNavigationWebsites(); </script>'; } else { $html = sprintf('<strong class="required">%s</strong>', $this->__('Please enter a valid key')); } return $html; }
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element) { $html = ''; $nameprefix = $element->getName(); $idprefix = $element->getId(); $element->setName($nameprefix . '[]'); $info = array(); $info['c'] = '5'; $info['d'] = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB); if (isset($info['d']) && isset($info['c']) && intval($info['c']) > 0) { foreach (Mage::app()->getWebsites() as $website) { $element->setChecked(false); $id = $website->getId(); $name = $website->getName(); $element->setId($idprefix . '_' . $id); $element->setValue($id); $element->setClass('gomage-checkout-available-sites'); if ($id !== false) { $element->setChecked(true); } if ($id != 0) { $html .= '<div><label>' . $element->getElementHtml() . ' ' . $name . ' </label></div>'; } } $html .= ' <input id="' . $idprefix . '_diasbled" type="hidden" disabled="disabled" name="' . $nameprefix . '" /> <script type="text/javascript"> function updateGomageCheckoutWebsites(){ $("' . $idprefix . '_diasbled").disabled = "disabled"; if($$(".gomage-checkout-available-sites:checked").length >= ' . intval($info['c']) . '){ $$(".gomage-checkout-available-sites").each(function(e){ if(!e.checked){ e.disabled = "disabled"; } }); }else { $$(".gomage-checkout-available-sites").each(function(e){ if(!e.checked){ e.disabled = ""; } }); if($$(".gomage-checkout-available-sites:checked").length == 0){ $("' . $idprefix . '_diasbled").disabled = ""; } } } $$(".gomage-checkout-available-sites").each(function(e){ e.observe("click", function(){ updateGomageCheckoutWebsites(); }); }); updateGomageCheckoutWebsites(); </script>'; } else { $html = sprintf('<strong class="required">%s</strong>', $this->__('Please enter a valid key')); } return $html; }