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); }
public function handleGetData() { $this->template->ajax = true; //$this->template->presenter = $this; $this->render(); // NDebug::disableProfiler(); NEnvironment::getApplication()->getPresenter()->terminate(); }
function __construct(IComponentContainer $parent = NULL, $name = NULL) { NForm::extensionMethod('addDateTimePicker', 'MyForm::Form_addDateTimePicker'); parent::__construct($parent, $name); $t = NEnvironment::getApplication()->getPresenter()->getService('translator'); $t->setLang(NEnvironment::getApplication()->getPresenter()->lang); $this->setTranslator($t); NFormContainer::extensionMethod('NFormContainer::addRecaptcha', array('reCAPTCHA', 'addRecaptcha')); }
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; } }
public function render() { $template = new NFileTemplate(); $template->registerFilter(new NLatteFilter()); $template->setFile(dirname(__FILE__) . '/default.phtml'); $template->id = 'Multiupload_' . $this->type_module; if (_NETTE_MODE) { $template->action = NEnvironment::getApplication()->getPresenter()->link('Homepage:upload'); } else { $template->action = '/admin.php'; } $template->imageList = $this->renderImageList(); $template->parsed_url = $this->parsed_url; $template->list = self::getAllFiles($this->type_module, $this->id_module, $this->type); return $template; }
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); }
public function render() { $template = new NFileTemplate(); $template->registerFilter(new NLatteFilter()); $template->setFile(dirname(__FILE__) . '/promo.phtml'); $template->id = 'Multiupload_' . $this->type_module; // $template->css = file_get_contents(dirname(__FILE__).'/fileuploader.css'); // $template->js = file_get_contents(dirname(__FILE__).'/fileuploader.js'); if (_NETTE_MODE) { $template->action = NEnvironment::getApplication()->getPresenter()->link('Homepage:upload'); } else { $template->action = '/admin.php'; } $template->parsed_url = $this->parsed_url; $template->list = self::getAllFiles($this->type_module, $this->id_module, $this->type); foreach ($template->list as $k => $l) { $i = dibi::fetch("SELECT title, link, alt, link_name FROM [promo_text] WHERE id_file = %i", $l['id_file']); $template->list[$k]['title'] = $i['title']; $template->list[$k]['link'] = $i['link']; $template->list[$k]['alt'] = $i['alt']; $template->list[$k]['link_name'] = $i['link_name']; } return $template; }
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); }
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); }
function getApplication() { return NEnvironment::getApplication(); }
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; } }
public function renderRss($channels = NULL) { if ($channels !== NULL) { $this->rssChannels = array(); foreach ($channels as $title => $link) { $this->addRssChannel($title, $link); } } foreach ($this->rssChannels as $channel) { echo NHtml::el('link')->rel('alternate')->type('application/rss+xml')->title($channel['title'])->href(NEnvironment::getApplication()->getPresenter()->link($channel['link'])) . "\n"; } }
*/ // Step 1: Load Nette Framework // this allows load Nette Framework classes automatically so that // you don't have to litter your code with 'require' statements require LIBS_DIR . '/Nette/loader.php'; // Step 2: Configure environment // 2a) enable NDebug for better exception and error visualisation NDebug::enable(NDebug::DETECT, APP_DIR . '/log/php_error.log', '*****@*****.**'); NEnvironment::getHttpResponse()->enableCompression(); // Load dibi dibi::connect(NEnvironment::getConfig('database')); dibi::addSubst('graweb', 'gw2010__'); // Step 3: Configure application NEnvironment::setVariable("sizes", array(0 => array(880, 330), 1 => array(263, 174), 2 => array(600, 510))); // 3a) get and setup a front controller $application = NEnvironment::getApplication(); $application->errorPresenter = 'Front:Error'; $application->catchExceptions = TRUE; // Step 4: Setup application router $router = $application->getRouter(); $router[] = new NRoute('index.php', array('module' => 'Front', 'presenter' => 'Default'), NRoute::ONE_WAY); $router[] = new NRoute('', array('module' => 'Front', 'presenter' => 'Default', 'action' => 'default')); // Presmerovani starych URL $router[] = new NRoute('internet/<? ceny|postup|sluzby|vyroba>', array('module' => 'Front', 'presenter' => 'Page', 'action' => 'webdesign'), NRoute::ONE_WAY); $router[] = new NRoute('graficke-navrhy', array('module' => 'Front', 'presenter' => 'Reklama', 'action' => 'grafikaDesign'), NRoute::ONE_WAY); $router[] = new NRoute('<? venkovni-reklama|reklama/reference/>', array('module' => 'Front', 'presenter' => 'Reklama', 'action' => 'reklama'), NRoute::ONE_WAY); $router[] = new NRoute('internet/reference/', array('module' => 'Front', 'presenter' => 'Reference', 'action' => 'default'), NRoute::ONE_WAY); $router[] = new NRoute('<? kontakty|objednavka>', array('module' => 'Front', 'presenter' => 'Page', 'action' => 'kontakt'), NRoute::ONE_WAY); $router[] = new NRoute('o-nas/kariera.php', array('module' => 'Front', 'presenter' => 'Default', 'action' => 'default'), NRoute::ONE_WAY); // Routy podstránek $router[] = new NRoute('<action webdesign|onas|kontakt|novinky|poptavka|podminky-uzivani|ochrana-osobnich-udaju>', array('module' => 'Front', 'presenter' => 'Page'));
protected function createComponent($name) { switch ($name) { case 'EshopProduct': $p = new EshopProductControl(); $p->invalidateControl(); return $p; break; case 'referenceForm': $params = NEnvironment::getApplication()->getPresenter()->getParam(); $form = new MyForm(); $form->addText('name', 'Meno:'); $form->addProtection(); $form->addText('email', 'Email:'); $form->addTextarea('text', 'Text:'); if (class_exists('reCAPTCHA')) { $form->addRecaptcha('recaptcha_input', 'Overenie:')->addRule('reCAPTCHA::validate', 'Prosím prepíšte správne text z obrázku.'); } $form->addSubmit('submit', 'Odoslať'); $form->onSuccess[] = array($this, 'handleSendReference'); $form->addHidden('id_product'); $form->setDefaults(array('id_product' => ProductModel::getIdProductByUrl($params['url_identifier'], 1))); return $form; break; default: return parent::createComponent($name); break; } }
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; } }
function __construct(IComponentContainer $parent = NULL, $name = NULL) { parent::__construct($parent, $name); $this->repository = NEnvironment::getApplication()->getPresenter()->getService('ShoppingCart'); }
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; } }