/**
  * The \modules\defaultModule\controllers\indexController::signupAction()
  * @by Zinux Generator <*****@*****.**>
  */
 public function signupAction()
 {
     if (\zinux\kernel\application\config::GetConfig("idisqus.disable.signup")) {
         throw new \zinux\kernel\exceptions\accessDeniedException();
     }
     if (!$this->request->IsPOST()) {
         return;
     }
     try {
         \zinux\kernel\security\security::__validate_request($this->request->params);
         \zinux\kernel\security\security::IsSecure($this->request->params, array("username", "password", "email"));
         $user = new \modules\defaultModule\models\user();
         foreach (array("username", "password", "email") as $elem) {
             $user->{$elem} = $this->request->params[$elem];
         }
         $user->password = md5($user->password);
         $user->save();
         $user->reload();
         $user->readonly();
         $mail = new \modules\defaultModule\models\mailer("noreply", \zinux\kernel\application\config::GetConfig("idisqus.mail.noreply.password"));
         $mail->CharSet = 'UTF-8';
         # add a subject
         $mail->Subject = "Activate Your iDisqus Account";
         # add the reciever address
         $mail->addAddress($user->email);
         # start reading the html context of reset mail
         ob_start();
         $this->view->RenderPartial("activate_email", array('user' => $user, 'alink' => "/activate/u/{$user->userid}/h/" . \md5(\sha1($user->userid) . __CLASS__) . \sha1($user->email . __FILE__) . \md5($user->password . "dar!ush")));
         # set the html msg and clean the ob's buffer
         $mail->msgHTML(ob_get_clean());
         # msgHTML also sets AltBody, but if you want a custom one, set it afterwards
         $mail->AltBody = "Activate Your iDisqus Account";
         # try to send the email
         if (!$mail->send()) {
             throw new \RuntimeException("Counld'n send email to `{$this->request->params["email"]}` due to error : `{$mail->ErrorInfo}`");
         }
     } catch (\Exception $e) {
         $user = NULL;
     }
     if (!$user) {
         $this->view->errors[] = "Invalid username or password!";
         return;
     }
     $this->view->success[] = "Congratulations, You have successfully signed up to iDisqus.";
     $this->view->success[] = "An activation link sent to your email address please check your inbox.";
 }
 /**
  * The \modules\defaultModule\controllers\disqusController::newAction()
  * @by Zinux Generator <*****@*****.**>
  */
 public function newAction()
 {
     if (isset($this->request->params["ajax"])) {
         $this->layout->SuppressLayout();
     }
     if (!$this->request->IsPOST()) {
         return;
     }
     \zinux\kernel\security\security::__validate_request($this->request->params);
     $is_reply = isset($this->request->params["pid"]);
     $essential_data = array('content');
     if ($is_reply) {
         $essential_data[] = "pid";
     } else {
         $essential_data[] = "title";
     }
     \zinux\kernel\security\security::IsSecure($this->request->params, $essential_data);
     $disqus = new \modules\defaultModule\models\disqus();
     if (!$is_reply) {
         $disqus->title = trim($this->request->params["title"]);
     }
     $disqus->context = trim($this->request->params["content"]);
     $disqus->created_by = \modules\defaultModule\models\user::GetInstance()->userid;
     $disqus->tag_id = @$this->request->params["tag"];
     if ($is_reply) {
         $disqus->parentid = $this->request->params["pid"];
     }
     $disqus->save();
     $return_uri = "/disqus/view/" . ($is_reply ? $disqus->parentid : $disqus->disqusid);
     $users = \modules\defaultModule\models\user::all(array('select' => 'email,username', 'readonly' => true, 'conditions' => array('userid <> ?', \modules\defaultModule\models\user::GetInstance()->userid)));
     foreach ($users as $user) {
         # factor an instance of php mailer
         $mail = new \modules\defaultModule\models\mailer("noreply", \zinux\kernel\application\config::GetConfig("idisqus.mail.noreply.password"));
         $mail->CharSet = 'UTF-8';
         # add a subject
         $mail->Subject = $disqus->title;
         if ($is_reply) {
             $mail->Subject = "Re: " . \modules\defaultModule\models\disqus::find($disqus->parentid, array('select' => 'title'))->title;
         }
         # add the reciever address
         $mail->addAddress($user->email);
         # start reading the html context of reset mail
         ob_start();
         $this->view->RenderPartial("notify_disqus", array('user' => $user, 'poster' => \modules\defaultModule\models\user::GetInstance(), 'is_reply' => $is_reply, 'title' => preg_replace("#^Re: #i", "", $mail->Subject), 'disqus' => $disqus, 'return_uri' => $return_uri));
         # set the html msg and clean the ob's buffer
         $mail->msgHTML(ob_get_clean());
         # msgHTML also sets AltBody, but if you want a custom one, set it afterwards
         $mail->AltBody = 'New ' . ($is_reply ? 'reply' : 'post') . ' from ' . \modules\defaultModule\models\user::GetInstance()->username;
         # try to send the email
         if (!$mail->send()) {
             die("ERROR EMAILING");
         }
         # LOG THE FAILURE
     }
     header("location: {$return_uri}");
     exit;
 }