From 232aa1924c8c0f10d87b210b46c9f061af5c844c Mon Sep 17 00:00:00 2001 From: Antonio Gallo Date: Sun, 17 Oct 2010 13:29:57 +0000 Subject: added files --- .../Application/Controllers/IssuesController.php | 171 +++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 h-source/Application/Controllers/IssuesController.php (limited to 'h-source/Application/Controllers/IssuesController.php') diff --git a/h-source/Application/Controllers/IssuesController.php b/h-source/Application/Controllers/IssuesController.php new file mode 100644 index 0000000..02f6499 --- /dev/null +++ b/h-source/Application/Controllers/IssuesController.php @@ -0,0 +1,171 @@ +. + +if (!defined('EG')) die('Direct access not allowed!'); + +class IssuesController extends BaseController +{ + + public function __construct($model, $controller, $queryString) + { + + $this->_topMenuClasses['issues'] = " class='currentitem'"; + + parent::__construct($model, $controller, $queryString); + + $this->model('IssuesModel'); + $this->model('MessagesModel'); + + $argKeys = array( + 'page:forceNat' => 1, + 'token:sanitizeAlphanum' => 'token' + ); + + $this->setArgKeys($argKeys); + + $this->m['IssuesModel']->setFields('title,topic,priority,message','sanitizeAll'); + + $data['title'] = 'issues - '.Website::$generalName; + $this->append($data); + } + + public function viewall($lang = 'en') + { + $this->shift(1); + + $data['preview_message'] = null; + + if (isset($_POST['insertAction'])) + { + if ($this->s['registered']->status['status'] === 'logged') + { + if (!$this->s['registered']->checkCsrf($this->viewArgs['token'])) $this->redirect('home/index'.$this->lang,2,'wrong token..'); + + //set the page to 1 in the viewStatus + $this->viewArgs['page'] = 1; + $this->buildStatus(); + + $this->m['IssuesModel']->values['created_by'] = (int)$this->s['registered']->status['id_user']; + $this->m['IssuesModel']->values['status'] = 'opened'; + + $this->m['IssuesModel']->updateTable('insert'); + } + } + + //if preview + if (isset($_POST['previewAction'])) + { + if ($this->s['registered']->status['status'] === 'logged') + { + if (!$this->s['registered']->checkCsrf($this->viewArgs['token'])) $this->redirect('home/index'.$this->lang,2,'wrong token..'); + + $data['preview_message'] = $this->request->post('message','','sanitizeHtml'); + $this->m['IssuesModel']->result = false; + } + } + + $data['notice'] = $this->m['IssuesModel']->notice; + + $this->m['IssuesModel']->setForm('issues/viewall/'.$this->lang.$this->viewStatus."#form",array('previewAction'=>'preview','insertAction'=>'submit')); + + $values = $this->m['IssuesModel']->getFormValues('insert','sanitizeHtml'); + + $data['form'] = $this->m['IssuesModel']->form->render($values); + + //load the Pages helper + $this->helper('Pages',$this->controller.'/viewall/'.$this->lang,'page'); + //get the number of records + $this->m['IssuesModel']->from('issues left join messages')->using('id_issue')->aWhere(array('deleted'=>'no'))->groupBy('issues.id_issue'); + + $recordNumber = $this->m['IssuesModel']->rowNumber(); + $page = $this->viewArgs['page']; + //set the limit clause + $this->m['IssuesModel']->limit = $this->h['Pages']->getLimit($page,$recordNumber,20); +// $data['table'] = $this->m['IssuesModel']->getFields('id_issue,created_by,title,status,creation_date,topic,priority'); + $data['table'] = $this->m['IssuesModel']->getFields('issues.*,messages.message,count(*) as numb_mess'); + + $data['pageList'] = $this->h['Pages']->render($page-3,7); + + $this->append($data); + $this->load('viewall'); + $this->right(); + } + + public function view($lang = 'en', $id_issue = 0) + { + $this->m['MessagesModel']->setFields('message','sanitizeAll'); + + $this->shift(2); + + $clean['id_issue'] = (int)$id_issue; + $data['id_issue'] = $clean['id_issue']; + $data['preview_message'] = null; + + //if submit + if (isset($_POST['insertAction'])) + { + if ($this->s['registered']->status['status'] === 'logged') + { + if (!$this->s['registered']->checkCsrf($this->viewArgs['token'])) $this->redirect('home/index'.$this->lang,2,'wrong token..'); + + $this->m['MessagesModel']->values['created_by'] = (int)$this->s['registered']->status['id_user']; + $this->m['MessagesModel']->values['id_issue'] = $clean['id_issue']; + $this->m['MessagesModel']->updateTable('insert'); + } + } + + //if preview + if (isset($_POST['previewAction'])) + { + if ($this->s['registered']->status['status'] === 'logged') + { + if (!$this->s['registered']->checkCsrf($this->viewArgs['token'])) $this->redirect('home/index'.$this->lang,2,'wrong token..'); + + $data['preview_message'] = $this->request->post('message','','sanitizeHtml'); + $this->m['MessagesModel']->result = false; + } + } + + $data['notice'] = $this->m['MessagesModel']->notice; + + //create the form + $this->m['MessagesModel']->setForm('issues/view/'.$this->lang."/".$clean['id_issue'].$this->viewStatus."#form",array('previewAction'=>'preview','insertAction'=>'submit')); + + $values = $this->m['MessagesModel']->getFormValues('insert','sanitizeHtml'); + + $data['form'] = $this->m['MessagesModel']->form->render($values); + + //retrieve the values from the table + $data['table'] = $this->m['IssuesModel']->select('id_issue,created_by,title,status,creation_date,topic,priority,message,notice')->where(array('id_issue'=>$clean['id_issue'],'deleted'=>'no'))->send(); + +// javascript for moderator + $data['md_javascript'] = "moderator_dialog(\"hide\",\"message\");moderator_dialog(\"show\",\"message\");"; + $data['go_to'] = $this->currPage."/".$this->lang."/".$clean['id_issue']; + + if (count($data['table']) > 0) + { + $data['messages'] = $this->m['MessagesModel']->select()->where(array('id_issue'=>$clean['id_issue']))->send(); + + $this->append($data); + $this->load('view'); + $this->load('moderator_dialog'); + $this->right(); + } + } + +} \ No newline at end of file -- cgit v1.2.3