/** Returns page URL or NULL */ function pageLink($id, $lang = false) { if (!$lang) { $lang = $this->i18n->getDefaultLang(); } $params = array('id_page' => $id, 'lang' => $lang); $pagesRouter = new PagesRouter(); //$this->router; then 'Front:Pages' $url = $pagesRouter->constructUrl(new PresenterRequest('Pages', 'GET', $params), $this->request->url); return $url; }
public function pageEditFormSubmitted(AppForm $form) { if (!$this->editAllowed()) { return; } $values = (array) $form->values; $values['text'] = preg_replace_callback('~#-(.+?)-#~', array($this, 'npMacroControlOptions'), $values['text']); //name field may be 'disabled' by checkbox if (!$values['name']) { $values['name'] = $values['heading']; } //handle additional input values $values = $this->triggerEvent_filter('filterPageEditForm_values', $values); //menu control changes only sometimes if ($this->page['published'] != $values['published'] or $this->page['name'] != $values['name'] or $this->page['heading'] != $values['heading']) { $this->invalidateControl('menu'); } //url must be unique $i = 1; $newname = $values['seoname']; while (!PagesRouter::isSeonameOk($newname, $this->page)) { $newname = $values['seoname'] . '-' . $i++; } $values['seoname'] = $newname; //update the new URL in the form $form['seoname']->value = $newname; $this->invalidateControl('editform_seoname'); //save values unset($values['id_page']); $this->page->save($values); $this->flashMessage('Obsah stránky uložen (' . date('y-m-d H:i:s') . ')'); if (!$this->isAjax()) { $this->redirect('this'); } }