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'); }
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; }
/** * 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(); } } }