public function execute() { // Get the params $params = $this->extractRequestParams(); $type = $params['type']; $page = $params['page']; $id = array_key_exists('id', $params) ? $params['id'] : 0; $data = array_key_exists('data', $params) ? $params['data'] : ''; // Process the request switch ($type) { case 'add': $result = AjaxComments::add($data, $page); break; case 'reply': $result = AjaxComments::reply($data, $page, $id); break; case 'edit': $result = AjaxComments::edit($data, $page, $id); break; case 'del': $result = AjaxComments::delete($page, $id); break; case 'like': $msg = AjaxComments::like($data, $id); $comment = AjaxComments::getComment($id); $result = array('like' => $comment['like'], 'dislike' => $comment['dislike']); break; case 'get': $result = AjaxComments::getComments($page, $id); break; default: $result = array('error' => 'unknown action'); } // Return the result data $this->getResult()->addValue(null, $this->getModuleName(), $result); }