コード例 #1
0
ファイル: LinkHelper.php プロジェクト: osmcz/website
 /** 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;
 }
コード例 #2
0
ファイル: PagesPresenter.php プロジェクト: osmcz/website
 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');
     }
 }