Esempio n. 1
0
 function showIndex()
 {
     $request = fvRequest::getInstance();
     $sort['field'] = $request->getRequestParameter('field');
     $sort['dir'] = $request->getRequestParameter('direct');
     $search = $request->getRequestParameter('search');
     $query = NULL;
     if ($search['_clear'] == 1) {
         $search = array();
         $search['_clear'] = 1;
     }
     if ($search['email']) {
         $query = 'email like "%' . str_replace('"', "'", $search['email']) . '%"';
     }
     if (!$sort['field']) {
         $sort['field'] = "ctime";
         $sort['dir'] = "asc";
     }
     $pager = new fvPager(FeedbackManager::getInstance());
     $this->__assign('List', $pager->paginate($query, $sort['field'] . " " . $sort['dir']));
     $this->__assign("module", $this->moduleName);
     $this->__assign("sort", $sort);
     $this->__assign("search", count($search));
     return $this->__display('index.tpl');
 }
Esempio n. 2
0
 function executeSave()
 {
     $data = $this->getRequest()->getRequestParameter("m", "array", array());
     $captcha = $this->getRequest()->getRequestParameter("captcha", "array", array());
     $lang = fvLang::getInstance();
     try {
         $ex = FeedbackManager::getInstance()->cloneRootInstance();
         $ex->updateFromRequest($data);
         if (!$ex->isValid($ex)) {
             /*$fields = "\"".implode("\", \"", array_keys($ex->getValidationResult()) )."\"";*/
             throw new EUserMessageError($lang->feedback_valid_error, $ex);
         }
         if (!fvCaptcha::getInstance()->check($captcha['fileName'], $captcha['text'])) {
             throw new EUserMessageError($lang->feedback_invalid_captcha);
         }
         if (!$ex->save()) {
             throw new EUserMessageError($lang->form_save_error, $ex);
         }
     } catch (EUserMessageError $exc) {
         $fieldsArr = array();
         foreach ((array) $exc->getValidationResult() as $field => $val) {
             $fieldsArr[] = "\"" . $lang->__get("form_label_{$field}") . "\"";
         }
         $fields = implode(", ", $fieldsArr);
         $errMessage = preg_replace("#%fields%#si", $fields, $exc->getMessage());
         fvResponce::getInstance()->setHeader('exception', json_encode($errMessage));
         $captcha = fvCaptcha::getInstance()->generate();
         fvResponce::getInstance()->setHeader('captcha', json_encode($captcha->render()));
         fvResponce::getInstance()->setHeader('validation', json_encode($exc->getValidationResult()));
         return self::$FV_AJAX_CALL;
     }
     fvResponce::getInstance()->setHeader('message', json_encode($lang->feedback_success));
     return self::$FV_AJAX_CALL;
 }
Esempio n. 3
0
 /**
  * Tag handler for feedback list.
  *
  * @param array $tag_params
  * @param array $children
  */
 public function tag_FeedbackList($tag_params, $children)
 {
     $manager = FeedbackManager::getInstance();
     $user_manager = UserManager::getInstance();
     $conditions = array();
     // load template
     $template = $this->loadTemplate($tag_params, 'list_item.xml');
     // get items from the database
     $items = $manager->getItems($manager->getFieldNames(), $conditions);
     // parse template
     if (count($items) > 0) {
         foreach ($items as $item) {
             $timestamp = strtotime($item->timestamp);
             $date = date($this->getLanguageConstant('format_date_short'), $timestamp);
             $time = date($this->getLanguageConstant('format_time_short'), $timestamp);
             $user = $user_manager->getSingleItem(array('fullname'), array('id' => $item->user));
             $user_name = $item->user;
             if (is_object($user)) {
                 $user_name = $user->fullname;
             }
             $params = array('id' => $item->id, 'user' => $item->user, 'user_name' => $user_name, 'timestamp' => $item->timestamp, 'time' => $time, 'date' => $date, 'message' => $item->message, 'url' => $item->url, 'status' => $item->status, 'item_change' => url_MakeHyperlink($this->getLanguageConstant('change'), window_Open('feedback_change', 430, $this->getLanguageConstant('title_feedback_change'), false, false, url_Make('transfer_control', 'backend_module', array('module', $this->name), array('backend_action', 'feedback_change'), array('id', $item->id)))), 'item_delete' => url_MakeHyperlink($this->getLanguageConstant('delete'), window_Open('feedback_delete', 400, $this->getLanguageConstant('title_feedback_delete'), false, false, url_Make('transfer_control', 'backend_module', array('module', $this->name), array('backend_action', 'feedback_delete'), array('id', $item->id)))));
             $template->setLocalParams($params);
             $template->restoreXML();
             $template->parse();
         }
     }
 }