diff --git a/app/code/community/OpenTools/Ordernumber/Block/Counters.php b/app/code/community/OpenTools/Ordernumber/Block/Counters.php index 272b00cc8c2213fdd7fa6b2bb18ce852ea8cfe51..3f5e18ec432594acf22d94e871204a28cdead11b 100644 --- a/app/code/community/OpenTools/Ordernumber/Block/Counters.php +++ b/app/code/community/OpenTools/Ordernumber/Block/Counters.php @@ -1,418 +1,436 @@ <?php class OpenTools_Ordernumber_Block_Counters extends Mage_Adminhtml_Block_System_Config_Form_Field { - protected $_addRowButtonHtml = array(); - protected $_addRowDeleteButtonHtml = array(); - protected $_editRowButtonHtml = array(); - protected $_editCancelRowButtonHtml = array(); - protected $_deleteRowButtonHtml = array(); - protected $_undeleteRowButtonHtml = array(); - protected $_types = null; - - protected $_dbModel = null; - protected function _getModel() { - return Mage::getModel('opentools_ordernumber/ordernumber'); - } - public function getModel() { - if (is_null($this->_dbModel)) - $this->_dbModel = $this->_getModel(); - return $this->_dbModel; - } - - public function getNumberTypes() { - if (is_null($this->_types)) { - $this->_types = $this->getModel()->getNumberTypes(); - } - return $this->_types; - } - - function logitem($label, $item) { - Mage::Log($label . " " . get_class($item) . "\n", null, 'ordernumber.log'); - Mage::Log(is_array($item)?$item:$item->debug(), null, 'ordernumber.log'); - Mage::Log(get_class_methods(get_class($item)), null, 'ordernumber.log'); - } - - /** - * Returns html part of the setting - * - * @param Varien_Data_Form_Element_Abstract $element - * @return string - */ - public function render(Varien_Data_Form_Element_Abstract $element) - { - $this->setElement($element); + protected $_addRowButtonHtml = array(); + protected $_newRowDeleteBtn = array(); + protected $_editRowButtonHtml = array(); + protected $_editCancelRowButtonHtml = array(); + protected $_deleteRowButtonHtml = array(); + protected $_undeleteRowButtonHtml = array(); + protected $_types = null; + + protected $_dbModel = null; + protected function _getModel() + { + return Mage::getModel('opentools_ordernumber/ordernumber'); + } + + public function getModel() + { + if (is_null($this->_dbModel)) { + $this->_dbModel = $this->_getModel(); + } + return $this->_dbModel; + } + + public function getNumberTypes() + { + if (is_null($this->_types)) { + $this->_types = $this->getModel()->getNumberTypes(); + } + return $this->_types; + } + + protected function logitem($label, $item) + { + Mage::Log($label . " " . get_class($item) . "\n", null, 'ordernumber.log'); + Mage::Log(is_array($item)?$item:$item->debug(), null, 'ordernumber.log'); + Mage::Log(get_class_methods(get_class($item)), null, 'ordernumber.log'); + } + + /** + * Returns html part of the setting + * + * @param Varien_Data_Form_Element_Abstract $element + * @return string + */ + public function render(Varien_Data_Form_Element_Abstract $element) + { + $this->setElement($element); $html = ''; - $html .= '<table id="ordernumber_counters_template_table" style="display:none">'; - $html .= $this->_getRowHtmlNew(); - $html .= '</table>'; + $html .= '<table id="ordernumber_counters_template_table" style="display:none">'; + $html .= $this->_getRowHtmlNew(); + $html .= '</table>'; - $html .= '<div class="grid"><table id="ordernumber_counters_table" class="data" style="width: 100%;">'; - $html .= $this->_getRowHeader(); + $html .= '<div class="grid"><table id="ordernumber_counters_table" class="data" style="width: 100%;">'; + $html .= $this->_getRowHeader(); - $collection = $this->getModel()->getCollection()->addOrder('number_type', Varien_Data_Collection::SORT_ORDER_ASC)->addOrder('number_format', Varien_Data_Collection::SORT_ORDER_ASC); - foreach ($collection as $counter) { - $html .= $this->_getRowHtml($counter); - } + $collection = $this->getModel()->getCollection()->addOrder('number_type', Varien_Data_Collection::SORT_ORDER_ASC)->addOrder('number_format', Varien_Data_Collection::SORT_ORDER_ASC); + foreach ($collection as $counter) { + $html .= $this->_getRowHtml($counter); + } - $html .= '</table></div>'; + $html .= '</table></div>'; return '<tr id="row_' . $element->getHtmlId() . '"><td colspan="5">' . $html . '</td></tr>'; - } - - /** - * Retrieve html for the table header - * @return string - */ - protected function _getRowHeader() - { - $html = '<tr class="headings">'; - $html .= '<th>'. $this->__('Counter Type') . '</th>'; - $html .= '<th>'. $this->__('Scope') . '</th>'; - $html .= '<th>'. $this->__('Counter Name') . '</th>'; - $html .= '<th>'. $this->__('Counter') . '</</th>'; - $html .= '<th>' . $this->_getAddRowButtonHtml('ordernumber_counters_table', - 'ordernumber_counters_template_table', 'Add New Counter') . '</th>'; - $html .= '</tr>'; - return $html; - } - - /** - * Retrieve html template for new counters - * - * @return string - */ - protected function _getRowHtmlNew() - { - $html = '<tr>'; - $html .= '<td>' . $this->_getNumberTypeSelect($this->getElement()->getName() . '[new_counter_type][]', true) . '</td>'; - $html .= '<td>' . $this->_getNumberScopeSelect($this->getElement()->getName() . '[new_counter_scope][]', true) . '</td>'; - $html .= '<td><input type="text" name="' . $this->getElement()->getName() . '[new_counter_name][]" disabled /></td>'; - $html .= '<td><input class="counter_edit validate-not-negative-number input-text" type="text" name="' . $this->getElement()->getName() . '[new_counter_value][]" disabled /></td>'; - $html .= '<td>' . $this->_getAddRowDeleteButtonHtml() . '</td>'; - $html .= '</tr>'; - return $html; - } - - protected function _getNumberTypeSelect($name, $id='', $disabled=true, $current=null) - { - $options = array(); - foreach ($this->getNumberTypes() as $type=>$label) { - $options[] = array('value'=>$type, 'label'=>$label); - } - $html = $this->getLayout()->createBlock('core/html_select') - ->setName($name) - ->setClass($this->_getDisabled($disabled)) - ->setValue($current) - ->setOptions($options) - ->setExtraParams($this->_getDisabled($disabled)) - ->toHtml(); - return $html; - } - - /** - * Retrieve stores structure; Adjusted from Mage_Adminhtml_Model_System_Store::getStoreValuesForForm - * to also include "All stores|views of website|store: ..." in the possible selections - * Also adjusted the values of the options - * - * @param bool $isAll - * @param array $storeIds - * @param array $groupIds - * @param array $websiteIds - * @return array - */ - public function _getScoreStructureOptions($isAll = false, $websiteIds = array(), $groupIds = array(), $storeIds = array()) - { - $sstore = Mage::getSingleton('adminhtml/system_store'); + } + + /** + * Retrieve html for the table header + * @return string + */ + protected function _getRowHeader() + { + $html = '<tr class="headings">'; + $html .= '<th>'. $this->__('Counter Type') . '</th>'; + $html .= '<th>'. $this->__('Scope') . '</th>'; + $html .= '<th>'. $this->__('Counter Name') . '</th>'; + $html .= '<th>'. $this->__('Counter') . '</</th>'; + $html .= '<th>' . $this->_getAddRowButtonHtml('ordernumber_counters_table', + 'ordernumber_counters_template_table', 'Add New Counter') . '</th>'; + $html .= '</tr>'; + return $html; + } + + /** + * Retrieve html template for new counters + * + * @return string + */ + protected function _getRowHtmlNew() + { + $html = '<tr>'; + $html .= '<td>' . $this->_getNumberTypeSelect($this->getElement()->getName() . '[new_counter_type][]', true) . '</td>'; + $html .= '<td>' . $this->_getNumberScopeSelect($this->getElement()->getName() . '[new_counter_scope][]', true) . '</td>'; + $html .= '<td><input type="text" name="' . $this->getElement()->getName() . '[new_counter_name][]" disabled /></td>'; + $html .= '<td><input class="counter_edit validate-not-negative-number input-text" type="text" name="' . $this->getElement()->getName() . '[new_counter_value][]" disabled /></td>'; + $html .= '<td>' . $this->_getNewRowDeleteBtn() . '</td>'; + $html .= '</tr>'; + return $html; + } + + protected function _getNumberTypeSelect($name, $id='', $disabled=true, $current=null) + { + $options = array(); + foreach ($this->getNumberTypes() as $type=>$label) { + $options[] = array('value'=>$type, 'label'=>$label); + } + $html = $this->getLayout()->createBlock('core/html_select') + ->setName($name) + ->setClass($this->_getDisabled($disabled)) + ->setValue($current) + ->setOptions($options) + ->setExtraParams($this->_getDisabled($disabled)) + ->toHtml(); + return $html; + } + + /** + * Retrieve stores structure; Adjusted from Mage_Adminhtml_Model_System_Store::getStoreValuesForForm + * to also include "All stores|views of website|store: ..." in the possible selections + * Also adjusted the values of the options + * + * @param bool $isAll + * @param array $storeIds + * @param array $groupIds + * @param array $websiteIds + * @return array + */ + public function _getScoreStructureOptions($isAll = false, $websiteIds = array(), + $groupIds = array(), $storeIds = array() + ) { + $sstore = Mage::getSingleton('adminhtml/system_store'); $nonEscapableNbspChar = html_entity_decode(' ', ENT_NOQUOTES, 'UTF-8'); - $out = array(); - - if ($isAll) { - $out[] = array( - 'value' => '', - 'label' => $this->__('Global') - ); - } - - $websites = $sstore->getWebsiteCollection(); - foreach ($websites as $website) { - $websiteId = $website->getId(); - $siteStr = (int)$websiteId; - if ($websiteIds && !in_array($websiteId, $websiteIds)) { - continue; - } - $out[] = array( - 'value' => $siteStr, - 'label' => $this->__('All stores of website: %s', $website->getName()) - ); - // We cannot nest optiongroups, so we have to emulate it by inserting an empty optiongroup and manually indenting the groups and stores - $out[] = array( - 'value' => array(), - 'label' => $this->__('Stores of website: %s', $website->getName()), - ); - - foreach ($website->getGroups() as $group) { - $groupId = $group->getId(); - $groupStr = $siteStr . '/' . (int)$groupId; - - if ($groupIds && !in_array($groupId, $groupIds)) { - continue; - } - - $out[] = array( - 'value' => $groupStr, - 'label' => str_repeat($nonEscapableNbspChar, 4) . $this->__('All views of store: %s', $group->getName()), - ); - - $stores = array(); - foreach ($group->getStores() as $store) { - - $storeId = $store->getId(); - $storeStr = $groupStr . '/' . (int)$storeId; - if ($storeIds && !in_array($storeId, $storeIds)) { - continue; - } - $stores[] = array( - 'value' => $storeStr, - 'label' => str_repeat($nonEscapableNbspChar, 4) . $store->getName(), - ); - } - if (!empty($stores)) { - $out[] = array( - 'value' => $stores, - 'label' => str_repeat($nonEscapableNbspChar, 4) . $this->__('Views of store: %s', $group->getName()), - ); - } - } - } - return $out; - } - - protected function _getNumberScopeSelect($name, $disabled=true, $current=null) - { + $out = array(); + + if ($isAll) { + $out[] = array( + 'value' => '', + 'label' => $this->__('Global') + ); + } + + $websites = $sstore->getWebsiteCollection(); + foreach ($websites as $website) { + $websiteId = $website->getId(); + $siteStr = (int)$websiteId; + if ($websiteIds && !in_array($websiteId, $websiteIds)) { + continue; + } + $out[] = array( + 'value' => $siteStr, + 'label' => $this->__('All stores of website: %s', $website->getName()) + ); + // We cannot nest optiongroups, so we have to emulate it by inserting an empty + // optiongroup and manually indenting the groups and stores + $out[] = array( + 'value' => array(), + 'label' => $this->__('Stores of website: %s', $website->getName()), + ); + + foreach ($website->getGroups() as $group) { + $groupId = $group->getId(); + $groupStr = $siteStr . '/' . (int)$groupId; + + if ($groupIds && !in_array($groupId, $groupIds)) { + continue; + } + + $out[] = array( + 'value' => $groupStr, + 'label' => str_repeat($nonEscapableNbspChar, 4) . + $this->__('All views of store: %s', $group->getName()), + ); + + $stores = array(); + foreach ($group->getStores() as $store) { + + $storeId = $store->getId(); + $storeStr = $groupStr . '/' . (int)$storeId; + if ($storeIds && !in_array($storeId, $storeIds)) { + continue; + } + $stores[] = array( + 'value' => $storeStr, + 'label' => str_repeat($nonEscapableNbspChar, 4) . $store->getName(), + ); + } + if (!empty($stores)) { + $out[] = array( + 'value' => $stores, + 'label' => str_repeat($nonEscapableNbspChar, 4) . + $this->__('Views of store: %s', $group->getName()), + ); + } + } + } + return $out; + } + + protected function _getNumberScopeSelect($name, $disabled=true, $current=null) + { $options = $this->_getScoreStructureOptions(true); - $html = $this->getLayout()->createBlock('core/html_select') - ->setName($name) - ->setClass($this->_getDisabled($disabled)) - ->setValue($current) - ->setOptions($options) - ->setExtraParams($this->_getDisabled($disabled)) - ->toHtml(); - return $html; - } - - /** Convert the scope id ('' for global, websiteID/groupID/storeID) - * to a human-readable string - * - * @param $scope_ids scope id ('' for global, websiteID/groupID/storeID) - * @return string - */ - protected function _convertScopeToString($scope_ids) - { - $sstore = Mage::getSingleton('adminhtml/system_store'); - $nonEscapableNbspChar = html_entity_decode(' ', ENT_NOQUOTES, 'UTF-8'); - $ids = explode ('/', $scope_ids); - - $scopes = array(); - if (empty($ids) || empty($ids[0])) { - $scopes[] = $this->__('Global'); - } else { - $website = Mage::getModel('core/website')->load($ids[0]); - if ($website) - $scopes[] = $this->__('Website: %s', $website->getName()); - } - if (count($ids)>1) { - $group = Mage::getModel('core/store_group')->load($ids[1]); - if ($group) - $scopes[] = str_repeat($nonEscapableNbspChar, 4) . $this->__('Store: %s', $group->getName()); - } - if (count($ids)>2) { - $store = Mage::getModel('core/store')->load($ids[2]); - if ($store) - $scopes[] = str_repeat($nonEscapableNbspChar, 8) . $this->__('View: %s', $store->getName()); - } - return implode('<br />', $scopes); - } - - /** - * Retrieve html template for setting - * - * @param int $rowIndex - * @return string - */ - protected function _getRowHtml($counter) - { - static $class='odd'; - - $html = '<tr class="'.$class.'">'; - $class = ($class=='odd')?'even':'odd'; - $types = $this->getNumberTypes(); - $html .= '<td class="ordernumber_type">'.$types[$counter->getNumberType()].'</td>'; - $html .= '<td class="ordernumber_scope">' . $this->_convertScopeToString($counter->getNumberScope()) . '</td>'; - $html .= '<td class="ordernumber_name">' . $counter->getNumberFormat() . '</td>'; - $html .= '<td class="ordernumber_counter">' . - '<div class="">' . (int)$counter->getCount() . '</div>' . - '<input type="hidden" disabled class="oton-counter-formelement oton-counter-edit oton-counter-delete" name="' . $this->getElement()->getName() . '[oldcounter][' . (int)$counter->getId() . ']" value="' . (int)$counter->getCount() . '" />' . - '<input style="display:none" disabled="disabled" class="oton-counter-formelement oton-counter-edit validate-not-negative-number input-text" name="' . $this->getElement()->getName() . '[counter][' . (int)$counter->getId() . ']" value="' . (int)$counter->getCount() . '" ' . $this->_getDisabled() . '/>' . - '</td>'; - - $html .= '<td>' . - $this->_getEditRowButtonHtml() . - $this->_getEditCancelRowButtonHtml() . - '<input type="hidden" disabled class="oton-counter-formelement oton-counter-delete" name="'. $this->getElement()->getName() . '[deletecounter][]" value="' . (int)$counter->getId() . '" />' . - $this->_getDeleteRowButtonHtml() . - $this->_getUndeleteRowButtonHtml() . - '</td>'; - $html .= '</tr>'; - - return $html; - } - - protected function _getDisabled($forceDisabled=false) - { - return ($forceDisabled || $this->getElement()->getDisabled()) ? ' disabled' : ''; - } - - protected function _getValue($key) - { - return $this->getElement()->getData('value/' . $key); - } - - protected function _getSelected($key, $value) - { - return $this->getElement()->getData('value/' . $key) == $value ? 'selected="selected"' : ''; - } - - protected function _getJSAddRow($container, $template) { - $js = " - var tmpl=$('" . $template . "'); - Form.getElements(tmpl).invoke('enable').invoke('removeClassName', 'disabled'); - var newc=$('" . $template . "').innerHTML; - Element.insert($('" . $container . "'), {bottom: newc}); - $('" . $template . "').select('input, select, button').invoke('disable').invoke('addClassName', 'disabled'); "; - return $js; - } - protected function _getJSEditRow($selector) { - $js = " - $(this).up('" . $selector . "').select('.oton-counter-formelement').invoke('hide').invoke('disable').invoke('addClassName', 'disabled'); - $(this).up('" . $selector . "').select('.oton-counter-edit').invoke('show').invoke('enable').invoke('removeClassName', 'disabled');"; - return $js; - - } - protected function _getJSEditCancelRow($selector) { - $js = " - $(this).up('" . $selector . "').select('.oton-counter-formelement').invoke('hide').invoke('disable').invoke('addClassName', 'disabled'); - $(this).up('" . $selector . "').select('.oton-counter-display').invoke('show').invoke('enable').invoke('removeClassName', 'disabled');"; - return $js; - - } - protected function _getJSDeleteRow($selector) { - $js = " - var tr=$(this).up('" . $selector . "'); - tr.select('.oton-counter-formelement').invoke('hide').invoke('disable').invoke('addClassName', 'disabled'); - tr.select('.oton-counter-delete').invoke('show').invoke('enable').invoke('removeClassName', 'disabled'); - tr.setStyle({textDecoration: 'line-through'});"; - return $js; - } - protected function _getJSUndeleteRow($selector) { - $js = " - var tr=$(this).up('" . $selector . "'); - tr.select('.oton-counter-formelement').invoke('hide').invoke('disable').invoke('addClassName', 'disabled'); - tr.select('.oton-counter-display').invoke('show').invoke('enable').invoke('removeClassName', 'disabled'); - tr.setStyle({textDecoration: ''});"; - return $js; - } - protected function _getJSDeleteNewRow($selector) { - $js = "Element.remove($(this).up('" . $selector . "'))"; - return $js; - } - - - - protected function _getAddRowDeleteButtonHtml($selector = 'tr', $title='Delete') - { - if (!$this->_addRowDeleteButtonHtml) { - $this->_addRowDeleteButtonHtml = $this->getLayout()->createBlock('adminhtml/widget_button') - ->setType('button') - ->setClass('delete v-middle oton-counter-add-delete' . $this->_getDisabled()) - ->setLabel($this->__($title)) - ->setOnClick($this->_getJSDeleteNewRow($selector)) - ->setDisabled($this->_getDisabled()) - ->toHtml(); - } - return $this->_addRowDeleteButtonHtml; - } - - protected function _getAddRowButtonHtml($container, $template, $title='Add') - { - if (!isset($this->_addRowButtonHtml[$container])) { - $this->_addRowButtonHtml[$container] = $this->getLayout()->createBlock('adminhtml/widget_button') - ->setType('button') - ->setClass('add oton-counter-add' . $this->_getDisabled()) - ->setLabel($this->__($title)) - ->setOnClick($this->_getJSAddRow($container, $template)) - ->setDisabled($this->_getDisabled()) - ->toHtml(); - } - return $this->_addRowButtonHtml[$container]; - } - - protected function _getEditRowButtonHtml($selector = 'tr', $title='Edit') - { - if (!$this->_editRowButtonHtml) { - $this->_editRowButtonHtml = $this->getLayout()->createBlock('adminhtml/widget_button') - ->setType('button') - ->setClass('edit v-middle oton-counter-formelement oton-counter-display' . $this->_getDisabled()) - ->setLabel($this->__($title)) - ->setOnClick($this->_getJSEditRow($selector)) - ->setDisabled($this->_getDisabled()) - ->toHtml(); - } - return $this->_editRowButtonHtml; - } - - protected function _getEditCancelRowButtonHtml($selector = 'tr', $title='Cancel') - { - if (!$this->_editCancelRowButtonHtml) { - $this->_editCancelRowButtonHtml = $this->getLayout()->createBlock('adminhtml/widget_button') - ->setType('button') - ->setClass('cancel v-middle oton-counter-formelement oton-counter-edit' . $this->_getDisabled()) - ->setLabel($this->__($title)) - ->setOnClick($this->_getJSEditCancelRow($selector)) - ->setDisabled($this->_getDisabled()) - ->setStyle('display: none;') - ->toHtml(); - } - return $this->_editCancelRowButtonHtml; - } - - protected function _getDeleteRowButtonHtml($selector = 'tr', $title = 'Delete') - { - if (!$this->_deleteRowButtonHtml) { - $this->_deleteRowButtonHtml = $this->getLayout()->createBlock('adminhtml/widget_button') - ->setType('button') - ->setClass('delete v-middle oton-counter-formelement oton-counter-display oton-counter-edit' . $this->_getDisabled()) - ->setLabel($this->__($title)) - ->setOnClick($this->_getJSDeleteRow($selector)) - ->setDisabled($this->_getDisabled()) - ->toHtml(); - } - return $this->_deleteRowButtonHtml; - } - protected function _getUndeleteRowButtonHtml($selector = 'tr', $title = 'Restore') - { - if (!$this->_undeleteRowButtonHtml) { - $this->_undeleteRowButtonHtml = $this->getLayout()->createBlock('adminhtml/widget_button') - ->setType('button') - ->setClass('v-middle oton-counter-formelement oton-counter-delete') - ->setLabel($this->__($title)) - ->setOnClick($this->_getJSUndeleteRow($selector)) - ->setDisabled($this->_getDisabled() || true) - ->setStyle('display: none;') - ->toHtml(); - } - return $this->_undeleteRowButtonHtml; - } - - -} \ No newline at end of file + $html = $this->getLayout()->createBlock('core/html_select') + ->setName($name) + ->setClass($this->_getDisabled($disabled)) + ->setValue($current) + ->setOptions($options) + ->setExtraParams($this->_getDisabled($disabled)) + ->toHtml(); + return $html; + } + + /** Convert the scope id ('' for global, websiteID/groupID/storeID) + * to a human-readable string + * + * @param $scope_ids scope id ('' for global, websiteID/groupID/storeID) + * @return string + */ + protected function _convertScopeToString($scopeIds) + { + $nonEscapableNbspChar = html_entity_decode(' ', ENT_NOQUOTES, 'UTF-8'); + $ids = explode ('/', $scopeIds); + + $scopes = array(); + if (empty($ids) || empty($ids[0])) { + $scopes[] = $this->__('Global'); + } else { + $website = Mage::getModel('core/website')->load($ids[0]); + if ($website) { + $scopes[] = $this->__('Website: %s', $website->getName()); + } + } + if (count($ids)>1) { + $group = Mage::getModel('core/store_group')->load($ids[1]); + if ($group) { + $scopes[] = str_repeat($nonEscapableNbspChar, 4) . $this->__('Store: %s', $group->getName()); + } + } + if (count($ids)>2) { + $store = Mage::getModel('core/store')->load($ids[2]); + if ($store) { + $scopes[] = str_repeat($nonEscapableNbspChar, 8) . $this->__('View: %s', $store->getName()); + } + } + return implode('<br />', $scopes); + } + + /** + * Retrieve html template for setting + * + * @param int $rowIndex + * @return string + */ + protected function _getRowHtml($counter) + { + static $class='odd'; + + $html = '<tr class="'.$class.'">'; + $class = ($class=='odd')?'even':'odd'; + $types = $this->getNumberTypes(); + $html .= '<td class="ordernumber_type">'.$types[$counter->getNumberType()].'</td>'; + $html .= '<td class="ordernumber_scope">' . $this->_convertScopeToString($counter->getNumberScope()) . '</td>'; + $html .= '<td class="ordernumber_name">' . $counter->getNumberFormat() . '</td>'; + $html .= '<td class="ordernumber_counter">' . + '<div class="">' . (int)$counter->getCount() . '</div>' . + '<input type="hidden" disabled class="oton-counter-formelement oton-counter-edit oton-counter-delete" name="' . $this->getElement()->getName() . '[oldcounter][' . (int)$counter->getId() . ']" value="' . (int)$counter->getCount() . '" />' . + '<input style="display:none" disabled="disabled" class="oton-counter-formelement oton-counter-edit validate-not-negative-number input-text" name="' . $this->getElement()->getName() . '[counter][' . (int)$counter->getId() . ']" value="' . (int)$counter->getCount() . '" ' . $this->_getDisabled() . '/>' . + '</td>'; + + $html .= '<td>' . + $this->_getEditRowButtonHtml() . + $this->_getEditCancelRowButtonHtml() . + '<input type="hidden" disabled class="oton-counter-formelement oton-counter-delete" name="'. $this->getElement()->getName() . '[deletecounter][]" value="' . (int)$counter->getId() . '" />' . + $this->_getDeleteRowButtonHtml() . + $this->_getUndeleteRowButtonHtml() . + '</td>'; + $html .= '</tr>'; + + return $html; + } + + protected function _getDisabled($forceDisabled=false) + { + return ($forceDisabled || $this->getElement()->getDisabled()) ? ' disabled' : ''; + } + + protected function _getValue($key) + { + return $this->getElement()->getData('value/' . $key); + } + + protected function _getSelected($key, $value) + { + return $this->getElement()->getData('value/' . $key) == $value ? 'selected="selected"' : ''; + } + + protected function _getJSAddRow($container, $template) + { + $js = " + var tmpl=$('" . $template . "'); + Form.getElements(tmpl).invoke('enable').invoke('removeClassName', 'disabled'); + var newc=$('" . $template . "').innerHTML; + Element.insert($('" . $container . "'), {bottom: newc}); + $('" . $template . "').select('input, select, button').invoke('disable').invoke('addClassName', 'disabled'); "; + return $js; + } + protected function _getJSEditRow($selector) + { + $js = " + $(this).up('" . $selector . "').select('.oton-counter-formelement').invoke('hide').invoke('disable').invoke('addClassName', 'disabled'); + $(this).up('" . $selector . "').select('.oton-counter-edit').invoke('show').invoke('enable').invoke('removeClassName', 'disabled');"; + return $js; + + } + protected function _getJSEditCancelRow($selector) + { + $js = " + $(this).up('" . $selector . "').select('.oton-counter-formelement').invoke('hide').invoke('disable').invoke('addClassName', 'disabled'); + $(this).up('" . $selector . "').select('.oton-counter-display').invoke('show').invoke('enable').invoke('removeClassName', 'disabled');"; + return $js; + + } + protected function _getJSDeleteRow($selector) + { + $js = " + var tr=$(this).up('" . $selector . "'); + tr.select('.oton-counter-formelement').invoke('hide').invoke('disable').invoke('addClassName', 'disabled'); + tr.select('.oton-counter-delete').invoke('show').invoke('enable').invoke('removeClassName', 'disabled'); + tr.setStyle({textDecoration: 'line-through'});"; + return $js; + } + protected function _getJSUndeleteRow($selector) + { + $js = " + var tr=$(this).up('" . $selector . "'); + tr.select('.oton-counter-formelement').invoke('hide').invoke('disable').invoke('addClassName', 'disabled'); + tr.select('.oton-counter-display').invoke('show').invoke('enable').invoke('removeClassName', 'disabled'); + tr.setStyle({textDecoration: ''});"; + return $js; + } + protected function _getJSDeleteNewRow($selector) + { + $js = "Element.remove($(this).up('" . $selector . "'))"; + return $js; + } + + + + protected function _getNewRowDeleteBtn($selector = 'tr', $title='Delete') + { + if (!$this->_newRowDeleteBtn) { + $this->_newRowDeleteBtn = $this->getLayout()->createBlock('adminhtml/widget_button') + ->setType('button') + ->setClass('delete v-middle oton-counter-add-delete' . $this->_getDisabled()) + ->setLabel($this->__($title)) + ->setOnClick($this->_getJSDeleteNewRow($selector)) + ->setDisabled($this->_getDisabled()) + ->toHtml(); + } + return $this->_newRowDeleteBtn; + } + + protected function _getAddRowButtonHtml($container, $template, $title='Add') + { + if (!isset($this->_addRowButtonHtml[$container])) { + $this->_addRowButtonHtml[$container] = $this->getLayout()->createBlock('adminhtml/widget_button') + ->setType('button') + ->setClass('add oton-counter-add' . $this->_getDisabled()) + ->setLabel($this->__($title)) + ->setOnClick($this->_getJSAddRow($container, $template)) + ->setDisabled($this->_getDisabled()) + ->toHtml(); + } + return $this->_addRowButtonHtml[$container]; + } + + protected function _getEditRowButtonHtml($selector = 'tr', $title='Edit') + { + if (!$this->_editRowButtonHtml) { + $this->_editRowButtonHtml = $this->getLayout()->createBlock('adminhtml/widget_button') + ->setType('button') + ->setClass('edit v-middle oton-counter-formelement oton-counter-display' . $this->_getDisabled()) + ->setLabel($this->__($title)) + ->setOnClick($this->_getJSEditRow($selector)) + ->setDisabled($this->_getDisabled()) + ->toHtml(); + } + return $this->_editRowButtonHtml; + } + + protected function _getEditCancelRowButtonHtml($selector = 'tr', $title='Cancel') + { + if (!$this->_editCancelRowButtonHtml) { + $this->_editCancelRowButtonHtml = $this->getLayout()->createBlock('adminhtml/widget_button') + ->setType('button') + ->setClass('cancel v-middle oton-counter-formelement oton-counter-edit' . $this->_getDisabled()) + ->setLabel($this->__($title)) + ->setOnClick($this->_getJSEditCancelRow($selector)) + ->setDisabled($this->_getDisabled()) + ->setStyle('display: none;') + ->toHtml(); + } + return $this->_editCancelRowButtonHtml; + } + + protected function _getDeleteRowButtonHtml($selector = 'tr', $title = 'Delete') + { + if (!$this->_deleteRowButtonHtml) { + $this->_deleteRowButtonHtml = $this->getLayout()->createBlock('adminhtml/widget_button') + ->setType('button') + ->setClass('delete v-middle oton-counter-formelement oton-counter-display oton-counter-edit' . $this->_getDisabled()) + ->setLabel($this->__($title)) + ->setOnClick($this->_getJSDeleteRow($selector)) + ->setDisabled($this->_getDisabled()) + ->toHtml(); + } + return $this->_deleteRowButtonHtml; + } + protected function _getUndeleteRowButtonHtml($selector = 'tr', $title = 'Restore') + { + if (!$this->_undeleteRowButtonHtml) { + $this->_undeleteRowButtonHtml = $this->getLayout()->createBlock('adminhtml/widget_button') + ->setType('button') + ->setClass('v-middle oton-counter-formelement oton-counter-delete') + ->setLabel($this->__($title)) + ->setOnClick($this->_getJSUndeleteRow($selector)) + ->setDisabled($this->_getDisabled() || true) + ->setStyle('display: none;') + ->toHtml(); + } + return $this->_undeleteRowButtonHtml; + } + + +} diff --git a/app/code/community/OpenTools/Ordernumber/Block/Replacements.php b/app/code/community/OpenTools/Ordernumber/Block/Replacements.php index 64e811ddf0ce27950f7964632f70191d108b57f3..5254989c0ebf45741da2d69405603008a2cf9b0f 100644 --- a/app/code/community/OpenTools/Ordernumber/Block/Replacements.php +++ b/app/code/community/OpenTools/Ordernumber/Block/Replacements.php @@ -1,250 +1,252 @@ <?php class OpenTools_Ordernumber_Block_Replacements extends Mage_Adminhtml_Block_System_Config_Form_Field { - protected $_addRowButtonHtml = array(); - protected $_deleteRowButtonHtml = array(); - - function logitem($label, $item) { - Mage::Log($label . " " . get_class($item) . "\n", null, 'ordernumber.log'); - Mage::Log(is_array($item)?$item:$item->debug(), null, 'ordernumber.log'); - Mage::Log(get_class_methods(get_class($item)), null, 'ordernumber.log'); - } - - /** - * Returns html part of the setting. - * - * @param Varien_Data_Form_Element_Abstract $element - * @return string - */ - public function _getElementHtml(Varien_Data_Form_Element_Abstract $element) - { - $this->setElement($element); + protected $_addRowButtonHtml = array(); + protected $_deleteRowButtonHtml = array(); + + public function logitem($label, $item) + { + Mage::Log($label . " " . get_class($item) . "\n", null, 'ordernumber.log'); + Mage::Log(is_array($item)?$item:$item->debug(), null, 'ordernumber.log'); + Mage::Log(get_class_methods(get_class($item)), null, 'ordernumber.log'); + } + + /** + * Returns html part of the setting. + * + * @param Varien_Data_Form_Element_Abstract $element + * @return string + */ + public function _getElementHtml(Varien_Data_Form_Element_Abstract $element) + { + $this->setElement($element); $html = ''; - $html .= '<table id="ordernumber_replacements_template_table" style="display:none">'; - $html .= $this->_getRowHtml(); - $html .= '</table>'; + $html .= '<table id="ordernumber_replacements_template_table" style="display:none">'; + $html .= $this->_getRowHtml(); + $html .= '</table>'; - $html .= '<div class="grid"><table id="ordernumber_replacements_table" class="data" style="width: 100%;">'; - $html .= $this->_getRowHeader(); + $html .= '<div class="grid"><table id="ordernumber_replacements_table" class="data" style="width: 100%;">'; + $html .= $this->_getRowHeader(); -// $this->logitem("render element: ", $element); - if ($this->_getValue('')) { - foreach ($this->_getValue('') as $i => $values) { + // $this->logitem("render element: ", $element); + if ($this->_getValue('')) { + foreach ($this->_getValue('') as $i => $values) { $html .= $this->_getRowHtml($i, $values); - } - } else { - $html .= $this->_getEmptyRowHtml(); - } - - $html .= '</table></div>'; - return $html; - } - - /** - * Render the whole table row for the form field. - * Adjusted from ./app/code/core/Mage/Adminhtml/Block/System/Config/Form/Field.php - * Adjustments: Removed label, form control spans two columns. - * - * @param Varien_Data_Form_Element_Abstract $element - * @return string - */ - public function render(Varien_Data_Form_Element_Abstract $element) - { - $id = $element->getHtmlId(); - - //$isDefault = !$this->getRequest()->getParam('website') && !$this->getRequest()->getParam('store'); - $isMultiple = $element->getExtType()==='multiple'; - - // replace [value] with [inherit] - $namePrefix = preg_replace('#\[value\](\[\])?$#', '', $element->getName()); - - $options = $element->getValues(); - - $addInheritCheckbox = false; - if ($element->getCanUseWebsiteValue()) { - $addInheritCheckbox = true; - $checkboxLabel = Mage::helper('adminhtml')->__('Use Website'); - } - elseif ($element->getCanUseDefaultValue()) { - $addInheritCheckbox = true; - $checkboxLabel = Mage::helper('adminhtml')->__('Use Default'); - } - - if ($addInheritCheckbox) { - $inherit = $element->getInherit()==1 ? 'checked="checked"' : ''; - if ($inherit) { - $element->setDisabled(true); - } - } - - $html = ''; - if ($element->getTooltip()) { - $html .= '<td class="value with-tooltip" colspan="2">'; - $html .= $this->_getElementHtml($element); - $html .= '<div class="field-tooltip"><div>' . $element->getTooltip() . '</div></div>'; - } else { - $html .= '<td class="value">'; - $html .= $this->_getElementHtml($element); - }; - if ($element->getComment()) { - $html.= '<p class="note"><span>'.$element->getComment().'</span></p>'; - } - $html.= '</td>'; - - if ($addInheritCheckbox) { - - $defText = $element->getDefaultValue(); - if ($options) { - $defTextArr = array(); - foreach ($options as $k=>$v) { - if ($isMultiple) { - if (is_array($v['value']) && in_array($k, $v['value'])) { - $defTextArr[] = $v['label']; - } - } elseif ($v['value']==$defText) { - $defTextArr[] = $v['label']; - break; - } - } - $defText = join(', ', $defTextArr); - } - - // default value - $html.= '<td class="use-default">'; - $html.= '<input id="' . $id . '_inherit" name="' - . $namePrefix . '[inherit]" type="checkbox" value="1" class="checkbox config-inherit" ' - . $inherit . ' onclick="toggleValueElements(this, Element.previous(this.parentNode))" /> '; - $html.= '<label for="' . $id . '_inherit" class="inherit" title="' - . htmlspecialchars($defText) . '">' . $checkboxLabel . '</label>'; - $html.= '</td>'; - } - - $html.= '<td class="scope-label">'; - if ($element->getScope()) { - $html .= $element->getScopeLabel(); - } - $html.= '</td>'; - - $html.= '<td class="">'; - if ($element->getHint()) { - $html.= '<div class="hint" >'; - $html.= '<div style="display: none;">' . $element->getHint() . '</div>'; - $html.= '</div>'; - } - $html.= '</td>'; - - return $this->_decorateRowHtml($element, $html); - } - - - /** - * Retrieve html for the table header - * @return string - */ - protected function _getRowHeader() - { - $html = '<tr class="headings">'; - $html .= '<th>'. $this->__('If Variable ...') . '</th>'; - $html .= '<th>'. $this->__('is ...') . '</th>'; - $html .= '<th></th>'; - $html .= '<th>'. $this->__('Set this variable ..') . '</th>'; - $html .= '<th>'. $this->__('to value ...') . '</th>'; - $html .= '<th>' . $this->_getAddRowButtonHtml('ordernumber_replacements_table', - 'ordernumber_replacements_template_table', 'Add New Replacement') . '</th>'; - $html .= '</tr>'; - return $html; - } - - /** - * Retrieve html template for variable replacements - * - * @param int $rowIndex - * @return string - */ - protected function _getRowHtml($rowIndex = -1, $values = array()) - { - static $class = 'odd'; - $disabled = $this->_getDisabled($rowIndex == -1); - $html = '<tr class="'.$class.'">'; - $class = ($class=='odd')?'even':'odd'; - $html .= '<td class="oton-replacement-variable"><input name="' . $this->getElement()->getName() . '[conditionvar][]" value="' . (($rowIndex>=0)?$values['conditionvar']:'') . '" ' . $disabled . '/></td>'; - $html .= '<td class="oton-replacement-value" ><input name="' . $this->getElement()->getName() . '[conditionval][]" value="' . (($rowIndex>=0)?$values['conditionval']:'') . '" ' . $disabled . '/></td>'; - $html .= '<td>=></td>'; - $html .= '<td class="oton-replacement-variable"><input name="' . $this->getElement()->getName() . '[newvar][]" value="' . (($rowIndex>=0)?$values['newvar']:'') . '" ' . $disabled . '/></td>'; - $html .= '<td class="oton-replacement-newvalue"><input name="' . $this->getElement()->getName() . '[newval][]" value="' . (($rowIndex>=0)?$values['newval']:'') . '" ' . $disabled . '/></td>'; - $html .= '<td>' . $this->_getDeleteRowButtonHtml() . '</td>'; - $html .= '</tr>'; - - return $html; - } - - /** - * Display notice that no custom variables have been defined... - */ - protected function _getEmptyRowHtml() - { - $html = '<tr class="oton-empty-row-notice">'; - $html .= '<td class="oton-empty-row-notice" colspan="6"><em>' . $this->__('No custom variables have been defined.') . '</em></td>'; - $html .= '</tr>'; - return $html; - } + } + } else { + $html .= $this->_getEmptyRowHtml(); + } + + $html .= '</table></div>'; + return $html; + } + + /** + * Render the whole table row for the form field. + * Adjusted from ./app/code/core/Mage/Adminhtml/Block/System/Config/Form/Field.php + * Adjustments: Removed label, form control spans two columns. + * + * @param Varien_Data_Form_Element_Abstract $element + * @return string + */ + public function render(Varien_Data_Form_Element_Abstract $element) + { + $id = $element->getHtmlId(); + + //$isDefault = !$this->getRequest()->getParam('website') && !$this->getRequest()->getParam('store'); + $isMultiple = $element->getExtType()==='multiple'; + + // replace [value] with [inherit] + $namePrefix = preg_replace('#\[value\](\[\])?$#', '', $element->getName()); + + $options = $element->getValues(); + + $addInheritCheckbox = false; + if ($element->getCanUseWebsiteValue()) { + $addInheritCheckbox = true; + $checkboxLabel = Mage::helper('adminhtml')->__('Use Website'); + } elseif ($element->getCanUseDefaultValue()) { + $addInheritCheckbox = true; + $checkboxLabel = Mage::helper('adminhtml')->__('Use Default'); + } + + if ($addInheritCheckbox) { + $inherit = $element->getInherit()==1 ? 'checked="checked"' : ''; + if ($inherit) { + $element->setDisabled(true); + } + } + + $html = ''; + if ($element->getTooltip()) { + $html .= '<td class="value with-tooltip" colspan="2">'; + $html .= $this->_getElementHtml($element); + $html .= '<div class="field-tooltip"><div>' . $element->getTooltip() . '</div></div>'; + } else { + $html .= '<td class="value">'; + $html .= $this->_getElementHtml($element); + } + if ($element->getComment()) { + $html.= '<p class="note"><span>'.$element->getComment().'</span></p>'; + } + $html.= '</td>'; + + if ($addInheritCheckbox) { + + $defText = $element->getDefaultValue(); + if ($options) { + $defTextArr = array(); + foreach ($options as $k=>$v) { + if ($isMultiple) { + if (is_array($v['value']) && in_array($k, $v['value'])) { + $defTextArr[] = $v['label']; + } + } elseif ($v['value']==$defText) { + $defTextArr[] = $v['label']; + break; + } + } + $defText = join(', ', $defTextArr); + } + + // default value + $html.= '<td class="use-default">'; + $html.= '<input id="' . $id . '_inherit" name="' + . $namePrefix . '[inherit]" type="checkbox" value="1" class="checkbox config-inherit" ' + . $inherit . ' onclick="toggleValueElements(this, Element.previous(this.parentNode))" /> '; + $html.= '<label for="' . $id . '_inherit" class="inherit" title="' + . htmlspecialchars($defText) . '">' . $checkboxLabel . '</label>'; + $html.= '</td>'; + } + + $html.= '<td class="scope-label">'; + if ($element->getScope()) { + $html .= $element->getScopeLabel(); + } + $html.= '</td>'; + + $html.= '<td class="">'; + if ($element->getHint()) { + $html.= '<div class="hint" >'; + $html.= '<div style="display: none;">' . $element->getHint() . '</div>'; + $html.= '</div>'; + } + $html.= '</td>'; + + return $this->_decorateRowHtml($element, $html); + } + + + /** + * Retrieve html for the table header + * @return string + */ + protected function _getRowHeader() + { + $html = '<tr class="headings">'; + $html .= '<th>'. $this->__('If Variable ...') . '</th>'; + $html .= '<th>'. $this->__('is ...') . '</th>'; + $html .= '<th></th>'; + $html .= '<th>'. $this->__('Set this variable ..') . '</th>'; + $html .= '<th>'. $this->__('to value ...') . '</th>'; + $html .= '<th>' . $this->_getAddRowButtonHtml('ordernumber_replacements_table', + 'ordernumber_replacements_template_table', 'Add New Replacement') . '</th>'; + $html .= '</tr>'; + return $html; + } + + /** + * Retrieve html template for variable replacements + * + * @param int $rowIndex + * @return string + */ + protected function _getRowHtml($rowIndex = -1, $values = array()) + { + static $class = 'odd'; + $disabled = $this->_getDisabled($rowIndex == -1); + $html = '<tr class="'.$class.'">'; + $class = ($class=='odd')?'even':'odd'; + $html .= '<td class="oton-replacement-variable"><input name="' . $this->getElement()->getName() . '[conditionvar][]" value="' . (($rowIndex>=0)?$values['conditionvar']:'') . '" ' . $disabled . '/></td>'; + $html .= '<td class="oton-replacement-value" ><input name="' . $this->getElement()->getName() . '[conditionval][]" value="' . (($rowIndex>=0)?$values['conditionval']:'') . '" ' . $disabled . '/></td>'; + $html .= '<td>=></td>'; + $html .= '<td class="oton-replacement-variable"><input name="' . $this->getElement()->getName() . '[newvar][]" value="' . (($rowIndex>=0)?$values['newvar']:'') . '" ' . $disabled . '/></td>'; + $html .= '<td class="oton-replacement-newvalue"><input name="' . $this->getElement()->getName() . '[newval][]" value="' . (($rowIndex>=0)?$values['newval']:'') . '" ' . $disabled . '/></td>'; + $html .= '<td>' . $this->_getDeleteRowButtonHtml() . '</td>'; + $html .= '</tr>'; + + return $html; + } + + /** + * Display notice that no custom variables have been defined... + */ + protected function _getEmptyRowHtml() + { + $html = '<tr class="oton-empty-row-notice">'; + $html .= '<td class="oton-empty-row-notice" colspan="6"><em>' . $this->__('No custom variables have been defined.') . '</em></td>'; + $html .= '</tr>'; + return $html; + } protected function _getDisabled($forceDisabled=false) { return ($forceDisabled || $this->getElement()->getDisabled()) ? ' disabled' : ''; } - protected function _getValue($key) - { - return $this->getElement()->getData(empty($key)?'value':('value/' . $key)); - } - - - protected function _getJSAddRow($container, $template) { - $js = " - var tmpl=$('" . $template . "'); - Form.getElements(tmpl).invoke('enable').invoke('removeClassName', 'disabled'); - var newc=$('" . $template . "').innerHTML; - Element.insert($('" . $container . "'), {bottom: newc}); - $('" . $template . "').select('input, select, button').invoke('disable').invoke('addClassName', 'disabled'); - $(this).up('table').select('tr.oton-empty-row-notice').invoke('hide');"; - - return $js; - } - protected function _getJSDeleteRow($selector) { - $js = "Element.remove($(this).up('" . $selector . "'))"; - return $js; - } - - - - protected function _getAddRowButtonHtml($container, $template, $title='Add') - { - if (!isset($this->_addRowButtonHtml[$container])) { - $this->_addRowButtonHtml[$container] = $this->getLayout()->createBlock('adminhtml/widget_button') - ->setType('button') - ->setClass('add oton-replacement-add' . $this->_getDisabled()) - ->setLabel($this->__($title)) - ->setOnClick($this->_getJSAddRow($container, $template)) - ->setDisabled($this->_getDisabled()) - ->toHtml(); - } - return $this->_addRowButtonHtml[$container]; - } - - protected function _getDeleteRowButtonHtml($selector = 'tr', $title = 'Delete') - { - if (!$this->_deleteRowButtonHtml) { - $this->_deleteRowButtonHtml = $this->getLayout()->createBlock('adminhtml/widget_button') - ->setType('button') - ->setClass('delete v-middle oton-replacement-formelement oton-replacement-display oton-replacement-edit' . $this->_getDisabled()) - ->setLabel($this->__($title)) - ->setOnClick($this->_getJSDeleteRow($selector)) - ->setDisabled($this->_getDisabled()) - ->toHtml(); - } - return $this->_deleteRowButtonHtml; - } + protected function _getValue($key) + { + return $this->getElement()->getData(empty($key)?'value':('value/' . $key)); + } + + + protected function _getJSAddRow($container, $template) + { + $js = " + var tmpl=$('" . $template . "'); + Form.getElements(tmpl).invoke('enable').invoke('removeClassName', 'disabled'); + var newc=$('" . $template . "').innerHTML; + Element.insert($('" . $container . "'), {bottom: newc}); + $('" . $template . "').select('input, select, button').invoke('disable').invoke('addClassName', 'disabled'); + $(this).up('table').select('tr.oton-empty-row-notice').invoke('hide');"; + + return $js; + } + protected function _getJSDeleteRow($selector) + { + $js = "Element.remove($(this).up('" . $selector . "'))"; + return $js; + } + + + + protected function _getAddRowButtonHtml($container, $template, $title='Add') + { + if (!isset($this->_addRowButtonHtml[$container])) { + $this->_addRowButtonHtml[$container] = $this->getLayout()->createBlock('adminhtml/widget_button') + ->setType('button') + ->setClass('add oton-replacement-add' . $this->_getDisabled()) + ->setLabel($this->__($title)) + ->setOnClick($this->_getJSAddRow($container, $template)) + ->setDisabled($this->_getDisabled()) + ->toHtml(); + } + return $this->_addRowButtonHtml[$container]; + } + + protected function _getDeleteRowButtonHtml($selector = 'tr', $title = 'Delete') + { + if (!$this->_deleteRowButtonHtml) { + $this->_deleteRowButtonHtml = $this->getLayout()->createBlock('adminhtml/widget_button') + ->setType('button') + ->setClass('delete v-middle oton-replacement-formelement oton-replacement-display oton-replacement-edit' . $this->_getDisabled()) + ->setLabel($this->__($title)) + ->setOnClick($this->_getJSDeleteRow($selector)) + ->setDisabled($this->_getDisabled()) + ->toHtml(); + } + return $this->_deleteRowButtonHtml; + } } \ No newline at end of file diff --git a/app/code/community/OpenTools/Ordernumber/Helper/Data.php b/app/code/community/OpenTools/Ordernumber/Helper/Data.php index 719a5bcffb312e0729564daa7123912457f15b15..8b82df73f9592c091e94a64bd96f80fcec51e4f8 100644 --- a/app/code/community/OpenTools/Ordernumber/Helper/Data.php +++ b/app/code/community/OpenTools/Ordernumber/Helper/Data.php @@ -1,14 +1,16 @@ <?php class OpenTools_Ordernumber_Helper_Data extends Mage_Core_Helper_Abstract { -function logitem($label, $item) { - Mage::Log($label . " " . get_class($item) . "\n", null, 'ordernumber.log'); - Mage::Log(is_array($item)?$item:$item->debug(), null, 'ordernumber.log'); - Mage::Log(get_class_methods(get_class($item)), null, 'ordernumber.log'); -} + public function logitem($label, $item) + { + Mage::Log($label . " " . get_class($item) . "\n", null, 'ordernumber.log'); + Mage::Log(is_array($item)?$item:$item->debug(), null, 'ordernumber.log'); + Mage::Log(get_class_methods(get_class($item)), null, 'ordernumber.log'); + } /* Return a random "string" of the given length taken from the given alphabet */ - function randomString($alphabet, $len) { + protected function randomString($alphabet, $len) + { $alen = strlen($alphabet); $r = ""; for ($n=0; $n<$len; $n++) { @@ -17,44 +19,73 @@ function logitem($label, $item) { return $r; } - function replaceRandom ($match) { + protected function replaceRandom ($match) + { /* the regexp matches (random)(Type)(Len) as match, Type and Len is optional */ $len = ($match[3]?$match[3]:1); // Fallback: If no Type is given, use Digit $alphabet = "0123456789"; // Select the correct alphabet depending on Type switch (strtolower($match[2])) { - case "digit": $alphabet = "0123456789"; break; - case "hex": $alphabet = "0123456789abcdef"; break; - case "letter": $alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; break; - case "uletter": $alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; break; - case "lletter": $alphabet = "abcdefghijklmnopqrstuvwxyz"; break; - case "alphanum": $alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; break; + case "digit": + $alphabet = "0123456789"; + break; + + case "hex": + $alphabet = "0123456789abcdef"; + break; + + case "letter": + $alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; + break; + + case "uletter": + $alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + break; + + case "lletter": + $alphabet = "abcdefghijklmnopqrstuvwxyz"; + break; + + case "alphanum": + $alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + break; } return self::randomString ($alphabet, $len); } - function setupDateTimeReplacements (&$reps, $nrtype) { - $reps["[year]"] = date ("Y"); - $reps["[year2]"] = date ("y"); - $reps["[month]"] = date("m"); - $reps["[day]"] = date("d"); - $reps["[hour]"] = date("H"); - $reps["[hour12]"] = date("h"); - $reps["[ampm]"] = date("a"); - $reps["[minute]"] = date("i"); - $reps["[second]"] = date("s"); + protected function setupDateTimeReplacements (&$reps, $nrtype) + { + $utime = microtime(true); + $reps["[year]"] = date ("Y", $utime); + $reps["[year2]"] = date ("y", $utime); + $reps["[month]"] = date("m", $utime); + $reps["[day]"] = date("d", $utime); + $reps["[hour]"] = date("H", $utime); + $reps["[hour12]"] = date("h", $utime); + $reps["[ampm]"] = date("a", $utime); + $reps["[minute]"] = date("i", $utime); + $reps["[second]"] = date("s", $utime); + $milliseconds = (int)(1000*($utime - (int)$utime)); + $millisecondsstring = sprintf('%03d', $milliseconds); + $reps["[decisecond]"] = $millisecondsstring[0]; + $reps["[centisecond]"] = substr($millisecondsstring, 0, 2); + $reps["[millisecond]"] = $millisecondsstring; } - function setupAddressReplacements(&$reps, $prefix, $address, $nrtype) { - if (!$address) return; + + protected function setupAddressReplacements(&$reps, $prefix, $address, $nrtype) + { + if (!$address) { + return; + } $reps["[".$prefix."addressid]"] = $address->getId(); - $reps["[".$prefix."firstname]"] = $address->firstname; - $reps["[".$prefix."lastname]"] = $address->lastname; - $reps["[".$prefix."company]"] = $address->company; - $reps["[".$prefix."city]"] = $address->city; - $reps["[".$prefix."zip]"] = $address->postcode; - $reps["[".$prefix."postcode]"] = $address->postcode; + $reps["[".$prefix."firstname]"] = $address->getFirstname(); + $reps["[".$prefix."lastname]"] = $address->getLastname(); + $reps["[".$prefix."company]"] = $address->getCompany(); + $reps["[".$prefix."city]"] = $address->getCity(); + $reps["[".$prefix."zip]"] = $address->getPostcode(); + $reps["[".$prefix."postcode]"] = $address->getPostcode(); $reps["[".$prefix."region]"] = $address->getRegion(); $reps["[".$prefix."regioncode]"] = $address->getRegionCode(); @@ -62,50 +93,61 @@ function logitem($label, $item) { $country = $address->getCountryModel(); $reps["[".$prefix."country]"] = $country->getName(); - $reps["[".$prefix."countrycode2]"] = $country->iso2_code; - $reps["[".$prefix."countrycode3]"] = $country->iso3_code; + $reps["[".$prefix."countrycode2]"] = $country->getIso2Code(); + $reps["[".$prefix."countrycode3]"] = $country->getIso3Code(); $reps["[".$prefix."countryid]"] = $country->getId(); } - function setupStoreReplacements (&$reps, $order, $nrtype) { + protected function setupStoreReplacements (&$reps, $order, $nrtype) + { $store = $order->getStore(); $reps["[storeid]"] = $store->getStoreId(); $reps["[storecurrency]"] = $order->getStoreCurrency(); } - function setupOrderReplacements (&$reps, $order, $nrtype) { + protected function setupOrderReplacements (&$reps, $order, $nrtype) + { $shippingAddress = $order->getShippingAddress(); $billingAddress = $order->getBillingAddress(); - $address = $shippingAddress; + if ($shippingAddress) { + $address = $shippingAddress; + } else { + $address = $billingAddress; + } /* if ($nrtype == "invoice") { // Invoices use the billing address for un-prefixed fields $address = $billingAddress; } */ $reps["[orderid]"] = $order->getId(); $reps["[ordernumber]"] = $order->getIncrementId(); - $reps["[orderstatus]"] = $order->status; + $reps["[orderstatus]"] = $order->getStatus(); $reps["[currency]"] = $order->getOrderCurrency()->getCurrencyCode(); - $reps["[customerid]"] = $order->customer_id; + $reps["[customerid]"] = $order->getCustomerId(); $this->setupAddressReplacements($reps, "", $address, $nrtype); $this->setupAddressReplacements($reps, "shipping", $shippingAddress, $nrtype); $this->setupAddressReplacements($reps, "billing", $billingAddress, $nrtype); - $reps["[totalitems]"] = $order->total_item_count; - $reps["[totalquantity]"] = $order->total_qty_ordered; + $reps["[totalitems]"] = $order->getTotalItemCount(); + $reps["[totalquantity]"] = $order->getTotalQtyOrdered(); } - function setupShippingReplacements(&$reps, $order, $nrtype) { + protected function setupShippingReplacements(&$reps, $order, $nrtype) + { $reps["[shippingmethod]"] = $order->getShippingMethod(); } - function setupShipmentReplacements (&$reps, $shipment, $order, $nrtype) { + protected function setupShipmentReplacements (&$reps, $shipment, $order, $nrtype) + { // TODO } - function setupInvoiceReplacements (&$reps, $invoice, $order, $nrtype) { + protected function setupInvoiceReplacements (&$reps, $invoice, $order, $nrtype) + { $reps["[invoiceid]"] = $invoice->getId(); } - function setupCreditMemoReplacements (&$reps, $creditmemo, $order, $nrtype) { + protected function setupCreditMemoReplacements (&$reps, $creditmemo, $order, $nrtype) + { // TODO } - function setupReplacements($nrtype, $info) { + protected function setupReplacements($nrtype, $info) + { $reps = array(); $order = $info['order']; $this->setupDateTimeReplacements($reps, $nrtype); @@ -126,7 +168,8 @@ function logitem($label, $item) { return $reps; } - function applyCustomVariables ($nrtype, $info, $reps, $customvars) { + protected function applyCustomVariables ($nrtype, $info, $reps, $customvars) + { static $listvars = array("groups", "skus"); // Mage::getSingleton('core/session')->addWarning('<pre>custom variables, conditionvar='.$conditionvar.', reps='.print_r($reps,1).', customvars='.print_r($customvars,1).'</pre>'); $order = $info['order']; @@ -183,13 +226,15 @@ function logitem($label, $item) { return $reps; } - function doReplacements ($fmt, $reps) { + protected function doReplacements ($fmt, $reps) + { // First, replace all random...[n] fields. This needs to be done with a regexp and a callback: $fmt = preg_replace_callback ('/\[(random)(.*?)([0-9]*?)\]/', array($this, 'replaceRandom'), $fmt); return str_ireplace (array_keys($reps), array_values($reps), $fmt); } - function replace_fields ($fmt, $nrtype, $info, $customvars) { + public function replace_fields ($fmt, $nrtype, $info, $customvars) + { $reps = $this->setupReplacements ($nrtype, $info); $reps = $this->applyCustomVariables ($nrtype, $info, $reps, $customvars); // $this->logitem("All replacements after custom variables: ", $reps); diff --git a/app/code/community/OpenTools/Ordernumber/Model/Backend/Counters.php b/app/code/community/OpenTools/Ordernumber/Model/Backend/Counters.php index a6fcbab5417767bd8a8531ed80125923f968d83b..80cdb40ac62ec9ee1a1c8ca6b665ed1ef9b78bd4 100644 --- a/app/code/community/OpenTools/Ordernumber/Model/Backend/Counters.php +++ b/app/code/community/OpenTools/Ordernumber/Model/Backend/Counters.php @@ -2,11 +2,13 @@ class OpenTools_Ordernumber_Model_Backend_Counters extends Mage_Core_Model_Config_Data { protected $_dbModel = null; - protected function _getModel() { + protected function _getModel() + { return Mage::getModel('opentools_ordernumber/ordernumber'); } - public function getModel() { + public function getModel() + { if (is_null($this->_dbModel)) $this->_dbModel = $this->_getModel(); return $this->_dbModel; @@ -79,7 +81,11 @@ class OpenTools_Ordernumber_Model_Backend_Counters extends Mage_Core_Model_Confi $counter = $model->load($countid); if ($counter->getCount() != $oldval) { $session->addWarning($helper->__('Counter \'%s\' (type: %s, scope: %s) was changed in the background in the dabase from %d to %d. Deleting it nonetheless.', - $counter->getNumberFormat(), $model->readableType($counter->getNumberType()), $model->readableScope($counter->getNumberScope()), $oldval, $counter->getCount())); + $counter->getNumberFormat(), + $model->readableType($counter->getNumberType()), + $model->readableScope($counter->getNumberScope()), + $oldval, + $counter->getCount())); } $counter->delete(); $session->addSuccess($helper->__('Successfully deleted counter \'%s\' (type: %s, scope: %s) with value %d', @@ -87,4 +93,4 @@ class OpenTools_Ordernumber_Model_Backend_Counters extends Mage_Core_Model_Confi } } } -} \ No newline at end of file +} diff --git a/app/code/community/OpenTools/Ordernumber/Model/Backend/Replacements.php b/app/code/community/OpenTools/Ordernumber/Model/Backend/Replacements.php index 5fc1cb11000d5accb8377d50c9ef0d849848fb44..f2f09899155f3d1f7ed4290bb4b176244948ea48 100644 --- a/app/code/community/OpenTools/Ordernumber/Model/Backend/Replacements.php +++ b/app/code/community/OpenTools/Ordernumber/Model/Backend/Replacements.php @@ -1,13 +1,14 @@ <?php class OpenTools_Ordernumber_Model_Backend_Replacements extends Mage_Adminhtml_Model_System_Config_Backend_Serialized { - function logitem($label, $item) { - Mage::Log($label . " " . get_class($item) . "\n", null, 'ordernumber.log'); - Mage::Log(is_array($item)?$item:$item->debug(), null, 'ordernumber.log'); - Mage::Log(get_class_methods(get_class($item)), null, 'ordernumber.log'); - } + protected function logitem($label, $item) + { + Mage::Log($label . " " . get_class($item) . "\n", null, 'ordernumber.log'); + Mage::Log(is_array($item)?$item:$item->debug(), null, 'ordernumber.log'); + Mage::Log(get_class_methods(get_class($item)), null, 'ordernumber.log'); + } - var $keywords = array("conditionvar", "conditionval", "newvar", "newval"); + protected $_keywords = array("conditionvar", "conditionval", "newvar", "newval"); /** * The form contains the values as one array for the conditionvars, one for the conditionvals, @@ -22,15 +23,15 @@ $this->logitem("OpenTools_Ordernumber_Model_Backend_Replacements: ", $this); // Transpose the vals: $vallist = array(); if ($vals) { - foreach ($vals[$this->keywords[1]] as $i => $dummy) { + foreach ($vals[$this->_keywords[1]] as $i => $dummy) { $entry = array(); - foreach ($this->keywords as $k) { + foreach ($this->_keywords as $k) { $entry[$k] = $vals[$k][$i]; } $vallist[] = $entry; } } -Mage::Log("transposed vallist: ".print_r($vallist,1), null, 'ordernumber.log'); +Mage::Log("transposed vallist: ".print_r($vallist, 1), null, 'ordernumber.log'); $this->setValue($vallist); return parent::_beforeSave(); } diff --git a/app/code/community/OpenTools/Ordernumber/Model/Observer.php b/app/code/community/OpenTools/Ordernumber/Model/Observer.php index 787941d8e3f8871fa199258742fac350a70be5b5..295d6371fe2315383d6e0884e8b645ff26acc151 100644 --- a/app/code/community/OpenTools/Ordernumber/Model/Observer.php +++ b/app/code/community/OpenTools/Ordernumber/Model/Observer.php @@ -22,23 +22,25 @@ */ class OpenTools_Ordernumber_Model_Observer extends Mage_Core_Model_Abstract { - public function _construct() - { - parent::_construct(); - $this->_init('ordernumber/ordernumber'); - } - protected $_dbModel = null; - protected function _getModel() { + protected function _getModel() + { return Mage::getModel('opentools_ordernumber/ordernumber'); } - public function getModel() { + public function getModel() + { if (is_null($this->_dbModel)) $this->_dbModel = $this->_getModel(); return $this->_dbModel; } + public function _construct() + { + parent::_construct(); + $this->_init('ordernumber/ordernumber'); + } + /** This trigger is called directly after the increment ID is reserved for an order * Ideally, we would overwrite the reserveOrderId function, so that magento does not * create/reserve an order number in the first place @@ -46,31 +48,37 @@ class OpenTools_Ordernumber_Model_Observer extends Mage_Core_Model_Abstract * so we would have to hack (i.e. rewrite) many more models to pass on this information, * which will in the end lead to an even worse code quality... */ - public function sales_model_service_quote_submit_before ($observer) { + public function sales_model_service_quote_submit_before ($observer) + { $order = $observer->getEvent()->getOrder(); return $this->handle_new_number('order', $order, $order); } - public function sales_order_save_before ($observer) { + public function sales_order_save_before ($observer) + { $order = $observer->getEvent()->getOrder(); return $this->handle_new_number('order', $order, $order); } - public function sales_order_invoice_save_before ($observer) { + public function sales_order_invoice_save_before ($observer) + { $invoice = $observer->getEvent()->getInvoice(); return $this->handle_new_number('invoice', $invoice, $invoice->getOrder()); } - public function sales_order_shipment_save_before ($observer) { + public function sales_order_shipment_save_before ($observer) + { $shipment = $observer->getEvent()->getShipment(); return $this->handle_new_number('shipment', $shipment, $shipment->getOrder()); } - public function sales_order_creditmemo_save_before ($observer) { + public function sales_order_creditmemo_save_before ($observer) + { $creditmemo = $observer->getEvent()->getCreditmemo(); return $this->handle_new_number('creditmemo', $creditmemo, $creditmemo->getOrder()); } - public function handle_new_number ($nrtype, $object, $order) { + public function handle_new_number ($nrtype, $object, $order) + { $store = $order->getStore(); $storeId = $store->getStoreId(); $cfgprefix = 'ordernumber/'.$nrtype.'numbers'; @@ -95,17 +103,27 @@ class OpenTools_Ordernumber_Model_Observer extends Mage_Core_Model_Abstract // well as enum values indicating certain behavior. Replace those by the actual // counter names for the current counter: switch ($reset) { - case 0: $format = $format . '|'; break; - case 1: $format = $format . '|' . $format; break; - case -1: $format = $format . '|' . $counterfmt; break; - default: /* Pre-defined counter formats saved in the /reset config field */ - $counterfmt = $format . '|' . $reset; break; + case 0: + $format = $format . '|'; + break; + case 1: + $format = $format . '|' . $format; + break; + case -1: + $format = $format . '|' . $counterfmt; + break; + default: + /* Pre-defined counter formats saved in the /reset config field */ + $counterfmt = $format . '|' . $reset; + break; } $customvars = Mage::getStoreConfig('ordernumber/replacements', $storeId); - if (isset($customvars['replacements'])) + if (isset($customvars['replacements'])) { $customvars = $customvars['replacements']; - if ($customvars) + } + if ($customvars) { $customvars = unserialize($customvars); + } // Mage::Log('customvars: '.print_r($customvars,1), null, 'ordernumber.log'); // Now apply the replacements @@ -128,11 +146,11 @@ class OpenTools_Ordernumber_Model_Observer extends Mage_Core_Model_Abstract $count += 1; // Find the next counter value - $scope_id = ''; - if ($scope>=1) $scope_id = $store->getWebsiteId(); - if ($scope>=2) $scope_id .= '/' . $store->getGroupId(); - if ($scope>=3) $scope_id .= '/' . $store->getStoreId(); - $count = $model->getCounterValueIncremented($nrtype, $counterfmt, $increment, $scope_id); + $scopeId = ''; + if ($scope>=1) $scopeId = $store->getWebsiteId(); + if ($scope>=2) $scopeId .= '/' . $store->getGroupId(); + if ($scope>=3) $scopeId .= '/' . $store->getStoreId(); + $count = $model->getCounterValueIncremented($nrtype, $counterfmt, $increment, $scopeId); $newnumber = str_replace ("#", sprintf('%0' . (int)$digits . 's', $count), $format); // Check whether that number is already in use. If so, attempt to create the next number: @@ -148,7 +166,7 @@ class OpenTools_Ordernumber_Model_Observer extends Mage_Core_Model_Abstract } } if (!$created) { - Mage::Log("Unable to create $nrtype number for counter format $nr (name $counterfmt, scope $scope_id)...", null, 'ordernumber.log'); + Mage::Log("Unable to create $nrtype number for counter format $nr (name $counterfmt, scope $scopeId)...", null, 'ordernumber.log'); } } } diff --git a/app/code/community/OpenTools/Ordernumber/Model/Ordernumber.php b/app/code/community/OpenTools/Ordernumber/Model/Ordernumber.php index 77fd249adae7940397916cfab26532110a010ce9..a162d93ef25451670aff18df4edccfebac6ab600 100644 --- a/app/code/community/OpenTools/Ordernumber/Model/Ordernumber.php +++ b/app/code/community/OpenTools/Ordernumber/Model/Ordernumber.php @@ -8,21 +8,23 @@ class OpenTools_Ordernumber_Model_Ordernumber extends Mage_Core_Model_Abstract parent::_construct(); $this->_init('opentools_ordernumber/ordernumber'); } - public function getCounterValueIncremented($nrtype, $format, $increment=1, $scope_id='') { + public function getCounterValueIncremented($nrtype, $format, $increment=1, $scopeId='') + { $helper = Mage::helper('ordernumber'); - $this->loadNumberCounter($nrtype, $format, $scope_id); - - $this->setNumberScope($scope_id); + $this->loadNumberCounter($nrtype, $format, $scopeId); +$helper->logitem("Loaded counter: ", $this); + $this->setNumberScope($scopeId); $this->setNumberType($nrtype); $this->setNumberFormat($format); $count = $this->getCount() + $increment; $this->setCount($count); $res = $this->save(); +$helper->logitem("Saved counter: ", $res); return $count; } - public function loadNumberCounter($nrtype, $format, $scope_id='') + public function loadNumberCounter($nrtype, $format, $scopeId='') { - $this->_getResource()->loadNumberCounter($this, $nrtype, $format, $scope_id); + $this->_getResource()->loadNumberCounter($this, $nrtype, $format, $scopeId); $this->_afterLoad(); $this->setOrigData(); $this->_hasDataChanges = false; @@ -52,8 +54,9 @@ class OpenTools_Ordernumber_Model_Ordernumber extends Mage_Core_Model_Abstract $helper = Mage::helper('ordernumber'); return $helper->__('Global'); - } else + } else { return $scope; + } } } diff --git a/app/code/community/OpenTools/Ordernumber/Model/Resource/Ordernumber.php b/app/code/community/OpenTools/Ordernumber/Model/Resource/Ordernumber.php index a0ad25d5937fd21b845cd60b20e8743be1ce4b2b..35c92c75cf2c22a467617399652c0cb9f803e683 100644 --- a/app/code/community/OpenTools/Ordernumber/Model/Resource/Ordernumber.php +++ b/app/code/community/OpenTools/Ordernumber/Model/Resource/Ordernumber.php @@ -1,11 +1,13 @@ <?php class OpenTools_Ordernumber_Model_Resource_Ordernumber extends Mage_Core_Model_Resource_Db_Abstract { - public function _construct() { + public function _construct() + { $this->_init('opentools_ordernumber/ordernumber', 'ordernumber_id'); } - public function loadNumberCounter(Mage_Core_Model_Abstract $object, $nrtype, $format, $scope='') { + public function loadNumberCounter(Mage_Core_Model_Abstract $object, $nrtype, $format, $scope='') + { $read = $this->_getWriteAdapter(); if ($read && !is_null($nrtype)) { $typefield = $read->quoteIdentifier(sprintf('%s.%s', $this->getMainTable(), 'number_type')); @@ -38,4 +40,4 @@ class OpenTools_Ordernumber_Model_Resource_Ordernumber extends Mage_Core_Model_R return $this; } -} \ No newline at end of file +} diff --git a/app/code/community/OpenTools/Ordernumber/Model/Resource/Ordernumber/Collection.php b/app/code/community/OpenTools/Ordernumber/Model/Resource/Ordernumber/Collection.php index f12f1ff21ada44fea3d3c04e38ebe9b2b377d0d9..5339869059a2f9bc6eb020867e69f8c7ff13e845 100644 --- a/app/code/community/OpenTools/Ordernumber/Model/Resource/Ordernumber/Collection.php +++ b/app/code/community/OpenTools/Ordernumber/Model/Resource/Ordernumber/Collection.php @@ -1,7 +1,8 @@ <?php class OpenTools_Ordernumber_Model_Resource_Ordernumber_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract - { - public function _construct() { +{ + public function _construct() + { parent::_construct(); $this->_init('opentools_ordernumber/ordernumber'); } diff --git a/app/code/community/OpenTools/Ordernumber/Model/Source/Reset.php b/app/code/community/OpenTools/Ordernumber/Model/Source/Reset.php index 669d2e26c4be738d5ad6f57b1b80670d764a0b0e..f163e428d33b8517f26063244661682ab6a6faf8 100644 --- a/app/code/community/OpenTools/Ordernumber/Model/Source/Reset.php +++ b/app/code/community/OpenTools/Ordernumber/Model/Source/Reset.php @@ -11,7 +11,7 @@ class OpenTools_Ordernumber_Model_Source_Reset array('value' => '[year]-[month]', 'label' => $helper->__('New counter for each month')), array('value' => '[year]-[month]-[day]', 'label' => $helper->__('New counter for each day')), array('value' => '1', 'label' => $helper->__('Separate counter for each Format Value')), - array('value' => '-1', 'label' => $helper->__('Custom counter Name')), + array('value' => '-1', 'label' => $helper->__('Custom counter Name')), ); return $reset; } diff --git a/app/code/community/OpenTools/Ordernumber/sql/opentools_ordernumber_setup/install-0.1.0.php b/app/code/community/OpenTools/Ordernumber/sql/opentools_ordernumber_setup/install-0.1.0.php index 2de52cba5ce32976e2cfa883dd5d55044253f6fd..d464bd41e3ffb0f5893a9cca10e3710d94a46f6d 100644 --- a/app/code/community/OpenTools/Ordernumber/sql/opentools_ordernumber_setup/install-0.1.0.php +++ b/app/code/community/OpenTools/Ordernumber/sql/opentools_ordernumber_setup/install-0.1.0.php @@ -1,6 +1,7 @@ <?php -/** Ordernmber installation script - * @author OpenTools +/** + * Ordernmber installation script + * @author OpenTools */ /** * @var $installer Mage_Core_Model_Resource_Setup @@ -18,10 +19,10 @@ $table = $installer->getConnection() 'nullable' => false, 'primary' => true, ), 'Ordernumber id') - ->addColumn('number_type', Varien_Db_Ddl_Table::TYPE_TEXT, 63, array('nullable'=> false), 'Number Type') - ->addColumn('number_scope', Varien_Db_Ddl_Table::TYPE_TEXT, 20, array('nullable'=> true, 'default'=>''), 'Number Scope') - ->addColumn('number_format',Varien_Db_Ddl_Table::TYPE_TEXT, 255, array('nullable'=> true, 'default'=>''), 'Number Format') - ->addColumn('count', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array('unsigned'=>true,'nullable'=>false), 'Counter') + ->addColumn('number_type', Varien_Db_Ddl_Table::TYPE_TEXT, 63, array('nullable'=> false), 'Number Type') + ->addColumn('number_scope', Varien_Db_Ddl_Table::TYPE_TEXT, 20, array('nullable'=> true, 'default'=>''), 'Number Scope') + ->addColumn('number_format', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array('nullable'=> true, 'default'=>''), 'Number Format') + ->addColumn('count', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array('unsigned'=>true, 'nullable'=>false), 'Counter') ->addIndex($installer->getIdxName( $installer->getTable('opentools_ordernumber/ordernumber'), array('number_type', 'number_scope', 'number_format'), diff --git a/var/connect/OpenTools_Ordernumber.xml b/var/connect/OpenTools_Ordernumber.xml index 5c281e47da67f985568ebe8a7ca41ea3cc0fef3c..7df09591f051fb774f3c4ef79579534db7156bc7 100644 --- a/var/connect/OpenTools_Ordernumber.xml +++ b/var/connect/OpenTools_Ordernumber.xml @@ -1,5 +1,5 @@ <_> - <form_key>BdrKY2F3O8Sn4JoR</form_key> + <form_key>QQD0m3HjqYDMtc0C</form_key> <name>OpenTools_Ordernumber</name> <channel>community</channel> <version_ids> @@ -42,7 +42,7 @@ All number types should be correctly implemented, variable substitutions are ava <max/> </max> <files> - <files> </files> + <files> </files> </files> </package> <extension>