Anc lib timetables backend: Unterschied zwischen den Versionen
Aus Vosp.info
V (Diskussion | Beiträge) |
V (Diskussion | Beiträge) (→Blöcke) |
||
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | |||
− | |||
== Struktur == | == Struktur == | ||
=== Blöcke === | === Blöcke === | ||
../Block/Adminhtml/Timetables.php | ../Block/Adminhtml/Timetables.php | ||
+ | <source lang="php"> | ||
+ | class Anc_Lib_Block_Adminhtml_Timetables extends Mage_Adminhtml_Block_Widget_Grid_Container { | ||
+ | public function __construct() { | ||
+ | $this->_controller = 'adminhtml_timetables'; | ||
+ | $this->_blockGroup = 'anc_lib'; | ||
+ | $this->_headerText = Mage::helper('anc_lib/data')->__('Timetable'); | ||
+ | $this->_addButtonLabel = Mage::helper('anc_lib/data')->__('Timetable erstellen'); | ||
+ | parent::__construct(); | ||
+ | } | ||
+ | |||
+ | public function getCreateUrl() | ||
+ | { | ||
+ | return $this->getUrl( | ||
+ | 'lib/adminhtml_timetable/edit' | ||
+ | ); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </source> | ||
../Block/Adminhtml/Timetables | ../Block/Adminhtml/Timetables | ||
../Block/Adminhtml/Timetables/Grid.php | ../Block/Adminhtml/Timetables/Grid.php | ||
+ | <source lang="php"> | ||
+ | <?php | ||
+ | |||
+ | class Anc_Lib_Block_Adminhtml_Timetables_Grid extends Mage_Adminhtml_Block_Widget_Grid | ||
+ | { | ||
+ | public function __construct() | ||
+ | { | ||
+ | parent::__construct(); | ||
+ | |||
+ | $this->setId('anc_lib_timetables_grid'); | ||
+ | $this->setDefaultSort('entity_id'); | ||
+ | $this->setDefaultDir('DESC'); | ||
+ | $this->setSaveParametersInSession(true); | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | protected function _getCollectionClass() | ||
+ | { | ||
+ | return 'anc_lib/timetable'; | ||
+ | } | ||
+ | |||
+ | |||
+ | protected function _prepareCollection() | ||
+ | { | ||
+ | |||
+ | $collection = Mage::getModel('anc_lib/timetable')->getCollection()->addFieldToFilter('customer_id',array('lt'=>1));; | ||
+ | // D::s($collection,'$collection',15,1,1); | ||
+ | $this->setCollection($collection); | ||
+ | // D::s($collection,'$collection',5,1,1); | ||
+ | return parent::_prepareCollection(); | ||
+ | } | ||
+ | protected function _prepareColumns() | ||
+ | { | ||
+ | |||
+ | $this->addColumn('entity_id', | ||
+ | array( | ||
+ | 'header' => Mage::helper('anc_lib/data')->__('Id'), | ||
+ | 'align' =>'right', | ||
+ | 'width' => '50px', | ||
+ | 'index' => 'entity_id', | ||
+ | )); | ||
+ | $this->addColumn('name', | ||
+ | array( | ||
+ | 'header' => Mage::helper('anc_lib/data')->__('Name'), | ||
+ | 'align' =>'left', | ||
+ | 'index' => 'name', | ||
+ | )); | ||
+ | $this->addColumn('comment', array( | ||
+ | 'header' => Mage::helper('anc_lib/data')->__('Comment'), | ||
+ | 'align' =>'left', | ||
+ | 'index' => 'comment', | ||
+ | )); | ||
+ | $this->addColumn('admin_user_id', array( | ||
+ | 'header' => Mage::helper('anc_lib/data')->__('Admin'), | ||
+ | 'align' =>'left', | ||
+ | 'index' => 'admin_user_id', | ||
+ | )); | ||
+ | $this->addColumn('customer_id', array( | ||
+ | 'header' => Mage::helper('anc_lib/data')->__('Customer'), | ||
+ | 'align' =>'left', | ||
+ | 'index' => 'customer_id', | ||
+ | )); | ||
+ | $this->addColumn('created_at', array( | ||
+ | 'header' => Mage::helper('anc_lib/data')->__('Created'), | ||
+ | 'align' =>'left', | ||
+ | 'index' => 'created_at', | ||
+ | )); | ||
+ | $this->addColumn('updated_at', array( | ||
+ | 'header' => Mage::helper('anc_lib/data')->__('Updated'), | ||
+ | 'align' =>'left', | ||
+ | 'index' => 'updated_at', | ||
+ | )); | ||
+ | |||
+ | |||
+ | $this->addColumn('updated_at', array( | ||
+ | 'header' => Mage::helper('anc_lib/data')->__('Updated'), | ||
+ | 'align' =>'left', | ||
+ | 'index' => 'updated_at', | ||
+ | )); | ||
+ | $this->addColumn('updated_at', array( | ||
+ | 'header' => Mage::helper('anc_lib/data')->__('Updated'), | ||
+ | 'align' =>'left', | ||
+ | 'index' => 'updated_at', | ||
+ | )); | ||
+ | $this->addColumn('start', array( | ||
+ | 'header' => Mage::helper('anc_lib/data')->__('Start'), | ||
+ | 'align' =>'left', | ||
+ | 'index' => 'start', | ||
+ | )); | ||
+ | $this->addColumn('stop', array( | ||
+ | 'header' => Mage::helper('anc_lib/data')->__('Stop'), | ||
+ | 'align' =>'left', | ||
+ | 'index' => 'stop', | ||
+ | )); | ||
+ | $this->addColumn('starthour', array( | ||
+ | 'header' => Mage::helper('anc_lib/data')->__('Starthour'), | ||
+ | 'align' =>'left', | ||
+ | 'index' => 'starthour', | ||
+ | )); | ||
+ | $this->addColumn('stophour', array( | ||
+ | 'header' => Mage::helper('anc_lib/data')->__('Stophour'), | ||
+ | 'align' =>'left', | ||
+ | 'index' => 'stophour', | ||
+ | )); | ||
+ | $this->addColumn('startmin', array( | ||
+ | 'header' => Mage::helper('anc_lib/data')->__('Startmin'), | ||
+ | 'align' =>'left', | ||
+ | 'index' => 'startmin', | ||
+ | )); | ||
+ | $this->addColumn('stopmin', array( | ||
+ | 'header' => Mage::helper('anc_lib/data')->__('Stopmin'), | ||
+ | 'align' =>'left', | ||
+ | 'index' => 'stopmin', | ||
+ | )); | ||
+ | $this->addColumn('monday', array( | ||
+ | // 'type' => 'checkbox', | ||
+ | 'values' => array(0,1), | ||
+ | 'field_name' => 'checkbox_name', | ||
+ | 'header' => Mage::helper('anc_lib/data')->__('Monday'), | ||
+ | 'align' =>'left', | ||
+ | 'index' => 'monday', | ||
+ | )); | ||
+ | $this->addColumn('tuesday', array( | ||
+ | 'header' => Mage::helper('anc_lib/data')->__('Tuesday'), | ||
+ | 'values' => array(0,1), | ||
+ | 'align' =>'left', | ||
+ | 'index' => 'tuesday', | ||
+ | )); | ||
+ | $this->addColumn('wednesday', array( | ||
+ | 'header' => Mage::helper('anc_lib/data')->__('Wednesday'), | ||
+ | 'align' =>'left', | ||
+ | 'index' => 'wednesday', | ||
+ | )); | ||
+ | $this->addColumn('thursday', array( | ||
+ | 'header' => Mage::helper('anc_lib/data')->__('Thursday'), | ||
+ | 'align' =>'left', | ||
+ | 'index' => 'thursday', | ||
+ | )); | ||
+ | $this->addColumn('friday', array( | ||
+ | 'header' => Mage::helper('anc_lib/data')->__('Friday'), | ||
+ | 'align' =>'left', | ||
+ | 'index' => 'friday', | ||
+ | )); | ||
+ | $this->addColumn('saturday', array( | ||
+ | 'header' => Mage::helper('anc_lib/data')->__('Saturday'), | ||
+ | 'align' =>'left', | ||
+ | 'index' => 'saturday', | ||
+ | )); | ||
+ | $this->addColumn('sunday', array( | ||
+ | 'header' => Mage::helper('anc_lib/data')->__('Sunday'), | ||
+ | 'align' =>'left', | ||
+ | 'index' => 'sunday', | ||
+ | )); | ||
+ | |||
+ | return parent::_prepareColumns(); | ||
+ | } | ||
+ | public function getRowUrl($row) | ||
+ | { | ||
+ | return $this->getUrl('*/*/edit', array('id' => $row->getId())); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </source> | ||
../Block/Adminhtml/Timetables/Edit.php | ../Block/Adminhtml/Timetables/Edit.php | ||
+ | <source lang="php"> | ||
+ | class Anc_Lib_Block_Adminhtml_Timetables_Edit | ||
+ | extends Mage_Adminhtml_Block_Widget_Form_Container | ||
+ | { | ||
+ | protected function _construct() | ||
+ | { | ||
+ | $this->_controller = 'timetables'; | ||
+ | $this->_blockGroup = 'anc_lib_adminhtml'; | ||
+ | |||
+ | $this->_updateButton('save', 'label', $this->__('Save')); | ||
+ | $this->_updateButton('delete', 'label', $this->__('Delete')); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </source> | ||
../Block/Adminhtml/Timetables/Edit | ../Block/Adminhtml/Timetables/Edit | ||
../Block/Adminhtml/Timetables/Edit/Form.php | ../Block/Adminhtml/Timetables/Edit/Form.php | ||
+ | <source lang="php"> | ||
+ | <?php | ||
+ | class Anc_Lib_Block_Adminhtml_Timetables_Edit_Form extends Mage_Adminhtml_Block_Widget_Form { | ||
+ | |||
+ | protected function _prepareForm() { | ||
+ | |||
+ | if (Mage::registry('anc_lib')) { | ||
+ | $data = Mage::registry('anc_lib')->getData(); | ||
+ | } else { | ||
+ | $data = array(); | ||
+ | } | ||
+ | |||
+ | $form = new Varien_Data_Form(array( | ||
+ | 'id' => 'edit_form', | ||
+ | 'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))), | ||
+ | 'method' => 'post', | ||
+ | 'enctype' => 'multipart/form-data' | ||
+ | ) | ||
+ | ); | ||
+ | |||
+ | $form->setUseContainer(true); | ||
+ | $this->setForm($form); | ||
+ | $form->setValues($data); | ||
+ | return parent::_prepareForm(); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | </source> | ||
../Block/Adminhtml/Timetables/Edit/Tabs.php | ../Block/Adminhtml/Timetables/Edit/Tabs.php | ||
+ | <source lang="php"> | ||
+ | class Anc_Lib_Block_Adminhtml_Timetables_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs { | ||
+ | |||
+ | public function __construct() { | ||
+ | parent::__construct(); | ||
+ | $this->setId('timetables_tabs'); | ||
+ | $this->setDestElementId('edit_form'); // this should be same as the form id define above | ||
+ | $this->setTitle('Timetables'); | ||
+ | } | ||
+ | |||
+ | protected function _beforeToHtml() { | ||
+ | $this->addTab( | ||
+ | 'form_section', array( | ||
+ | 'label' => 'Timetables Info', // Mage::helper('news')->__('News Information'), | ||
+ | 'title' => 'Timetables Info', //Mage::helper('news')->__('News Information'), | ||
+ | 'content' => $this->getLayout()->createBlock('anc_lib/adminhtml_timetables_edit_tab_form')->toHtml(), | ||
+ | ) | ||
+ | ); | ||
+ | |||
+ | $this->addTab('form_section1', array( | ||
+ | 'label' => 'Timetables Extras', //Mage::helper('news')->__('Content'), | ||
+ | 'title' => 'Timetables Extras', //Mage::helper('news')->__('Content'), | ||
+ | 'content' => $this->getLayout()->createBlock('anc_lib/adminhtml_timetables_edit_tab_content')->toHtml(), | ||
+ | )); | ||
+ | |||
+ | return parent::_beforeToHtml(); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | </source> | ||
../Block/Adminhtml/Timetables/Edit/Tab | ../Block/Adminhtml/Timetables/Edit/Tab | ||
../Block/Adminhtml/Timetables/Edit/Tab/Form.php | ../Block/Adminhtml/Timetables/Edit/Tab/Form.php | ||
+ | <source lang="php"> | ||
+ | <?php | ||
+ | |||
+ | class Anc_Lib_Block_Adminhtml_Timetables_Edit_Tab_Form extends Mage_Adminhtml_Block_Widget_Form { | ||
+ | |||
+ | protected function _prepareForm() { | ||
+ | |||
+ | $arrayhour = array('0' => '0', '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '10' => '10', '11' => '11', '12' => '12', '13' => '13', '14' => '14', '15' => '15', '16' => '16', '17' => '17', '18' => '18', '19' => '19', '20' => '20', '21' => '21', '22' => '22', '23' => '23'); | ||
+ | $arraymin = array('0' => '0', '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '10' => '10', '11' => '11', '12' => '12', '13' => '13', '14' => '14', '15' => '15', '16' => '16', '17' => '17', '18' => '18', '19' => '19', '20' => '20', '21' => '21', '22' => '22', '23' => '23', '24' => '24', '25' => '25', '26' => '26', '27' => '27', '28' => '28', '29' => '29', | ||
+ | '30' => '30', '31' => '31', '32' => '32', '33' => '33', '34' => '34', '35' => '35', '36' => '36', '37' => '37', '38' => '38', '39' => '39', '40' => '40', '41' => '41', '42' => '42', '43' => '43', '44' => '44', '44' => '45', '46' => '46', '47' => '47', '48' => '48', '49' => '49', '50' => '50', '51' => '51', '52' => '52', '53' => '53', '54' => '54', '55' => '55', '56' => '56', '57' => '57', '58' => '58', '59' => '59'); | ||
+ | |||
+ | |||
+ | if (Mage::registry('anc_timetable')) { | ||
+ | $data = Mage::registry('anc_timetable')->getData(); | ||
+ | } else { | ||
+ | $data = array(); | ||
+ | } | ||
+ | |||
+ | $form = new Varien_Data_Form(); | ||
+ | $this->setForm($form); | ||
+ | $fieldset = $form->addFieldset('anc_timetable', array('name' => 'name')); //Mage::helper('news')->__('news information'))); | ||
+ | |||
+ | $fieldset->addField('name', 'text', array( | ||
+ | 'label' => Mage::helper('anc_lib/data')->__('Name'), | ||
+ | 'class' => 'required-entry', | ||
+ | 'required' => true, | ||
+ | 'name' => 'name', | ||
+ | )); | ||
+ | |||
+ | $fieldset->addField('comment', 'textarea', array( | ||
+ | 'label' => Mage::helper('anc_lib/data')->__('Comment'), | ||
+ | 'class' => 'required-entry', | ||
+ | 'required' => true, | ||
+ | 'name' => 'comment', | ||
+ | )); | ||
+ | |||
+ | $fieldset->addField('start', 'date', array( | ||
+ | 'label' => Mage::helper('anc_lib/data')->__('Start'), | ||
+ | 'class' => 'required-entry', | ||
+ | 'required' => true, | ||
+ | 'name' => 'start', | ||
+ | 'tabindex' => 1, | ||
+ | 'image' => $this->getSkinUrl('images/grid-cal.gif'), | ||
+ | 'format' => Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT), | ||
+ | )); | ||
+ | $fieldset->addField('stop', 'date', array( | ||
+ | 'label' => Mage::helper('anc_lib/data')->__('Stop'), | ||
+ | 'class' => 'required-entry', | ||
+ | 'required' => true, | ||
+ | 'name' => 'stop', | ||
+ | 'tabindex' => 1, | ||
+ | 'image' => $this->getSkinUrl('images/grid-cal.gif'), | ||
+ | 'format' => Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT), | ||
+ | )); | ||
+ | |||
+ | |||
+ | $fieldset->addField('starthour', 'select', array( | ||
+ | 'label' => Mage::helper('anc_lib/data')->__('Starthour'), | ||
+ | 'class' => 'required-entry', | ||
+ | 'required' => true, | ||
+ | 'name' => 'starthour', | ||
+ | 'onclick' => "", | ||
+ | 'onchange' => "", | ||
+ | 'values' => $arrayhour, | ||
+ | 'disabled' => false, | ||
+ | 'readonly' => false, | ||
+ | )); | ||
+ | $fieldset->addField('stophour', 'select', array( | ||
+ | 'label' => Mage::helper('anc_lib/data')->__('stophour'), | ||
+ | 'class' => 'required-entry', | ||
+ | 'required' => true, | ||
+ | 'name' => 'stophour', | ||
+ | 'onclick' => "", | ||
+ | 'onchange' => "", | ||
+ | 'values' => $arrayhour, | ||
+ | 'disabled' => false, | ||
+ | 'readonly' => false, | ||
+ | )); | ||
+ | $fieldset->addField('startmin', 'select', array( | ||
+ | 'label' => Mage::helper('anc_lib/data')->__('startmin'), | ||
+ | 'class' => 'required-entry', | ||
+ | 'required' => true, | ||
+ | 'name' => 'startmin', | ||
+ | 'onclick' => "", | ||
+ | 'onchange' => "", | ||
+ | 'values' => $arraymin, | ||
+ | 'disabled' => false, | ||
+ | 'readonly' => false, | ||
+ | 'tabindex' => 2 | ||
+ | )); | ||
+ | $fieldset->addField('stopmin', 'select', array( | ||
+ | 'label' => Mage::helper('anc_lib/data')->__('stopmin'), | ||
+ | 'class' => 'required-entry', | ||
+ | 'required' => true, | ||
+ | 'name' => 'stopmin', | ||
+ | 'onclick' => "", | ||
+ | 'onchange' => "", | ||
+ | 'values' => $arraymin, | ||
+ | 'disabled' => false, | ||
+ | 'readonly' => false, | ||
+ | )); | ||
+ | $fieldset->addField('monday', 'radios', array( | ||
+ | 'label' => Mage::helper('anc_lib/data')->__('monday'), | ||
+ | 'name' => 'monday', | ||
+ | 'onclick' => "", | ||
+ | 'onchange' => "", | ||
+ | 'value' => '1', | ||
+ | 'values' => array( | ||
+ | array('value' => '1', 'label' => 'Ja'), | ||
+ | array('value' => '0', 'label' => 'Nein'), | ||
+ | ), | ||
+ | 'disabled' => false, | ||
+ | 'readonly' => false, | ||
+ | 'tabindex' => 1 | ||
+ | )); | ||
+ | $fieldset->addField('tuesday', 'radios', array( | ||
+ | 'label' => Mage::helper('anc_lib/data')->__('tuesday'), | ||
+ | 'name' => 'tuesday', | ||
+ | 'onclick' => "", | ||
+ | 'onchange' => "", | ||
+ | 'value' => '1', | ||
+ | 'values' => array( | ||
+ | array('value' => '1', 'label' => 'Ja'), | ||
+ | array('value' => '0', 'label' => 'Nein'), | ||
+ | ), | ||
+ | 'disabled' => false, | ||
+ | 'readonly' => false, | ||
+ | 'tabindex' => 1 | ||
+ | )); | ||
+ | $fieldset->addField('wednesday', 'radios', array( | ||
+ | 'label' => Mage::helper('anc_lib/data')->__('wednesday'), | ||
+ | 'name' => 'wednesday', | ||
+ | 'onclick' => "", | ||
+ | 'onchange' => "", | ||
+ | 'value' => '1', | ||
+ | 'values' => array( | ||
+ | array('value' => '1', 'label' => 'Ja'), | ||
+ | array('value' => '0', 'label' => 'Nein'), | ||
+ | ), | ||
+ | 'disabled' => false, | ||
+ | 'readonly' => false, | ||
+ | 'tabindex' => 1 | ||
+ | )); | ||
+ | $fieldset->addField('thursday', 'radios', array( | ||
+ | 'label' => Mage::helper('anc_lib/data')->__('thursday'), | ||
+ | 'name' => 'thursday', | ||
+ | 'onclick' => "", | ||
+ | 'onchange' => "", | ||
+ | 'value' => '1', | ||
+ | 'values' => array( | ||
+ | array('value' => '1', 'label' => 'Ja'), | ||
+ | array('value' => '0', 'label' => 'Nein'), | ||
+ | ), | ||
+ | 'disabled' => false, | ||
+ | 'readonly' => false, | ||
+ | 'tabindex' => 1 | ||
+ | )); | ||
+ | $fieldset->addField('friday', 'radios', array( | ||
+ | 'label' => Mage::helper('anc_lib/data')->__('friday'), | ||
+ | 'name' => 'friday', | ||
+ | 'onclick' => "", | ||
+ | 'onchange' => "", | ||
+ | 'value' => '1', | ||
+ | 'values' => array( | ||
+ | array('value' => '1', 'label' => 'Ja'), | ||
+ | array('value' => '0', 'label' => 'Nein'), | ||
+ | ), | ||
+ | 'disabled' => false, | ||
+ | 'readonly' => false, | ||
+ | 'tabindex' => 1 | ||
+ | )); | ||
+ | $fieldset->addField('saturday', 'radios', array( | ||
+ | 'label' => Mage::helper('anc_lib/data')->__('saturday'), | ||
+ | 'name' => 'saturday', | ||
+ | 'onclick' => "", | ||
+ | 'onchange' => "", | ||
+ | 'value' => '1', | ||
+ | 'values' => array( | ||
+ | array('value' => '1', 'label' => 'Ja'), | ||
+ | array('value' => '0', 'label' => 'Nein'), | ||
+ | ), | ||
+ | 'disabled' => false, | ||
+ | 'readonly' => false, | ||
+ | 'tabindex' => 1 | ||
+ | )); | ||
+ | $fieldset->addField('sunday', 'radios', array( | ||
+ | 'label' => Mage::helper('anc_lib/data')->__('sunday'), | ||
+ | 'name' => 'sunday', | ||
+ | 'onclick' => "", | ||
+ | 'onchange' => "", | ||
+ | 'value' => '1', | ||
+ | 'values' => array( | ||
+ | array('value' => '1', 'label' => 'Ja'), | ||
+ | array('value' => '0', 'label' => 'Nein'), | ||
+ | ), | ||
+ | 'disabled' => false, | ||
+ | 'readonly' => false, | ||
+ | 'tabindex' => 1 | ||
+ | )); | ||
+ | |||
+ | /** | ||
+ | * Setzen der Hidden Id für Admin muss über den $data array erfolgen da sonst Magento für neue Elemente 0 setzt | ||
+ | */ | ||
+ | $data['admin_user_id'] = $admin = Mage::getSingleton('admin/session')->getUser()->getId(); | ||
+ | $fieldset->addField('admin_user_id', 'hidden', array('name' => 'admin_user_id')); | ||
+ | |||
+ | $form->setValues($data); | ||
+ | |||
+ | return parent::_prepareForm(); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | </source> | ||
../Block/Adminhtml/Timetables/Edit/Tab/Content.php | ../Block/Adminhtml/Timetables/Edit/Tab/Content.php | ||
+ | <source lang="php"> | ||
+ | class Anc_Lib_Block_Adminhtml_Timetables_Edit_Tab_Content extends Mage_Adminhtml_Block_Widget_Form { | ||
+ | |||
+ | protected function _prepareForm() { | ||
+ | if (Mage::registry('anc_timetable')) { | ||
+ | $data = Mage::registry('anc_timetable')->getData(); | ||
+ | } else { | ||
+ | $data = array(); | ||
+ | } | ||
+ | $form = new Varien_Data_Form(); | ||
+ | $this->setForm($form); | ||
+ | $fieldset = $form->addFieldset('anc_timetable', array('name' => 'Info'));//Mage::helper('news')->__('news information'))); | ||
+ | $form->setValues($data); | ||
+ | return parent::_prepareForm(); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </source> | ||
=== Helper === | === Helper === | ||
../Helper/Data.php | ../Helper/Data.php | ||
+ | <source lang="php"> | ||
+ | <?php | ||
+ | |||
+ | class Anc_Lib_Helper_Data extends Mage_Core_Helper_Abstract { | ||
+ | |||
+ | } | ||
+ | </source> | ||
=== Model === | === Model === | ||
Zeile 24: | Zeile 523: | ||
=== Controller.php=== | === Controller.php=== | ||
../controllers/Adminhtml/TimetableController.php | ../controllers/Adminhtml/TimetableController.php | ||
+ | <source lang="php"> | ||
+ | |||
+ | class Anc_Lib_Adminhtml_TimetableController extends Mage_Adminhtml_Controller_Action { | ||
+ | |||
+ | public function listAction() { | ||
+ | $timetableBlock = $this->getLayout()->createBlock('anc_lib/adminhtml_timetables'); | ||
+ | $this->loadLayout() | ||
+ | ->_addContent($timetableBlock) | ||
+ | ->renderLayout(); | ||
+ | } | ||
+ | |||
+ | protected function _initAction() { | ||
+ | $this->loadLayout()->_setActiveMenu('anc_lib/ANC') | ||
+ | ->_addBreadcrumb('test Manager', 'test Manager'); | ||
+ | return $this; | ||
+ | } | ||
+ | |||
+ | public function indexAction() { | ||
+ | $this->_initAction(); | ||
+ | $this->renderLayout(); | ||
+ | } | ||
+ | |||
+ | public function editAction() { | ||
+ | $id = $this->getRequest()->getParam('id'); | ||
+ | $model = Mage::getModel('anc_lib/timetable')->load($id); | ||
+ | if ($model->getId() || $id == 0) { | ||
+ | Mage::register('anc_timetable', $model); | ||
+ | $this->loadLayout(); | ||
+ | $this->_setActiveMenu('test/set_time'); | ||
+ | $this->_addBreadcrumb('test Manager', 'test Manager'); | ||
+ | $this->_addBreadcrumb('Test Description', 'Test Description'); | ||
+ | $this->getLayout()->getBlock('head') | ||
+ | ->setCanLoadExtJs(true); | ||
+ | $this->_addContent($this->getLayout() | ||
+ | ->createBlock('anc_lib/adminhtml_timetables_edit')) | ||
+ | ->_addLeft($this->getLayout() | ||
+ | ->createBlock('anc_lib/adminhtml_timetables_edit_tabs') | ||
+ | ); | ||
+ | $this->renderLayout(); | ||
+ | } else { | ||
+ | Mage::getSingleton('adminhtml/session') | ||
+ | ->addError('Test does not exist'); | ||
+ | $this->_redirect('*/*/'); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | public function newAction() { | ||
+ | $this->_forward('edit'); | ||
+ | } | ||
+ | |||
+ | public function saveAction() { | ||
+ | if ($this->getRequest()->getPost()) { | ||
+ | try { | ||
+ | $postData = $this->getRequest()->getPost(); | ||
+ | $testModel = Mage::getModel('anc_lib/timetable'); | ||
+ | if ($this->getRequest()->getParam('id') <= 0) | ||
+ | $testModel->setCreatedTime( | ||
+ | Mage::getSingleton('core/date') | ||
+ | ->gmtDate() | ||
+ | ); | ||
+ | $testModel | ||
+ | ->addData($postData) | ||
+ | ->setUpdateTime( | ||
+ | Mage::getSingleton('core/date') | ||
+ | ->gmtDate()) | ||
+ | ->setId($this->getRequest()->getParam('id')) | ||
+ | ->save(); | ||
+ | Mage::getSingleton('adminhtml/session') | ||
+ | ->addSuccess('successfully saved'); | ||
+ | Mage::getSingleton('adminhtml/session') | ||
+ | ->settestData(false); | ||
+ | $this->_redirect('*/*/list'); | ||
+ | return; | ||
+ | } catch (Exception $e) { | ||
+ | Mage::getSingleton('adminhtml/session') | ||
+ | ->addError($e->getMessage()); | ||
+ | Mage::getSingleton('adminhtml/session') | ||
+ | ->settestData($this->getRequest() | ||
+ | ->getPost() | ||
+ | ); | ||
+ | $this->_redirect('*/*/edit', array('id' => $this->getRequest() | ||
+ | ->getParam('id'))); | ||
+ | return; | ||
+ | } | ||
+ | } | ||
+ | $this->_redirect('*/*/'); | ||
+ | } | ||
+ | |||
+ | public function deleteAction() { | ||
+ | if ($this->getRequest()->getParam('id') > 0) { | ||
+ | try { | ||
+ | $testModel = Mage::getModel('anc_lib/timetable'); | ||
+ | $testModel->setId($this->getRequest() | ||
+ | ->getParam('id')) | ||
+ | ->delete(); | ||
+ | Mage::getSingleton('adminhtml/session') | ||
+ | ->addSuccess('successfully deleted'); | ||
+ | $this->_redirect('*/*/'); | ||
+ | $this->_redirect('*/*/list'); | ||
+ | } catch (Exception $e) { | ||
+ | Mage::getSingleton('adminhtml/session') | ||
+ | ->addError($e->getMessage()); | ||
+ | $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id'))); | ||
+ | } | ||
+ | } | ||
+ | $this->_redirect('*/*/list'); | ||
+ | |||
+ | } | ||
+ | |||
+ | protected function _isAllowed() { | ||
+ | return Mage::getSingleton('admin/session')->isAllowed('lib/form'); | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
=== etc === | === etc === | ||
../etc/config.xml | ../etc/config.xml | ||
+ | <source lang="xml"> | ||
+ | <?xml version="1.0"?> | ||
+ | <config> | ||
+ | <modules> | ||
+ | <Anc_Lib> | ||
+ | <version>0.1.0</version> | ||
+ | </Anc_Lib> | ||
+ | </modules> | ||
+ | <global> | ||
+ | <models> | ||
+ | <anc_lib> | ||
+ | <class>Anc_Lib_Model</class> | ||
+ | <resourceModel>anc_lib_resource</resourceModel> | ||
+ | </anc_lib> | ||
+ | <anc_lib_resource> | ||
+ | <class>Anc_Lib_Model_Resource_Mysql4</class> | ||
+ | <!-- entitie's mit s hier können mehrere Tabellen(namen) untergebracht werden --> | ||
+ | <entities> | ||
+ | <timetable> | ||
+ | <table>anc_lib_timetable</table> | ||
+ | </timetable> | ||
+ | </entities> | ||
+ | </anc_lib_resource> | ||
+ | </models> | ||
+ | <resources> | ||
+ | <!-- hier verbirgt sich das installationsskript um die datenbanktabellen zu erstellen --> | ||
+ | <anc_lib_setup> | ||
+ | <setup> | ||
+ | <module>Anc_Lib</module> | ||
+ | <class>Mage_Sales_Model_Mysql4_Setup</class> | ||
+ | </setup> | ||
+ | <connection> | ||
+ | <use>core_setup</use> | ||
+ | </connection> | ||
+ | </anc_lib_setup> | ||
+ | <!-- datenbank verbindungen --> | ||
+ | <anc_lib_write> | ||
+ | <connection> | ||
+ | <use>core_write</use> | ||
+ | </connection> | ||
+ | </anc_lib_write> | ||
+ | <anc_lib_read> | ||
+ | <connection> | ||
+ | <use>core_read</use> | ||
+ | </connection> | ||
+ | </anc_lib_read> | ||
+ | </resources> | ||
+ | |||
+ | <blocks> | ||
+ | <anc_lib> | ||
+ | <class>Anc_Lib_Block</class> | ||
+ | </anc_lib> | ||
+ | <anc_lib_adminhtml> | ||
+ | <class>Anc_Lib_Block_Adminhtml</class> | ||
+ | </anc_lib_adminhtml> | ||
+ | <customer> | ||
+ | <rewrite> | ||
+ | <account_navigation>Anc_Lib_Block_Account_Navigation</account_navigation> | ||
+ | </rewrite> | ||
+ | </customer> | ||
+ | </blocks> | ||
+ | <helpers> | ||
+ | <anc_lib> | ||
+ | <class>Anc_Lib_Helper</class> | ||
+ | </anc_lib> | ||
+ | </helpers> | ||
+ | </global> | ||
+ | <admin> | ||
+ | <routers> | ||
+ | <anc_lib> | ||
+ | <use>admin</use> | ||
+ | <args> | ||
+ | <module>Anc_Lib</module> | ||
+ | <frontName>lib</frontName> | ||
+ | </args> | ||
+ | </anc_lib> | ||
+ | </routers> | ||
+ | </admin> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | <adminhtml> | ||
+ | <menu> | ||
+ | <Anc_Anc module="anc_lib"> | ||
+ | <title>ANC</title> | ||
+ | <sort_order>71</sort_order> | ||
+ | <children> | ||
+ | <item2 module="anc_lib"> | ||
+ | <title>Playlists</title> | ||
+ | <sort_order>2</sort_order> | ||
+ | <action>site/adminhtml_playlist/list</action> | ||
+ | <children> | ||
+ | <item2b module="anc_lib"> | ||
+ | <title>Timetables</title> | ||
+ | <sort_order>3</sort_order> | ||
+ | |||
+ | <action>lib/adminhtml_timetable/list</action> | ||
+ | </item2b> | ||
+ | </children> | ||
+ | </item2> | ||
+ | </children> | ||
+ | </Anc_Anc> | ||
+ | </menu> | ||
+ | |||
+ | </adminhtml> | ||
+ | </config> | ||
+ | |||
+ | </source> | ||
../etc/adminhtml.xml | ../etc/adminhtml.xml | ||
+ | <source lang="xml"> | ||
+ | <?xml version="1.0"?> | ||
+ | <config> | ||
+ | <acl> | ||
+ | <resources> | ||
+ | <all> | ||
+ | <title>Allow Everything</title> | ||
+ | </all> | ||
+ | <admin> | ||
+ | <children> | ||
+ | <Anc_Anc module="anc_site"> | ||
+ | <title>ANC</title> | ||
+ | <sort_order>71</sort_order> | ||
+ | <children> | ||
+ | <item2 module="anc_site"> | ||
+ | <title>Playlists</title> | ||
+ | <sort_order>2</sort_order> | ||
+ | <action>site/adminhtml_site/index</action> | ||
+ | <children> | ||
+ | <item2b module="anc_lib"> | ||
+ | <title>Timetables</title> | ||
+ | <sort_order>3</sort_order> | ||
+ | <action>lib/adminhtml_timetable/list</action> | ||
+ | </item2b> | ||
+ | </children> | ||
+ | </item2> | ||
+ | </children> | ||
+ | </Anc_Anc> | ||
+ | |||
+ | |||
+ | <system> | ||
+ | <children> | ||
+ | <config> | ||
+ | <children> | ||
+ | <site translate="title"> | ||
+ | <title>Lib</title> | ||
+ | <sort_order>101</sort_order> | ||
+ | </site> | ||
+ | </children> | ||
+ | </config> | ||
+ | </children> | ||
+ | </system> | ||
+ | </children> | ||
+ | </admin> | ||
+ | </resources> | ||
+ | </acl> | ||
+ | |||
+ | </config> | ||
+ | </source> | ||
+ | |||
+ | === sql=== | ||
+ | ../sql/anc_lib_setup/install-0.1.0.php | ||
+ | |||
+ | <source lang="php"> | ||
+ | <?php | ||
+ | $installer = $this; | ||
+ | $installer->startSetup(); | ||
+ | $tableName = $installer->getTable('anc_lib/timetable'); | ||
+ | if ($installer->getConnection()->isTableExists($tableName) != true) { | ||
+ | $table = $installer->getConnection()->newTable($tableName) | ||
+ | ->addColumn('entity_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array('identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true,), 'Id') | ||
+ | ->addColumn('name', Varien_Db_Ddl_Table::TYPE_VARCHAR, null, array(), 'Name') | ||
+ | ->addColumn('comment', Varien_Db_Ddl_Table::TYPE_VARCHAR, null, array(), 'comment') | ||
+ | ->addColumn('admin_user_id', Varien_Db_Ddl_Table::TYPE_INTEGER,null,array('unsigned' => true,'nullable' => false,'default' => '0',),'Who Created backend') | ||
+ | ->addColumn('customer_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array('unsigned' => true, 'nullable' => false, 'default' => '0',), 'Who Created frontend') | ||
+ | ->addColumn('start', Varien_Db_Ddl_Table::TYPE_TIMESTAMP,null,array(),'Start Date as Timestamp') | ||
+ | ->addColumn('stop', Varien_Db_Ddl_Table::TYPE_TIMESTAMP,null,array(),'End Date as Timestamp') | ||
+ | ->addColumn('starthour', Varien_Db_Ddl_Table::TYPE_INTEGER,null,array('default' => '0'),'Daily start Hour') | ||
+ | ->addColumn('stophour', Varien_Db_Ddl_Table::TYPE_INTEGER,null,array('default' => '23'),'Daily stop Hour') | ||
+ | ->addColumn('startmin', Varien_Db_Ddl_Table::TYPE_INTEGER,null,array('default' => '0'),'Daily start Min') | ||
+ | ->addColumn('stopmin', Varien_Db_Ddl_Table::TYPE_INTEGER,null,array('default' => '59'),'Daily stop Min') | ||
+ | ->addColumn('monday', Varien_Db_Ddl_Table::TYPE_BOOLEAN, null, array('default' => '1'), 'Runs Mondays') | ||
+ | ->addColumn('tuesday', Varien_Db_Ddl_Table::TYPE_BOOLEAN, null, array('default' => '1'), 'Runs Tuesday') | ||
+ | ->addColumn('wednesday', Varien_Db_Ddl_Table::TYPE_BOOLEAN, null, array('default' => '1'), 'Runs Wednesday') | ||
+ | ->addColumn('thursday', Varien_Db_Ddl_Table::TYPE_BOOLEAN, null, array('default' => '1'), 'Runs Thursday') | ||
+ | ->addColumn('friday', Varien_Db_Ddl_Table::TYPE_BOOLEAN, null, array('default' => '1'), 'Runs Friday') | ||
+ | ->addColumn('saturday', Varien_Db_Ddl_Table::TYPE_BOOLEAN, null, array('default' => '1'), 'Runs Saturday') | ||
+ | ->addColumn('sunday', Varien_Db_Ddl_Table::TYPE_BOOLEAN, null, array('default' => '1'), 'Runs Sunday') | ||
+ | ->addColumn('created_at', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, array(), 'When beginn') | ||
+ | ->addColumn('updated_at', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, array(), 'When updated') | ||
+ | ->addColumn('deleted', Varien_Db_Ddl_Table::TYPE_TINYINT, null, array('default' => '0'), 'Deleted') | ||
+ | ; | ||
+ | $installer->getConnection()->createTable($table); | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | $installer->endSetup(); | ||
+ | ?> | ||
+ | </source> |
Aktuelle Version vom 31. Mai 2014, 08:45 Uhr
Inhaltsverzeichnis
Struktur
Blöcke
../Block/Adminhtml/Timetables.php
class Anc_Lib_Block_Adminhtml_Timetables extends Mage_Adminhtml_Block_Widget_Grid_Container {
public function __construct() {
$this->_controller = 'adminhtml_timetables';
$this->_blockGroup = 'anc_lib';
$this->_headerText = Mage::helper('anc_lib/data')->__('Timetable');
$this->_addButtonLabel = Mage::helper('anc_lib/data')->__('Timetable erstellen');
parent::__construct();
}
public function getCreateUrl()
{
return $this->getUrl(
'lib/adminhtml_timetable/edit'
);
}
}
../Block/Adminhtml/Timetables ../Block/Adminhtml/Timetables/Grid.php
<?php
class Anc_Lib_Block_Adminhtml_Timetables_Grid extends Mage_Adminhtml_Block_Widget_Grid
{
public function __construct()
{
parent::__construct();
$this->setId('anc_lib_timetables_grid');
$this->setDefaultSort('entity_id');
$this->setDefaultDir('DESC');
$this->setSaveParametersInSession(true);
}
protected function _getCollectionClass()
{
return 'anc_lib/timetable';
}
protected function _prepareCollection()
{
$collection = Mage::getModel('anc_lib/timetable')->getCollection()->addFieldToFilter('customer_id',array('lt'=>1));;
// D::s($collection,'$collection',15,1,1);
$this->setCollection($collection);
// D::s($collection,'$collection',5,1,1);
return parent::_prepareCollection();
}
protected function _prepareColumns()
{
$this->addColumn('entity_id',
array(
'header' => Mage::helper('anc_lib/data')->__('Id'),
'align' =>'right',
'width' => '50px',
'index' => 'entity_id',
));
$this->addColumn('name',
array(
'header' => Mage::helper('anc_lib/data')->__('Name'),
'align' =>'left',
'index' => 'name',
));
$this->addColumn('comment', array(
'header' => Mage::helper('anc_lib/data')->__('Comment'),
'align' =>'left',
'index' => 'comment',
));
$this->addColumn('admin_user_id', array(
'header' => Mage::helper('anc_lib/data')->__('Admin'),
'align' =>'left',
'index' => 'admin_user_id',
));
$this->addColumn('customer_id', array(
'header' => Mage::helper('anc_lib/data')->__('Customer'),
'align' =>'left',
'index' => 'customer_id',
));
$this->addColumn('created_at', array(
'header' => Mage::helper('anc_lib/data')->__('Created'),
'align' =>'left',
'index' => 'created_at',
));
$this->addColumn('updated_at', array(
'header' => Mage::helper('anc_lib/data')->__('Updated'),
'align' =>'left',
'index' => 'updated_at',
));
$this->addColumn('updated_at', array(
'header' => Mage::helper('anc_lib/data')->__('Updated'),
'align' =>'left',
'index' => 'updated_at',
));
$this->addColumn('updated_at', array(
'header' => Mage::helper('anc_lib/data')->__('Updated'),
'align' =>'left',
'index' => 'updated_at',
));
$this->addColumn('start', array(
'header' => Mage::helper('anc_lib/data')->__('Start'),
'align' =>'left',
'index' => 'start',
));
$this->addColumn('stop', array(
'header' => Mage::helper('anc_lib/data')->__('Stop'),
'align' =>'left',
'index' => 'stop',
));
$this->addColumn('starthour', array(
'header' => Mage::helper('anc_lib/data')->__('Starthour'),
'align' =>'left',
'index' => 'starthour',
));
$this->addColumn('stophour', array(
'header' => Mage::helper('anc_lib/data')->__('Stophour'),
'align' =>'left',
'index' => 'stophour',
));
$this->addColumn('startmin', array(
'header' => Mage::helper('anc_lib/data')->__('Startmin'),
'align' =>'left',
'index' => 'startmin',
));
$this->addColumn('stopmin', array(
'header' => Mage::helper('anc_lib/data')->__('Stopmin'),
'align' =>'left',
'index' => 'stopmin',
));
$this->addColumn('monday', array(
// 'type' => 'checkbox',
'values' => array(0,1),
'field_name' => 'checkbox_name',
'header' => Mage::helper('anc_lib/data')->__('Monday'),
'align' =>'left',
'index' => 'monday',
));
$this->addColumn('tuesday', array(
'header' => Mage::helper('anc_lib/data')->__('Tuesday'),
'values' => array(0,1),
'align' =>'left',
'index' => 'tuesday',
));
$this->addColumn('wednesday', array(
'header' => Mage::helper('anc_lib/data')->__('Wednesday'),
'align' =>'left',
'index' => 'wednesday',
));
$this->addColumn('thursday', array(
'header' => Mage::helper('anc_lib/data')->__('Thursday'),
'align' =>'left',
'index' => 'thursday',
));
$this->addColumn('friday', array(
'header' => Mage::helper('anc_lib/data')->__('Friday'),
'align' =>'left',
'index' => 'friday',
));
$this->addColumn('saturday', array(
'header' => Mage::helper('anc_lib/data')->__('Saturday'),
'align' =>'left',
'index' => 'saturday',
));
$this->addColumn('sunday', array(
'header' => Mage::helper('anc_lib/data')->__('Sunday'),
'align' =>'left',
'index' => 'sunday',
));
return parent::_prepareColumns();
}
public function getRowUrl($row)
{
return $this->getUrl('*/*/edit', array('id' => $row->getId()));
}
}
../Block/Adminhtml/Timetables/Edit.php
class Anc_Lib_Block_Adminhtml_Timetables_Edit
extends Mage_Adminhtml_Block_Widget_Form_Container
{
protected function _construct()
{
$this->_controller = 'timetables';
$this->_blockGroup = 'anc_lib_adminhtml';
$this->_updateButton('save', 'label', $this->__('Save'));
$this->_updateButton('delete', 'label', $this->__('Delete'));
}
}
../Block/Adminhtml/Timetables/Edit ../Block/Adminhtml/Timetables/Edit/Form.php
<?php
class Anc_Lib_Block_Adminhtml_Timetables_Edit_Form extends Mage_Adminhtml_Block_Widget_Form {
protected function _prepareForm() {
if (Mage::registry('anc_lib')) {
$data = Mage::registry('anc_lib')->getData();
} else {
$data = array();
}
$form = new Varien_Data_Form(array(
'id' => 'edit_form',
'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
'method' => 'post',
'enctype' => 'multipart/form-data'
)
);
$form->setUseContainer(true);
$this->setForm($form);
$form->setValues($data);
return parent::_prepareForm();
}
}
../Block/Adminhtml/Timetables/Edit/Tabs.php
class Anc_Lib_Block_Adminhtml_Timetables_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs {
public function __construct() {
parent::__construct();
$this->setId('timetables_tabs');
$this->setDestElementId('edit_form'); // this should be same as the form id define above
$this->setTitle('Timetables');
}
protected function _beforeToHtml() {
$this->addTab(
'form_section', array(
'label' => 'Timetables Info', // Mage::helper('news')->__('News Information'),
'title' => 'Timetables Info', //Mage::helper('news')->__('News Information'),
'content' => $this->getLayout()->createBlock('anc_lib/adminhtml_timetables_edit_tab_form')->toHtml(),
)
);
$this->addTab('form_section1', array(
'label' => 'Timetables Extras', //Mage::helper('news')->__('Content'),
'title' => 'Timetables Extras', //Mage::helper('news')->__('Content'),
'content' => $this->getLayout()->createBlock('anc_lib/adminhtml_timetables_edit_tab_content')->toHtml(),
));
return parent::_beforeToHtml();
}
}
../Block/Adminhtml/Timetables/Edit/Tab ../Block/Adminhtml/Timetables/Edit/Tab/Form.php
<?php
class Anc_Lib_Block_Adminhtml_Timetables_Edit_Tab_Form extends Mage_Adminhtml_Block_Widget_Form {
protected function _prepareForm() {
$arrayhour = array('0' => '0', '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '10' => '10', '11' => '11', '12' => '12', '13' => '13', '14' => '14', '15' => '15', '16' => '16', '17' => '17', '18' => '18', '19' => '19', '20' => '20', '21' => '21', '22' => '22', '23' => '23');
$arraymin = array('0' => '0', '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '10' => '10', '11' => '11', '12' => '12', '13' => '13', '14' => '14', '15' => '15', '16' => '16', '17' => '17', '18' => '18', '19' => '19', '20' => '20', '21' => '21', '22' => '22', '23' => '23', '24' => '24', '25' => '25', '26' => '26', '27' => '27', '28' => '28', '29' => '29',
'30' => '30', '31' => '31', '32' => '32', '33' => '33', '34' => '34', '35' => '35', '36' => '36', '37' => '37', '38' => '38', '39' => '39', '40' => '40', '41' => '41', '42' => '42', '43' => '43', '44' => '44', '44' => '45', '46' => '46', '47' => '47', '48' => '48', '49' => '49', '50' => '50', '51' => '51', '52' => '52', '53' => '53', '54' => '54', '55' => '55', '56' => '56', '57' => '57', '58' => '58', '59' => '59');
if (Mage::registry('anc_timetable')) {
$data = Mage::registry('anc_timetable')->getData();
} else {
$data = array();
}
$form = new Varien_Data_Form();
$this->setForm($form);
$fieldset = $form->addFieldset('anc_timetable', array('name' => 'name')); //Mage::helper('news')->__('news information')));
$fieldset->addField('name', 'text', array(
'label' => Mage::helper('anc_lib/data')->__('Name'),
'class' => 'required-entry',
'required' => true,
'name' => 'name',
));
$fieldset->addField('comment', 'textarea', array(
'label' => Mage::helper('anc_lib/data')->__('Comment'),
'class' => 'required-entry',
'required' => true,
'name' => 'comment',
));
$fieldset->addField('start', 'date', array(
'label' => Mage::helper('anc_lib/data')->__('Start'),
'class' => 'required-entry',
'required' => true,
'name' => 'start',
'tabindex' => 1,
'image' => $this->getSkinUrl('images/grid-cal.gif'),
'format' => Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT),
));
$fieldset->addField('stop', 'date', array(
'label' => Mage::helper('anc_lib/data')->__('Stop'),
'class' => 'required-entry',
'required' => true,
'name' => 'stop',
'tabindex' => 1,
'image' => $this->getSkinUrl('images/grid-cal.gif'),
'format' => Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT),
));
$fieldset->addField('starthour', 'select', array(
'label' => Mage::helper('anc_lib/data')->__('Starthour'),
'class' => 'required-entry',
'required' => true,
'name' => 'starthour',
'onclick' => "",
'onchange' => "",
'values' => $arrayhour,
'disabled' => false,
'readonly' => false,
));
$fieldset->addField('stophour', 'select', array(
'label' => Mage::helper('anc_lib/data')->__('stophour'),
'class' => 'required-entry',
'required' => true,
'name' => 'stophour',
'onclick' => "",
'onchange' => "",
'values' => $arrayhour,
'disabled' => false,
'readonly' => false,
));
$fieldset->addField('startmin', 'select', array(
'label' => Mage::helper('anc_lib/data')->__('startmin'),
'class' => 'required-entry',
'required' => true,
'name' => 'startmin',
'onclick' => "",
'onchange' => "",
'values' => $arraymin,
'disabled' => false,
'readonly' => false,
'tabindex' => 2
));
$fieldset->addField('stopmin', 'select', array(
'label' => Mage::helper('anc_lib/data')->__('stopmin'),
'class' => 'required-entry',
'required' => true,
'name' => 'stopmin',
'onclick' => "",
'onchange' => "",
'values' => $arraymin,
'disabled' => false,
'readonly' => false,
));
$fieldset->addField('monday', 'radios', array(
'label' => Mage::helper('anc_lib/data')->__('monday'),
'name' => 'monday',
'onclick' => "",
'onchange' => "",
'value' => '1',
'values' => array(
array('value' => '1', 'label' => 'Ja'),
array('value' => '0', 'label' => 'Nein'),
),
'disabled' => false,
'readonly' => false,
'tabindex' => 1
));
$fieldset->addField('tuesday', 'radios', array(
'label' => Mage::helper('anc_lib/data')->__('tuesday'),
'name' => 'tuesday',
'onclick' => "",
'onchange' => "",
'value' => '1',
'values' => array(
array('value' => '1', 'label' => 'Ja'),
array('value' => '0', 'label' => 'Nein'),
),
'disabled' => false,
'readonly' => false,
'tabindex' => 1
));
$fieldset->addField('wednesday', 'radios', array(
'label' => Mage::helper('anc_lib/data')->__('wednesday'),
'name' => 'wednesday',
'onclick' => "",
'onchange' => "",
'value' => '1',
'values' => array(
array('value' => '1', 'label' => 'Ja'),
array('value' => '0', 'label' => 'Nein'),
),
'disabled' => false,
'readonly' => false,
'tabindex' => 1
));
$fieldset->addField('thursday', 'radios', array(
'label' => Mage::helper('anc_lib/data')->__('thursday'),
'name' => 'thursday',
'onclick' => "",
'onchange' => "",
'value' => '1',
'values' => array(
array('value' => '1', 'label' => 'Ja'),
array('value' => '0', 'label' => 'Nein'),
),
'disabled' => false,
'readonly' => false,
'tabindex' => 1
));
$fieldset->addField('friday', 'radios', array(
'label' => Mage::helper('anc_lib/data')->__('friday'),
'name' => 'friday',
'onclick' => "",
'onchange' => "",
'value' => '1',
'values' => array(
array('value' => '1', 'label' => 'Ja'),
array('value' => '0', 'label' => 'Nein'),
),
'disabled' => false,
'readonly' => false,
'tabindex' => 1
));
$fieldset->addField('saturday', 'radios', array(
'label' => Mage::helper('anc_lib/data')->__('saturday'),
'name' => 'saturday',
'onclick' => "",
'onchange' => "",
'value' => '1',
'values' => array(
array('value' => '1', 'label' => 'Ja'),
array('value' => '0', 'label' => 'Nein'),
),
'disabled' => false,
'readonly' => false,
'tabindex' => 1
));
$fieldset->addField('sunday', 'radios', array(
'label' => Mage::helper('anc_lib/data')->__('sunday'),
'name' => 'sunday',
'onclick' => "",
'onchange' => "",
'value' => '1',
'values' => array(
array('value' => '1', 'label' => 'Ja'),
array('value' => '0', 'label' => 'Nein'),
),
'disabled' => false,
'readonly' => false,
'tabindex' => 1
));
/**
* Setzen der Hidden Id für Admin muss über den $data array erfolgen da sonst Magento für neue Elemente 0 setzt
*/
$data['admin_user_id'] = $admin = Mage::getSingleton('admin/session')->getUser()->getId();
$fieldset->addField('admin_user_id', 'hidden', array('name' => 'admin_user_id'));
$form->setValues($data);
return parent::_prepareForm();
}
}
../Block/Adminhtml/Timetables/Edit/Tab/Content.php
class Anc_Lib_Block_Adminhtml_Timetables_Edit_Tab_Content extends Mage_Adminhtml_Block_Widget_Form {
protected function _prepareForm() {
if (Mage::registry('anc_timetable')) {
$data = Mage::registry('anc_timetable')->getData();
} else {
$data = array();
}
$form = new Varien_Data_Form();
$this->setForm($form);
$fieldset = $form->addFieldset('anc_timetable', array('name' => 'Info'));//Mage::helper('news')->__('news information')));
$form->setValues($data);
return parent::_prepareForm();
}
}
Helper
../Helper/Data.php
<?php
class Anc_Lib_Helper_Data extends Mage_Core_Helper_Abstract {
}
Model
../Model/Resource/Mysql4/Timetable/Collection.php ../Model/Resource/Mysql4/Timetable.php
Controller.php
../controllers/Adminhtml/TimetableController.php
class Anc_Lib_Adminhtml_TimetableController extends Mage_Adminhtml_Controller_Action {
public function listAction() {
$timetableBlock = $this->getLayout()->createBlock('anc_lib/adminhtml_timetables');
$this->loadLayout()
->_addContent($timetableBlock)
->renderLayout();
}
protected function _initAction() {
$this->loadLayout()->_setActiveMenu('anc_lib/ANC')
->_addBreadcrumb('test Manager', 'test Manager');
return $this;
}
public function indexAction() {
$this->_initAction();
$this->renderLayout();
}
public function editAction() {
$id = $this->getRequest()->getParam('id');
$model = Mage::getModel('anc_lib/timetable')->load($id);
if ($model->getId() || $id == 0) {
Mage::register('anc_timetable', $model);
$this->loadLayout();
$this->_setActiveMenu('test/set_time');
$this->_addBreadcrumb('test Manager', 'test Manager');
$this->_addBreadcrumb('Test Description', 'Test Description');
$this->getLayout()->getBlock('head')
->setCanLoadExtJs(true);
$this->_addContent($this->getLayout()
->createBlock('anc_lib/adminhtml_timetables_edit'))
->_addLeft($this->getLayout()
->createBlock('anc_lib/adminhtml_timetables_edit_tabs')
);
$this->renderLayout();
} else {
Mage::getSingleton('adminhtml/session')
->addError('Test does not exist');
$this->_redirect('*/*/');
}
}
public function newAction() {
$this->_forward('edit');
}
public function saveAction() {
if ($this->getRequest()->getPost()) {
try {
$postData = $this->getRequest()->getPost();
$testModel = Mage::getModel('anc_lib/timetable');
if ($this->getRequest()->getParam('id') <= 0)
$testModel->setCreatedTime(
Mage::getSingleton('core/date')
->gmtDate()
);
$testModel
->addData($postData)
->setUpdateTime(
Mage::getSingleton('core/date')
->gmtDate())
->setId($this->getRequest()->getParam('id'))
->save();
Mage::getSingleton('adminhtml/session')
->addSuccess('successfully saved');
Mage::getSingleton('adminhtml/session')
->settestData(false);
$this->_redirect('*/*/list');
return;
} catch (Exception $e) {
Mage::getSingleton('adminhtml/session')
->addError($e->getMessage());
Mage::getSingleton('adminhtml/session')
->settestData($this->getRequest()
->getPost()
);
$this->_redirect('*/*/edit', array('id' => $this->getRequest()
->getParam('id')));
return;
}
}
$this->_redirect('*/*/');
}
public function deleteAction() {
if ($this->getRequest()->getParam('id') > 0) {
try {
$testModel = Mage::getModel('anc_lib/timetable');
$testModel->setId($this->getRequest()
->getParam('id'))
->delete();
Mage::getSingleton('adminhtml/session')
->addSuccess('successfully deleted');
$this->_redirect('*/*/');
$this->_redirect('*/*/list');
} catch (Exception $e) {
Mage::getSingleton('adminhtml/session')
->addError($e->getMessage());
$this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
}
}
$this->_redirect('*/*/list');
}
protected function _isAllowed() {
return Mage::getSingleton('admin/session')->isAllowed('lib/form');
}
}
etc
../etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Anc_Lib>
<version>0.1.0</version>
</Anc_Lib>
</modules>
<global>
<models>
<anc_lib>
<class>Anc_Lib_Model</class>
<resourceModel>anc_lib_resource</resourceModel>
</anc_lib>
<anc_lib_resource>
<class>Anc_Lib_Model_Resource_Mysql4</class>
<!-- entitie's mit s hier können mehrere Tabellen(namen) untergebracht werden -->
<entities>
<timetable>
<table>anc_lib_timetable</table>
</timetable>
</entities>
</anc_lib_resource>
</models>
<resources>
<!-- hier verbirgt sich das installationsskript um die datenbanktabellen zu erstellen -->
<anc_lib_setup>
<setup>
<module>Anc_Lib</module>
<class>Mage_Sales_Model_Mysql4_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</anc_lib_setup>
<!-- datenbank verbindungen -->
<anc_lib_write>
<connection>
<use>core_write</use>
</connection>
</anc_lib_write>
<anc_lib_read>
<connection>
<use>core_read</use>
</connection>
</anc_lib_read>
</resources>
<blocks>
<anc_lib>
<class>Anc_Lib_Block</class>
</anc_lib>
<anc_lib_adminhtml>
<class>Anc_Lib_Block_Adminhtml</class>
</anc_lib_adminhtml>
<customer>
<rewrite>
<account_navigation>Anc_Lib_Block_Account_Navigation</account_navigation>
</rewrite>
</customer>
</blocks>
<helpers>
<anc_lib>
<class>Anc_Lib_Helper</class>
</anc_lib>
</helpers>
</global>
<admin>
<routers>
<anc_lib>
<use>admin</use>
<args>
<module>Anc_Lib</module>
<frontName>lib</frontName>
</args>
</anc_lib>
</routers>
</admin>
<adminhtml>
<menu>
<Anc_Anc module="anc_lib">
<title>ANC</title>
<sort_order>71</sort_order>
<children>
<item2 module="anc_lib">
<title>Playlists</title>
<sort_order>2</sort_order>
<action>site/adminhtml_playlist/list</action>
<children>
<item2b module="anc_lib">
<title>Timetables</title>
<sort_order>3</sort_order>
<action>lib/adminhtml_timetable/list</action>
</item2b>
</children>
</item2>
</children>
</Anc_Anc>
</menu>
</adminhtml>
</config>
../etc/adminhtml.xml
<?xml version="1.0"?>
<config>
<acl>
<resources>
<all>
<title>Allow Everything</title>
</all>
<admin>
<children>
<Anc_Anc module="anc_site">
<title>ANC</title>
<sort_order>71</sort_order>
<children>
<item2 module="anc_site">
<title>Playlists</title>
<sort_order>2</sort_order>
<action>site/adminhtml_site/index</action>
<children>
<item2b module="anc_lib">
<title>Timetables</title>
<sort_order>3</sort_order>
<action>lib/adminhtml_timetable/list</action>
</item2b>
</children>
</item2>
</children>
</Anc_Anc>
<system>
<children>
<config>
<children>
<site translate="title">
<title>Lib</title>
<sort_order>101</sort_order>
</site>
</children>
</config>
</children>
</system>
</children>
</admin>
</resources>
</acl>
</config>
sql
../sql/anc_lib_setup/install-0.1.0.php
<?php
$installer = $this;
$installer->startSetup();
$tableName = $installer->getTable('anc_lib/timetable');
if ($installer->getConnection()->isTableExists($tableName) != true) {
$table = $installer->getConnection()->newTable($tableName)
->addColumn('entity_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array('identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true,), 'Id')
->addColumn('name', Varien_Db_Ddl_Table::TYPE_VARCHAR, null, array(), 'Name')
->addColumn('comment', Varien_Db_Ddl_Table::TYPE_VARCHAR, null, array(), 'comment')
->addColumn('admin_user_id', Varien_Db_Ddl_Table::TYPE_INTEGER,null,array('unsigned' => true,'nullable' => false,'default' => '0',),'Who Created backend')
->addColumn('customer_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array('unsigned' => true, 'nullable' => false, 'default' => '0',), 'Who Created frontend')
->addColumn('start', Varien_Db_Ddl_Table::TYPE_TIMESTAMP,null,array(),'Start Date as Timestamp')
->addColumn('stop', Varien_Db_Ddl_Table::TYPE_TIMESTAMP,null,array(),'End Date as Timestamp')
->addColumn('starthour', Varien_Db_Ddl_Table::TYPE_INTEGER,null,array('default' => '0'),'Daily start Hour')
->addColumn('stophour', Varien_Db_Ddl_Table::TYPE_INTEGER,null,array('default' => '23'),'Daily stop Hour')
->addColumn('startmin', Varien_Db_Ddl_Table::TYPE_INTEGER,null,array('default' => '0'),'Daily start Min')
->addColumn('stopmin', Varien_Db_Ddl_Table::TYPE_INTEGER,null,array('default' => '59'),'Daily stop Min')
->addColumn('monday', Varien_Db_Ddl_Table::TYPE_BOOLEAN, null, array('default' => '1'), 'Runs Mondays')
->addColumn('tuesday', Varien_Db_Ddl_Table::TYPE_BOOLEAN, null, array('default' => '1'), 'Runs Tuesday')
->addColumn('wednesday', Varien_Db_Ddl_Table::TYPE_BOOLEAN, null, array('default' => '1'), 'Runs Wednesday')
->addColumn('thursday', Varien_Db_Ddl_Table::TYPE_BOOLEAN, null, array('default' => '1'), 'Runs Thursday')
->addColumn('friday', Varien_Db_Ddl_Table::TYPE_BOOLEAN, null, array('default' => '1'), 'Runs Friday')
->addColumn('saturday', Varien_Db_Ddl_Table::TYPE_BOOLEAN, null, array('default' => '1'), 'Runs Saturday')
->addColumn('sunday', Varien_Db_Ddl_Table::TYPE_BOOLEAN, null, array('default' => '1'), 'Runs Sunday')
->addColumn('created_at', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, array(), 'When beginn')
->addColumn('updated_at', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, array(), 'When updated')
->addColumn('deleted', Varien_Db_Ddl_Table::TYPE_TINYINT, null, array('default' => '0'), 'Deleted')
;
$installer->getConnection()->createTable($table);
}
$installer->endSetup();
?>