From 0f42e1a7816893e083f49c933d1393a102a3510e Mon Sep 17 00:00:00 2001 From: Antonio Gallo Date: Fri, 18 Feb 2011 00:17:07 +0000 Subject: improved wiki --- .../Application/Controllers/MeetController.php | 40 +++++++++++++ .../Application/Controllers/WikiController.php | 65 ++++++++++++++++------ 2 files changed, 88 insertions(+), 17 deletions(-) (limited to 'h-source/Application/Controllers') diff --git a/h-source/Application/Controllers/MeetController.php b/h-source/Application/Controllers/MeetController.php index 72e9006..5395a21 100644 --- a/h-source/Application/Controllers/MeetController.php +++ b/h-source/Application/Controllers/MeetController.php @@ -37,6 +37,7 @@ class MeetController extends BaseController $this->model('IssuesModel'); $this->model('MessagesModel'); $this->model('TalkModel'); + $this->model('WikiModel'); $argKeys = array( 'page:forceNat' => 1, @@ -120,11 +121,14 @@ class MeetController extends BaseController $messNumb = $this->m['MessagesModel']->select('id_mes,messages.id_issue,messages.creation_date')->where(array('created_by'=>$clean['id_user'],'deleted'=>'no'))->rowNumber(); $talkNumb = $this->m['TalkModel']->select('talk.title')->where(array('created_by'=>$clean['id_user'],'deleted'=>'no'))->rowNumber(); + + $wikiNumb = $this->m['WikiModel']->select()->where($this->whereArray)->rowNumber(); $data['hasHardware'] = $hardNumb > 0 ? true : false; $data['hasIssues'] = $issuesNumb > 0 ? true : false; $data['hasMessages'] = $messNumb > 0 ? true : false; $data['hasTalk'] = $talkNumb > 0 ? true : false; + $data['hasWiki'] = $wikiNumb > 0 ? true : false; $this->append($data); $this->load('contributions'); @@ -258,4 +262,40 @@ class MeetController extends BaseController $this->right(); } } + + //hardware contributions + public function wiki($lang = 'en', $user = '') + { + $clean['user'] = ctype_alnum($user) ? sanitizeAll($user) : ''; + $data['title'] = "wiki contributions - ".Website::$generalName; + + $this->shift(2); + + if ($this->userExists($clean['user'])) + { + //load the Pages helper + $this->helper('Pages','meet/wiki/'.$this->lang.'/'.$clean['user'],'page'); + + $this->whereArray['username'] = $clean['user']; + + $data['table'] = $this->m['WikiModel']->select('wiki.*,regusers.username')->where($this->whereArray)->orderBy('wiki.id_wiki desc'); + + $recordNumber = $this->m['WikiModel']->rowNumber(); + $page = $this->viewArgs['page']; + + $this->m['WikiModel']->limit = $this->h['Pages']->getLimit($page,$recordNumber,30); + + $data['table'] = $this->m['WikiModel']->send(); + + $data['meet_username'] = $clean['user']; + + $data['pageList'] = $this->h['Pages']->render($page-5,11); + + $this->append($data); + $this->load('wiki'); + $this->right(); + } + + } + } \ No newline at end of file diff --git a/h-source/Application/Controllers/WikiController.php b/h-source/Application/Controllers/WikiController.php index 8e26454..a1b39ce 100644 --- a/h-source/Application/Controllers/WikiController.php +++ b/h-source/Application/Controllers/WikiController.php @@ -58,7 +58,10 @@ class WikiController extends BaseController //insert the new wiki page $this->m['WikiModel']->updateTable('insert'); - $this->viewRedirect($this->m['WikiModel']->lastTitleClean); + if ($this->m['WikiModel']->queryResult) + { + header('Location: http://'.DOMAIN_NAME.'/wiki/page/'.$this->lang.'/'.$this->m['WikiModel']->lastTitleClean); + } } $data['notice'] = $this->m['WikiModel']->notice; @@ -114,7 +117,10 @@ class WikiController extends BaseController //carry out the update database action $this->m['WikiModel']->updateTable('update'); - $this->viewRedirect($this->m['WikiModel']->lastTitleClean); + if ($this->m['WikiModel']->queryResult) + { + header('Location: http://'.DOMAIN_NAME.'/wiki/page/'.$this->lang.'/'.$this->m['WikiModel']->lastTitleClean); + } } $data['notice'] = $this->m['WikiModel']->notice; @@ -142,13 +148,13 @@ class WikiController extends BaseController } } - protected function viewRedirect($titleClean) - { - if ($this->m['WikiModel']->queryResult) - { - $this->redirect($this->controller.'/page/'.$this->lang.'/'.$titleClean); - } - } +// protected function viewRedirect($titleClean) +// { +// if ($this->m['WikiModel']->queryResult) +// { +// $this->redirect($this->controller.'/page/'.$this->lang.'/'.$titleClean); +// } +// } public function page($lang = 'en', $title_clean = null) { @@ -313,10 +319,11 @@ class WikiController extends BaseController $clean['id_rev'] = (int)$id_rev; $data['id_wiki'] = $clean['id_wiki']; - $tree_name = $this->m['WikiModel']->getTheModelName((int)$data['id_wiki']); + $tree_name = $this->m['WikiModel']->getTheModelName((int)$clean['id_wiki']); $data['tree_name'] = $tree_name; $data['tree'] = $this->getSpecPageLink() . " » " . $this->getViewLink($data['tree_name'])." » " . $this->getHistoryLink($data['id_wiki']) . " » ".gtext('Differences'); - + + $data['isDeleted'] = $this->m['WikiModel']->isDeleted($clean['id_wiki']); $data['showDiff'] = false; $diffArray = array(); @@ -414,7 +421,10 @@ class WikiController extends BaseController { $this->m['WikiModel']->makeCurrent($clean['id_rev']); - $this->viewRedirect($this->m['WikiModel']->lastTitleClean); + if ($this->m['WikiModel']->queryResult) + { + header('Location: http://'.DOMAIN_NAME.'/wiki/page/'.$this->lang.'/'.$this->m['WikiModel']->lastTitleClean); + } $data['notice'] = $this->m['WikiModel']->notice; } @@ -512,20 +522,31 @@ class WikiController extends BaseController $this->right(); } - public function deleted($lang = 'en') + protected function see($lang = 'en', $status = 'blocked') { $this->s['registered']->check('admin'); - $data['topString'] = 'list of deleted pages'; - $data['title'] = gtext('list of deleted pages').' - '.Website::$generalName; + switch ($status) + { + case 'deleted': + $data['topString'] = 'list of deleted pages'; + $data['title'] = gtext('list of deleted pages').' - '.Website::$generalName; + $whereClause = '-deleted'; + break; + case 'blocked': + $data['topString'] = 'list of blocked pages'; + $data['title'] = gtext('list of blocked pages').' - '.Website::$generalName; + $whereClause = 'blocked'; + break; + } $this->setArgKeys(array('page:forceNat'=>1)); $this->shift(1); - $this->helper('Pages','wiki/deleted/'.$this->lang,'page'); + $this->helper('Pages','wiki/'.$status.'/'.$this->lang,'page'); - $this->m['WikiModel']->clear()->select()->where(array('-deleted'=>'yes'))->orderBy('id_wiki desc'); + $this->m['WikiModel']->clear()->select()->where(array($whereClause=>'yes'))->orderBy('id_wiki desc'); $recordNumber = $this->m['WikiModel']->rowNumber(); $page = $this->viewArgs['page']; @@ -541,6 +562,16 @@ class WikiController extends BaseController $this->right(); } + public function deleted($lang = 'en') + { + $this->see($lang,'deleted'); + } + + public function blocked($lang = 'en') + { + $this->see($lang,'blocked'); + } + //print all the modifications to the wiki public function modifications($lang = 'en') { -- cgit v1.2.3