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);
 }