From d85570c9946aef61d8d935d9f50169215338d665 Mon Sep 17 00:00:00 2001 From: Antonio Gallo Date: Tue, 15 Feb 2011 11:45:38 +0000 Subject: improved wiki --- .../Application/Controllers/WikiController.php | 55 +++++++++++++++------- 1 file changed, 38 insertions(+), 17 deletions(-) (limited to 'h-source/Application/Controllers/WikiController.php') diff --git a/h-source/Application/Controllers/WikiController.php b/h-source/Application/Controllers/WikiController.php index 2ddc54d..1c4c154 100644 --- a/h-source/Application/Controllers/WikiController.php +++ b/h-source/Application/Controllers/WikiController.php @@ -24,6 +24,9 @@ class WikiController extends BaseController { public function __construct($model, $controller, $queryString) { + + $this->_topMenuClasses['wiki'] = " class='currentitem'"; + parent::__construct($model, $controller, $queryString); $this->model('UsersModel'); @@ -158,33 +161,51 @@ class WikiController extends BaseController $clean['title_clean'] = sanitizeAll($title_clean); $data['isDeleted'] = 'no'; - - $res = $this->m['WikiModel']->select()->where(array('title_clean'=>$clean['title_clean']))->send(); - if ( count($res) > 0 ) + if (isset($title_clean)) { - $data['table'] = $res; - $data['tree_name'] = $res[0]['wiki']['title']; - $data['title'] = $res[0]['wiki']['title'] . ' - ' . Website::$generalName; - $data['isDeleted'] = $res[0]['wiki']['deleted']; - - if ( count($res) < 2 ) + $res = $this->m['WikiModel']->select()->where(array('title_clean'=>$clean['title_clean']))->orderBy('id_wiki desc')->limit(1)->send(); + + if ( count($res) > 0 ) { - $data['talk_number'] = $this->m['WikitalkModel']->select('count(*) as numb,id_wiki')->where(array('id_wiki'=>$res[0]['wiki']['id_wiki'],'deleted'=>'no'))->rowNumber(); - - $viewFile = 'page'; - $data['id_wiki'] = $res[0]['wiki']['id_wiki']; + $data['table'] = $res; + $data['tree_name'] = $res[0]['wiki']['title']; + $data['title'] = $res[0]['wiki']['title'] . ' - ' . Website::$generalName; + $data['isDeleted'] = $res[0]['wiki']['deleted']; + + if ( count($res) < 2 ) + { + $data['talk_number'] = $this->m['WikitalkModel']->select('count(*) as numb,id_wiki')->where(array('id_wiki'=>$res[0]['wiki']['id_wiki'],'deleted'=>'no'))->rowNumber(); + + $viewFile = 'page'; + $data['id_wiki'] = $res[0]['wiki']['id_wiki']; + } + else + { + $viewFile = 'select'; + } } else { - $viewFile = 'select'; + $rev = new WikirevisionsModel(); + $res_rev = $rev->select()->where(array('title_clean'=>$clean['title_clean']))->orderBy('id_rev desc')->limit(1)->send(); + if ( count($res_rev) > 0 ) + { + $clean['idWiki'] = $rev->getIdPage($res_rev[0]['wiki_revisions']['id_rev']); + $newTitle = $this->m['WikiModel']->getTheModelName($clean['idWiki']); + $this->redirect('wiki/page/'.$this->lang.'/'.encodeUrl($newTitle)); + } + else + { + $viewFile = 'not_found'; + } } } else { - $viewFile = 'not_found'; + $this->redirect('wiki/page/'.$this->lang.'/Main-Page'); } - + $this->append($data); $this->load($viewFile); @@ -470,7 +491,7 @@ class WikiController extends BaseController protected function getSpecPageLink() { - return "controller.'/page/'.$this->lang."'>".$this->controller.""; + return "controller.'/page/'.$this->lang."/Main-Page'>".ucfirst($this->controller).""; } } \ No newline at end of file -- cgit v1.2.3