Example #1
0
 protected function createComponentSupplierTabella($name)
 {
     $datasource = SupplierModel::getFluent()->toDatasource()->orderBy('name');
     $grid = new Tabella($datasource, array('id_table' => 'id_product_supplier', 'sorting' => 'id_product_supplier', 'order' => 'id_product_supplier', 'truncate' => 0, "onSubmit" => function ($post) {
         SupplierModel::save($post, $post['id_product_supplier']);
     }));
     $grid->addColumn("Názov", "name", array("width" => 300, "editable" => true));
     $grid->addColumn("Počet produktov", "product_count", array("width" => 80, "editable" => false));
     $grid->addColumn("", "action", array("width" => 100, 'type' => Tabella::SELECT, "filter" => false, "options" => false, "editable" => true, "renderer" => function ($row) {
         $el = NHtml::el("td");
         /*
          * link na zmazanie produktu
          */
         $el->add(NHtml::el('a')->href(NEnvironment::getApplication()->getPresenter()->link('delete!', array('id' => $row->id_product_supplier)))->addClass('deleteIcon'));
         /*
          * link na editaciu produktu
          */
         //			    $el->add(
         //				NHtml::el( 'a' )->href(
         //				    NEnvironment::getApplication()->getPresenter()->link( 'Product:edit' , array('id'=>$row->id_product_supplier))
         //				)->addClass( 'editIcon' )
         //			    );
         /*
          * ikona aktivan polozka, neaktivan polozka
          */
         return $el;
     }));
     $this->addComponent($grid, $name);
 }
Example #2
0
 function createComponentWeightTabella($name)
 {
     $grid = new Tabella(ProductWeightModel::getFluent()->toDataSource(), array('sorting' => 'asc', 'order' => 'weight_to', 'id_table' => 'id_product_weight', 'limit' => 50, "onSubmit" => function ($post) {
         //						print_r($post);exit;
         ProductWeightModel::edit($post, $post['id_product_weight']);
     }, "onDelete" => function ($id) {
         ProductWeightModel::delete($id);
     }));
     $el = NHtml::el("div");
     $el->add(NHtml::el('a')->href(NEnvironment::getApplication()->getPresenter()->link('addEmptyWeight!'))->addClass('addIcon ajax'));
     //$grid->addColumn($el, '', array('width'=>20,  'filter'=>NULL, "editable" => false ) );
     $grid->addColumn("Váha do", "weight_to", array("width" => 50, "editable" => true));
     $grid->addColumn("Cena poštovného", "weight_price", array("editable" => true));
     $grid->addColumn($el, "", array("width" => 30, 'filter' => NULL, "options" => '', "renderer" => function ($row) {
         $el = NHtml::el("td");
         $el->add(NHtml::el('a')->href(NEnvironment::getApplication()->getPresenter()->link('deleteWeight!', array('id_product_weight' => $row->id_product_weight)))->addClass('deleteIcon ajax'));
         return $el;
     }));
     $this->addComponent($grid, $name);
 }
 function createComponent($name)
 {
     switch ($name) {
         case 'translateTabella':
             $datasource = Lang::getDatasourceGroupByKey();
             $grid = new Tabella($datasource, array('sorting' => 'desc', 'order' => 'key', "onSubmit" => function ($post) {
                 Lang::save(@$post['key'], @$post);
                 Lang::invalidateCache();
             }));
             $grid->addColumn("Klúč", "key", array("width" => 50, 'editable' => true));
             foreach (Lang::getAll() as $l) {
                 $grid->addColumn($l['iso'], $l['iso'], array("width" => 50, 'editable' => true));
             }
             $this->addComponent($grid, $name);
             break;
         default:
             return parent::createComponent($name);
             break;
     }
 }
Example #4
0
 protected function createComponentBasicTabella($name)
 {
     // asi nepotřebuje komentář :-)
     $model = new LogModel();
     $grid = new Tabella($model->getDataSource(), array('sorting' => 'id_log', 'order' => 'id_log', "onSubmit" => function ($post) {
         print_r($post);
         LogModel::save($post, $post['id_log']);
     }));
     $grid->addColumn("id_log", "id_log", array("width" => 30));
     $grid->addColumn("name_modul", "name_modul", array("width" => 100, "editable" => true));
     $grid->addColumn("description", "description", array("width" => 100));
     $grid->addColumn("value", "value", array("width" => 100));
     $grid->addColumn("query", "query", array("width" => 100));
     $grid->addColumn("date", "date", array("width" => 100));
     $grid->addColumn("ip", "ip", array("width" => 100));
     $this->addComponent($grid, $name);
 }
Example #5
0
 function createComponent($name)
 {
     switch ($name) {
         case 'userTabella':
             $model = new UserModel();
             $grid = new Tabella($model->getFluent(false)->toDatasource(), array('sorting' => 'desc', 'order' => 'id_gui_user'));
             $grid->addColumn("Login/Email", "login", array("width" => 100));
             $grid->addColumn("Meno", "name", array("width" => 100));
             $grid->addColumn("Priezvisko", "surname", array("width" => 100));
             $grid->addColumn("Naposledy prihlásený", "lastvisit", array("width" => 100));
             $grid->addColumn("", "", array("width" => 30, 'filter' => NULL, "options" => '', "renderer" => function ($row) {
                 $el = NHtml::el("td");
                 /*
                  * link na zmazanie produktu
                  */
                 $el->add(NHtml::el('a')->href(NEnvironment::getApplication()->getPresenter()->link('deleteUser!', array('id' => $row->id_gui_user)))->addClass('deleteIcon ajax'));
                 /*
                  * link na editaciu produktu
                  */
                 $el->add(NHtml::el('a')->href(NEnvironment::getApplication()->getPresenter()->link('edit', array('id' => $row->id_gui_user)))->addClass('editIcon'));
                 /*
                  * ikona aktivan polozka, neaktivan polozka
                  */
                 $span = NHtml::el('span');
                 if ($row->activate) {
                     $span->addClass('activeIcon active');
                 } else {
                     $span->addClass('unactiveIcon active ');
                 }
                 $el->add($span);
                 return $el;
             }));
             $this->addComponent($grid, $name);
             break;
         case 'userForm':
             $form = UserModel::baseForm(false);
             $form->addGroup('');
             $form->addText('discount', 'Zľava použivateľa');
             $form->addHidden('id');
             $form->addSubmit('btn_submit', 'Uložiť');
             $form->onSuccess[] = array($this, 'saveUser');
             $form->setDefaults(UserModel::get($this->getParam('id')));
             return $form;
             break;
         default:
             return parent::createComponent($name);
             break;
     }
 }
 function createComponentVatTabella($name)
 {
     $vat = VatModel::init();
     $grid = new Tabella($vat->getFluent()->toDataSource(), array('sorting' => 'asc', 'order' => 'id_vat', 'id_table' => 'id_vat', 'limit' => 50, "onSubmit" => function ($post) use($vat) {
         if ($post['id_vat'] == 0) {
             $vat->insert($post);
         } else {
             $vat->update($post['id_vat'], $post);
         }
     }, "onDelete" => function ($id) use($vat) {
         $vat->delete($id);
     }));
     $el = NHtml::el("div");
     $el->add(NHtml::el('a')->href(NEnvironment::getApplication()->getPresenter()->link('addEmptyWeight!'))->addClass('addIcon ajax'));
     //$grid->addColumn($el, '', array('width'=>20,  'filter'=>NULL, "editable" => false ) );
     $grid->addColumn("Názov", "name", array("width" => 50, "editable" => true));
     $grid->addColumn("Hodnota", "value", array("editable" => true));
     $grid->addColumn("Prednadstavená?", "is_default", array("width" => 50, 'type' => Tabella::SELECT, "editable" => true, "filter" => NULL, 'renderer' => function ($row) {
         $el = NHtml::el("td")->setHtml($row['is_default'] == 1 ? 'áno' : 'nie');
         return $el;
     }));
     $grid->addColumn("+", Tabella::ADD, array("type" => Tabella::DELETE));
     $this->addComponent($grid, $name);
 }
 /**
  * Funzione che trasforma un array in un oggetto tabella
  * @param type $array
  * @return \Tabella
  */
 private function getArrayTabella($array)
 {
     $result = new Tabella();
     $result->setId($array->ID);
     $result->setNomeTabella($array->nome);
     $result->setStartRows($array->start_rows);
     $result->setEndRows($array->end_rows);
     $result->setStepRows($array->step_rows);
     $result->setStartCols($array->start_cols);
     $result->setEndCols($array->end_cols);
     $result->setStepCols($array->step_cols);
     $result->setAnte($array->ante);
     return $result;
 }
Example #8
0
 protected function createComponentProductTabella($name)
 {
     //		ProductModel::repairAllProductSequence();
     $id_category = $this->getParam('id_category');
     $fluent = ProductModel::getFluent()->orderBy('product_sequence');
     if ($id_category) {
         $fluent->where('id_category = %i', $id_category);
     } else {
         $fluent->groupBy('id_product');
     }
     $datasource = $fluent->toDatasource();
     $grid = new Tabella($datasource, array('sorting' => 'product_sequence', 'order' => 'product_sequence', 'limit' => 400, "onSuccess" => function ($post) {
         LogModel::save($post, $post['id_log']);
     }));
     $grid->addColumn("Názov", "name", array("width" => 300, "editable" => false));
     $grid->addColumn("Cena", "min_price", array("width" => 100, "editable" => false));
     $_active = array('' => '', 0 => 'Zakázaný', 1 => 'Povolený');
     $grid->addColumn("Akcia", "sale", array("width" => 100, 'type' => Tabella::SELECT, "filter" => array('' => '', 0 => 'nie', 1 => 'áno'), "options" => NULL, "renderer" => function ($row) {
         $el = NHtml::el("td");
         $pom = array('' => '', 0 => 'nie', 1 => 'áno');
         return $el->add($pom[$row['sale']]);
     }));
     $grid->addColumn("Najpredá.", "our_tip", array("width" => 100, 'type' => Tabella::SELECT, "filter" => array('' => '', 0 => 'nie', 1 => 'áno'), "options" => NULL, "renderer" => function ($row) {
         $el = NHtml::el("td");
         $pom = array('' => '', 0 => 'nie', 1 => 'áno');
         return $el->add($pom[$row['our_tip']]);
     }));
     $grid->addColumn("_", "active", array("width" => 100, 'type' => Tabella::SELECT, "filter" => $_active, "options" => '', "editable" => false, "renderer" => function ($row) use($_active) {
         $el = NHtml::el("td");
         //					print_r($row);exit;
         /*
          * link na zmazanie produktu
          */
         $el->add(NHtml::el('a')->href(NEnvironment::getApplication()->getPresenter()->link('deleteProduct!', array('id' => $row->id_product)))->addClass('deleteIcon ajax')->title('Naozaj chcete zmazať položku?'));
         /*
          * link na editaciu produktu
          */
         $el->add(NHtml::el('a')->href(NEnvironment::getApplication()->getPresenter()->link('Product:edit', array('id' => $row->id_product)))->addClass('editIcon'));
         /*
          * posuvanie - ak sa spusti posubanie, treba vypnut zoradovanie !!! order=>false
          */
         //					$el->add(
         //					NHtml::el( 'a' )->href('#')->addClass( 'moveIcon' )
         //							->addId( 'index_'.$row['id_product'] )
         //					);
         /*
          * ikona aktivan polozka, neaktivan polozka
          */
         $span = NHtml::el('span');
         if ($row->active) {
             $span->addClass('activeIcon active');
         } else {
             $span->addClass('unactiveIcon active ');
         }
         $el->add($span);
         return $el;
     }));
     //
     //	$grid->addColumn( "", "id_product",
     //	    array( "width" => 55,
     //		'filter'=>null,
     //		'order'=>false,
     //		"renderer" => function( $row ) {
     //
     //		return NHtml::el( "td" )->add(
     //			NHtml::el( 'a' )->href(
     //				NEnvironment::getApplication()->getPresenter()->link( 'Product:edit' , array('id'=>$row->id_product))
     //			)
     //			->addClass( 'editIcon' )
     //		);
     //
     //	    })
     //	);
     $this->addComponent($grid, $name);
 }
Example #9
0
 function createComponent($name)
 {
     switch ($name) {
         /*
          * newsletterTabella
          */
         case 'newsletterTabella':
             $grid = new Tabella(NewsletterModel::getFluent()->toDataSource(), array('sorting' => 'desc', 'order' => 'adddate', 'id_table' => 'id', 'limit' => 100, 'onSuccess' => function ($values) {
                 NewsletterModel::edit($values, $values['id_newsletter_emails']);
             }, 'onDelete' => function ($id_newsletter_emails) {
                 NewsletterModel::delete($id_newsletter_emails);
             }));
             $el = NHtml::el("div");
             $session = NEnvironment::getSession('checked_emails');
             $grid->addColumn($el, "", array("editable" => false, 'filter' => false, "width" => 20, "renderer" => function ($row) use($session) {
                 $el = NHtml::el("td");
                 $checked = isset($session->emails[$row['id_newsletter_emails']]) ? 'checked="checked"' : '';
                 $el->add('<input class="checked_emails" type="checkbox" name="se[]" value="' . $row['id_newsletter_emails'] . '" ' . $checked . '/>');
                 return $el;
             }));
             $grid->addColumn("Id", "id_newsletter_emails", array("width" => 30, 'editable' => false));
             $grid->addColumn("Email", "email", array("width" => 50, 'editable' => false));
             //				$grid->addColumn( "Popis", "description", array( 'editable'=>true ) );
             $grid->addColumn("Dátum registrácie ", "adddate", array("width" => 100));
             /*$grid->addColumn( "Aktívny", "active",
             						array(
             							"width" => 50,
             							'type'=>  Tabella::SELECT,
             							"editable" => true,
             							"filter" => array( 1=>'áno', 0=>'nie'),
             							'renderer' => function($row){
             								$active = ($row['active'] == 1)?'áno':'nie';
             								$el = NHtml::el( "td" )->setHtml($active);
             								return $el;
             							}
             						)
             				);
             
             
             				$grid->addColumn("", "",
             					array(
             						"width" => 30,
             						'filter'=>NULL,
             						"options" => '',
             
             						"renderer" => function( $row ) {
             							$el = NHtml::el( "td" );
             
             							$el->add(
             							NHtml::el( 'a' )->href(
             								NEnvironment::getApplication()->getPresenter()->link( 'deleteEmail!' , array('id'=>$row->id_newsletter_emails))
             							)->addClass( 'deleteIcon' )
             							);
             
             							$span = NHtml::el('span');
             
             
             							$el->add($span);
             
             							return $el;
             						}
             						)
             					);
             */
             $this->addComponent($grid, $name);
             break;
             /*
              * newslette text
              */
         /*
          * newslette text
          */
         case 'newsletterTextForm':
             $last_newsletter = dibi::fetch("SELECT * FROM [newsletter_sended_msg] ORDER BY [date] DESC LIMIT 1");
             $f = new MyForm($this, $name);
             $f->addText('subject', 'Predmet')->addRule(NForm::FILLED, 'Predmet musí byť vyplnený.');
             $f->addTextArea('text', '');
             $f->addText('my_email', 'Testovací email');
             $f->addSubmit('btn_send_emails', 'Odoslať všetkým')->onClick[] = array($this, 'actionSendEmails');
             $f->addSubmit('btn_send_to_me', 'Odoslať testovací email')->onClick[] = array($this, 'actionSendTestingEmail');
             if (!$last_newsletter) {
                 $email_template = new NFileTemplate();
                 $email_template->registerFilter(new NLatteFilter());
                 $email_template->setFile(WWW_DIR . '/newsletter/templates/1/1.phtml');
                 $email_template->text = '';
                 $values['text'] = (string) $email_template;
             } else {
                 $values = $last_newsletter;
             }
             $f->setDefaults($values);
             return $f;
             break;
         case 'addForm':
             $f = new MyForm();
             $f->addText('emails', 'Email');
             $f->addSubmit('btn', 'Pridať');
             $f->onSuccess[] = array($this, 'handleAddEmail');
             return $f;
             break;
         default:
             return parent::createComponent($name);
             break;
     }
 }
Example #10
0
 function createComponent($name)
 {
     switch ($name) {
         //	    case 'addForm':
         //			$form = $this->baseForm();
         //			$form->addSubmit('btn', 'Pridať');
         ////			$values['product_alternative'] = ProductModel::getFluent($this->id_lang)->where('id_category = 5')->fetchPairs("id_product",'id_product');
         //			//poziadavka klienta - zobrat vsetky produkty z doplnkov
         //
         //
         //			$form->setDefaults( array('id_product_template_group'=>$this->getService('ProductTemplateGroupModel')->getIdDefaultTemplate()) );
         //
         //
         //			$form->onSuccess[] = callback($this, 'add');
         //			return $form;
         //		break;
         case 'editForm':
             $id_product = $this->getPresenter()->getParam('id');
             $form = $this->baseForm();
             $form['id_product']->setValue($id_product);
             $values = array();
             //Titulok 	- doplnit categoria+ nazov produktu
             //Kľúčové slová -
             //Meta popis - doplnit categoria+ nazov produktu  + Výkon + Dĺžka Horenia
             foreach ($this->template->langs as $l) {
                 $val = ProductModel::get($id_product, $l['id_lang']);
                 // ziste ktore komponenty maju jazykovu mutaciu
                 $controls_for_lang = array();
                 foreach ($form->getComponents() as $control) {
                     if (strpos($control->getName(), CategoryFormControl::$_separator)) {
                         if (strpos($control->getName(), CategoryFormControl::$_separator . $l['iso'])) {
                             list($val_key) = explode(CategoryFormControl::$_separator . $l['iso'], $control->getName());
                             $values += array($control->getName() => $val[$val_key]);
                         }
                     } else {
                         if (isset($val[$control->getName()])) {
                             $values += array($control->getName() => $val[$control->getName()]);
                         }
                     }
                 }
             }
             //print_r(ProductModel::getProductAlternative($id_product));exit;
             $values['product_alternative'] = ProductModel::getProductAlternative($id_product);
             // vyriesenie categorii
             //nacitanie prveho parametru - iba pre jednoparametrove produkty
             $param = (array) dibi::fetch("SELECT * FROM [product_param] WHERE id_product = %i", $id_product);
             $form->setDefaults(array_merge($param, $values));
             $form->addSubmit('btn_save_and_stay', 'Upraviť a zostať tu');
             $form->addSubmit('btn_save', 'Upraviť');
             $form->onSuccess[] = callback($this, 'save');
             return $form;
             break;
             /*
              * generator
              */
         /*
          * generator
          */
         case 'generatorForm':
             //ProductModel::repairMinPrice();
             NFormContainer::extensionMethod('NFormContainer::addCheckboxList', array('CheckboxList', 'addCheckboxList'));
             $sizes = dibi::query("SELECT size FROM [product_param] WHERE size !='' GROUP BY size")->fetchPairs('size', 'size');
             $colors = dibi::query("SELECT color FROM [product_param] WHERE color !='' GROUP BY color")->fetchPairs('color', 'color');
             $materials = dibi::query("SELECT material FROM [product_param] WHERE material !='' GROUP BY material")->fetchPairs('material', 'material');
             $f = new MyForm();
             //			$f->getElementPrototype()->addClass('ajax');
             $renderer = $f->getRenderer();
             $renderer->wrappers['controls']['container'] = NHtml::el('div')->addClass('container');
             $renderer->wrappers['pair']['container'] = NHtml::el('div')->addClass('pair-container');
             $renderer->wrappers['label']['container'] = NHtml::el('h3');
             $renderer->wrappers['control']['container'] = NHtml::el('div')->addClass('input-container');
             //			usort($sizes, 'EshopProductControl::cmp');
             $f->addCheckboxList('size', 'Veľkosť', $sizes);
             $f->addCheckboxList('color', 'Farba', $colors);
             $f->addCheckboxList('material', 'Material', $materials);
             //ak je pridavanie a neexistuje id
             $f->addHidden('id_product', $this->getParam('id'));
             //
             //
             //			$renderer = $f->getRenderer();
             //			$renderer->wrappers['label']['container'] = NULL;
             //
             //			//ziskaj vsetky mozne velkosti
             //			$sizes = dibi::fetchAll("SELECT size FROM [product_param] GROUP BY size");
             //			$f->addGroup('Veľkosť');
             //			foreach($sizes as $k=>$size){
             //				$f->addCheckbox('size_'.$k, $size['size']);
             //			}
             //
             //			//ziskaj vsetky mozne farby
             //			$colors = dibi::fetchAll("SELECT color FROM [product_param] GROUP BY color");
             //			$f->addGroup('Farba');
             //			foreach($colors as $k=>$color){
             //				$f->addCheckbox('color_'.$k, $color['color']);
             //			}
             //
             //			//ziskaj vsetky mozne material
             //			$materials = dibi::fetchAll("SELECT material FROM [product_param] GROUP BY material");
             //			$f->addGroup('Material');
             //			foreach($materials as $k=>$material){
             //				$f->addCheckbox('material_'.$k, $material['material']);
             //			}
             $f->addGroup()->setOption('container', 'fieldset class=clear');
             $f->addSubmit('btn_generate', 'Generovať');
             $f->onSuccess[] = array($this, 'handleAddGeneratedParam');
             return $f;
             break;
         case 'productParams':
             //			$d = ProductModel::getProductParamDatasource( $this->getParam('id'))->fetchAll();
             $id_product = $this->getParam('id');
             $grid = new Tabella(ProductModel::getProductParamDatasource($id_product), array('sorting' => 'asc', 'order' => 'sequence', 'id_table' => 'id_product_param', 'limit' => 50, "onSubmit" => function ($post) {
                 //						print_r($post);exit;
                 ProductModel::setProductParamValue($post, $post['id_product_param']);
             }, "onDelete" => function ($id) {
                 ProductModel::deleteProductParamValue($id);
             }));
             $el = NHtml::el("div");
             $el->add(NHtml::el('a')->href(NEnvironment::getApplication()->getPresenter()->link('addEmptyParam!', array('id_product' => $id_product)))->addClass('addIcon ajax'));
             $grid->addColumn($el, 'sequence', array('width' => 20, 'filter' => NULL, "editable" => true));
             //vytiahnutie template_group pre produkt - ake bude mat parametre
             if ($id_product) {
                 $id_product_template_group = ProductModel::getFluent(1, false, false)->removeClause('select')->select('id_product_template_group')->where('id_product = %i', $id_product)->fetchSingle();
             } else {
                 //ak je id_product NULL jedna sa pridavanie produktu
                 if ($id_product == NULL and $this->getParam('id_product_template_group') != NULL) {
                     $id_product_template_group = $this->getParam('id_product_template_group');
                 } else {
                     $id_product_template_group = $this->getService('ProductTemplateGroupModel')->getIdDefaultTemplate();
                 }
             }
             $params = $this->getService('ProductTemplateGroupModel')->fetchAssocAllParam($id_product_template_group);
             foreach ($params as $p) {
                 if ($p['checked']) {
                     $grid->addColumn($this->getService('translator')->translate($p['row_name']), $p['row_name'], array("width" => 50, "editable" => true));
                 }
             }
             $grid->addColumn("Cena", "price", array("width" => 100, "editable" => true));
             //			_repairPriceForView
             //
             //
             //			$grid->addColumn( "Na sklade", "stock", array( "width" => 50, "editable" => true ) );
             ////			$grid->addColumn( "Farba", "color", array( "width" => 100, "editable" => true ) );
             ////			$grid->addColumn( "Veľkosť", "size", array( "width" => 100, "editable" => true ) );
             ////			$grid->addColumn( "Material", "material", array( "width" => 100, "editable" => true ) );
             //			$grid->addColumn( "Napojenie", "connection", array( "width" => 100, "editable" => true ) );
             //			$grid->addColumn( "Cena", "price", array( "width" => 100, "editable" => true ) );
             $grid->addColumn("", "", array("width" => 30, 'filter' => NULL, "options" => '', "renderer" => function ($row) {
                 $el = NHtml::el("td");
                 $el->add(NHtml::el('a')->href(NEnvironment::getApplication()->getPresenter()->link('deleteProductParam!', array('id_product_param' => $row->id_product_param)))->addClass('deleteIcon ajax'));
                 return $el;
             }));
             $this->addComponent($grid, $name);
             break;
         case 'pictogram':
             $p = new PictogramControl($this, $name);
             return $p;
             break;
         case 'keyword':
             return new KeywordControl();
             break;
         case 'ajaxtest':
             return new AjaxTextControl();
             break;
         default:
             return parent::createComponent($name);
             break;
     }
 }
Example #11
0
 function createComponent($name)
 {
     switch ($name) {
         case 'PollTabella':
             $grid = new Tabella(PollModel::getFluent()->toDataSource(), array('sorting' => 'desc', 'order' => 'id_poll', 'id_table' => 'id_poll', 'onSubmit' => function ($values) {
                 PollModel::edit($values, $values['id_poll']);
             }, 'onDelete' => function ($id_poll) {
                 PollModel::delete($id_poll);
             }));
             $grid->addColumn("ID", "id_poll", array("width" => 30, 'editable' => true));
             $grid->addColumn("Nadpis", "title", array("width" => 50, 'editable' => true));
             $grid->addColumn("Otázka", "question", array('editable' => true));
             $grid->addColumn("Popis", "description ", array("width" => 100));
             $grid->addColumn("Od", "from_date", array("width" => 100));
             $grid->addColumn("Do", "to_date", array("width" => 100));
             $grid->addColumn("", "", array("width" => 30, 'filter' => NULL, "renderer" => function ($row) {
                 $el = NHtml::el("td");
                 $el->add(NHtml::el('a')->href(NEnvironment::getApplication()->getPresenter()->link('deletePoll!', array('id' => $row->id_poll)))->addClass('deleteIcon ajax'));
                 $el->add(NHtml::el('a')->href(NEnvironment::getApplication()->getPresenter()->link('edit', array('id' => $row->id_poll)))->addClass('editIcon'));
                 $span = NHtml::el('span');
                 $el->add($span);
                 return $el;
             }));
             $this->addComponent($grid, $name);
             break;
         case 'baseForm':
             $f = new MyForm();
             $f->addText('title', 'Názov')->addRule(NForm::FILLED, 'Názov musí byť vyplnený');
             $f->addText("question", "Otázka");
             $f->addText("description", "Popis");
             $f->addDateTimePicker("from_date", "Od")->addRule(NForm::FILLED, 'Zadajte datum a čas.');
             $f->addDateTimePicker("to_date", "Do")->addRule(NForm::FILLED, 'Zadajte datum a čas.');
             return $f;
             break;
         case 'addForm':
             $f = $this->createComponent('baseForm');
             $f->addSubmit('btn', 'Pridať');
             $f->onSuccess[] = array($this, 'handleAddPoll');
             return $f;
             break;
         case 'editPollForm':
             $f = $this->createComponent('baseForm');
             $f->addHidden('id_poll');
             $f->addSubmit('btn', 'Upraviť');
             $f->onSuccess[] = array($this, 'handleEditPoll');
             $values = PollModel::get($this->getParam('id'));
             $f->setDefaults($values);
             return $f;
             break;
         case 'AnswerTabella':
             $grid = new Tabella(PollModel::getAnswerFluent($this->getParam('id'))->toDataSource(), array('sorting' => 'asc', 'order' => 'sequence', 'id_table' => 'id_poll_answer', 'onSubmit' => function ($values) {
                 PollModel::editAnswer($values, $values['id_poll_answer']);
             }, 'onDelete' => function ($id_poll_answer) {
                 PollModel::deleteAnswer($id_poll_answer);
             }));
             $el = NHtml::el("div");
             $el->add(NHtml::el('a')->href(NEnvironment::getApplication()->getPresenter()->link('addEmptyAnswer!', array('id_poll' => $this->getPresenter()->getParam('id'))))->addClass('addIcon ajax'));
             $grid->addColumn($el, 'sequence', array('width' => 10, 'filter' => NULL, "editable" => true));
             //$grid->addColumn( "ID","id_poll_answer", array( "width" => 30,'editable'=>false,'filter'=>null ) );
             $grid->addColumn("Odpoveď", "answer", array('filter' => null, "width" => 550, 'editable' => true));
             //				$grid->addColumn( "Správna?", "correct", array(
             //
             //                    "options" => array( '0' => 'Nie', '1' => 'Áno' ),
             //                    "width" => 50,
             //                    "editable" => true,
             //					)
             //				);
             $grid->addColumn("", "", array("width" => 30, 'filter' => NULL, "renderer" => function ($row) {
                 $el = NHtml::el("td");
                 $el->add(NHtml::el('a')->href(NEnvironment::getApplication()->getPresenter()->link('deletePollAnswer!', array('id' => NEnvironment::getApplication()->getPresenter()->getParam('id'), 'id_poll_answer' => $row->id_poll_answer)))->addClass('deleteIcon ajax'));
                 $span = NHtml::el('span');
                 $el->add($span);
                 return $el;
             }));
             $this->addComponent($grid, $name);
             break;
         default:
             return parent::createComponent($name);
             break;
     }
 }
 /**
  * Funzione che fa da listener al form di generazione tabella
  * Ha lo scopo di salvare nel database tutti i campi possibili generati
  */
 public function listenerFormGenerazioneTabella()
 {
     //si suppone che il listener sia contenuto esternamente da un if
     //che guarda se il genera-tabella-articolo è stato istanziato
     //Elaboro i dati
     $startRows = isset($_POST['startRows']) ? intval($_POST['startRows']) : null;
     $endRows = isset($_POST['endRows']) ? intval($_POST['endRows']) : null;
     $stepRows = isset($_POST['stepRows']) ? intval($_POST['stepRows']) : null;
     $startCols = isset($_POST['startCols']) ? intval($_POST['startCols']) : null;
     $endCols = isset($_POST['endCols']) ? intval($_POST['endCols']) : null;
     $stepCols = isset($_POST['stepCols']) ? intval($_POST['stepCols']) : null;
     $prezzoIniziale = isset($_POST['prezzo-iniziale']) ? floatval($_POST['prezzo-iniziale']) : null;
     $incremento = isset($_POST['incremento']) ? $_POST['incremento'] : null;
     $nameTable = isset($_POST['nameTable']) ? strip_tags($_POST['nameTable']) : null;
     $ante = isset($_POST['ante']) ? strip_tags($_POST['ante']) : null;
     if ($startRows == null || $endRows == null || $stepRows == null || $startCols == null || $endCols == null || $stepCols == null || $nameTable == null || $ante == null) {
         echo '<p class="error">non tutti i campi sono stati compilati<p>';
         return false;
     }
     //Salvo le informazioni della tabella generando un oggetto Tabella
     $tabella = new Tabella();
     $tabella->setNomeTabella($nameTable);
     $tabella->setStartRows($startRows);
     $tabella->setEndRows($endRows);
     $tabella->setStepRows($stepRows);
     $tabella->setStartCols($startCols);
     $tabella->setEndCols($endCols);
     $tabella->setStepCols($stepCols);
     $tabella->setAnte($ante);
     $tabella->setPrezzoIniziale($prezzoIniziale);
     $tabella->setIncremento($incremento);
     //salvo l'oggetto nel database
     if (!$this->tPrezzi->saveTabellaArticolo($tabella)) {
         echo '<p class="error">salvataggio non andato a buon fine<p>';
         return false;
     }
     return true;
 }
Example #13
0
 function createComponent($name)
 {
     switch ($name) {
         case 'statusForm':
             $f = new NAppForm($this, $name);
             $renderer = $f->getRenderer();
             $renderer->wrappers['pair']['container'] = '';
             $renderer->wrappers['controls']['container'] = '';
             $renderer->wrappers['control']['container'] = '';
             $renderer->wrappers['label']['container'] = '';
             $f->addSelect('order_status', 'Stav: ', OrderModel::getStatus());
             $f->addSubmit('btn_submit', 'Uložiť');
             $o = OrderModel::get($this->getParam('id'));
             $f->setDefaults($o);
             if ($f->isSubmitted() and $f->isValid()) {
                 $values = $f->getValues();
                 OrderModel::updateStatus($this->getParam('id'), $values['order_status']);
                 $o = OrderModel::get($this->getParam('id'));
                 $template = $this->template;
                 $template->setFile(APP_DIR . '/FrontModule/templates/Order/OrderChangeStatusEmail.phtml');
                 //print_r($o);
                 $template->o = $o;
                 $template->status = OrderModel::getStatus($o['order_status']);
                 //				echo $template->status;exit;
                 $mail = new MyMail();
                 $mail->addTo($o['email']);
                 $mail->addBcc(NEnvironment::getVariable('client_email'));
                 $mail->setSubject(_('Objednávka č. ') . $o['id_order'] . ' zmena stavu.');
                 $mail->setTemplate($template);
                 //echo $template;exit;
                 $mail->send();
                 $this->flashMessage('Bol odoslaný email o zmene statusu.');
                 $this->redirect('this');
             }
             return $f;
             break;
         case 'orderTabella':
             $grid = new Tabella(OrderModel::getDatasource(), array('sorting' => 'desc', 'order' => 'id_order'));
             $grid->addColumn("Číslo obj.", "id_order", array("width" => 50));
             $grid->addColumn("Meno", "name", array("width" => 100));
             $grid->addColumn("Priezvisko", "surname", array("width" => 100));
             $grid->addColumn("Mesto", "city", array("width" => 100));
             $grid->addColumn("Dátum vytvorenia", "add_date", array("width" => 100));
             $grid->addColumn("Celková cena", "total_price", array("width" => 100));
             $grid->addColumn("Stav", "order_status", array("width" => 50, 'type' => Tabella::SELECT, "editable" => true, "filter" => OrderModel::getStatus(), 'renderer' => function ($row) {
                 $el = NHtml::el("td")->setHtml(OrderModel::getStatus($row['order_status']));
                 return $el;
             }));
             $grid->addColumn("Spôsob platby", "payment_method", array("width" => 90, 'type' => Tabella::SELECT, "editable" => false, "filter" => OrderModel::getPaymentMethod(), 'renderer' => function ($row) {
                 $el = NHtml::el("td")->setHtml(OrderModel::getPaymentMethod($row['payment_method']));
                 return $el;
             }));
             $grid->addColumn("", "", array("width" => 30, 'filter' => NULL, "options" => '', "renderer" => function ($row) {
                 $el = NHtml::el("td");
                 /*
                  * link na zmazanie produktu
                  */
                 $el->add(NHtml::el('a')->href(NEnvironment::getApplication()->getPresenter()->link('deleteOrder!', array('id' => $row->id_order)))->addClass('deleteIcon'));
                 /*
                  * link na editaciu produktu
                  */
                 $el->add(NHtml::el('a')->href(NEnvironment::getApplication()->getPresenter()->link('view', array('id' => $row->id_order)))->addClass('editIcon'));
                 /*
                  * ikona aktivan polozka, neaktivan polozka
                  */
                 $span = NHtml::el('span');
                 $el->add($span);
                 return $el;
             }));
             $this->addComponent($grid, $name);
             break;
         default:
             return parent::createComponent($name);
             break;
     }
 }
 /**
  * Funzione che salva una tabella di articolo all'interno del DB e in caso 
  * affermativo restituisce l'ID della tabella generato
  * @param Tabella $tab
  * @return type
  */
 public function saveTabellaArticolo(Tabella $tab)
 {
     try {
         $this->wpdb->insert($this->table_tabelle, array('nome' => $tab->getNomeTabella(), 'start_rows' => $tab->getStartRows(), 'end_rows' => $tab->getEndRows(), 'step_rows' => $tab->getStepRows(), 'start_cols' => $tab->getStartCols(), 'end_cols' => $tab->getEndCols(), 'step_cols' => $tab->getStepCols(), 'ante' => $tab->getAnte(), 'prezzo_iniziale' => $tab->getPrezzoIniziale(), 'incremento' => $tab->getIncremento()), array('%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%f', '%f'));
         return $this->wpdb->insert_id;
     } catch (Exception $ex) {
         _e($ex);
         return -1;
     }
 }