Esempio n. 1
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. 2
0
 function executeLogin()
 {
     $className = fvSite::$fvConfig->get('access.user_class');
     $UserManager = call_user_func(array("{$className}Manager", 'getInstance'));
     $request = fvRequest::getInstance();
     $login = $request->getRequestParameter("login");
     $password = md5($request->getRequestParameter('password'));
     $site = fvSite::$fvConfig->get('server_name');
     $ip = $_SERVER['SERVER_ADDR'];
     $LoggedUser = $UserManager->Login($login, $password, $site, $ip);
     if ($LoggedUser !== false) {
         fvSite::$fvSession->setUser($LoggedUser);
         fvResponce::getInstance()->setHeader('loginsuccess', '1');
         if (fvSite::$fvSession->is_set("login/redirectURL")) {
             $this->redirect("@#" . fvSite::$fvConfig->get('dir_web_root') . fvSite::$fvSession->get("login/redirectURL"));
         } else {
             $this->redirect("@");
         }
     } else {
         $this->setFlash("Ошибка при аутентификации пользователя. Пара логин/пароль не найдена", self::$FLASH_ERROR);
         //$this->redirect(fvSite::$fvConfig->get('access.login_page'));
     }
     if (!fvRequest::getInstance()->isXmlHttpRequest()) {
         return self::$FV_OK;
     } else {
         return self::$FV_AJAX_CALL;
     }
 }
 function redirect($url, $delay = 0, $status = 302)
 {
     $this->_responce = fvResponce::getInstance();
     $this->_responce->clearHeaders();
     $this->_responce->setStatus($status);
     $this->_responce->setHeader("Location", $url);
     $this->_responce->setResponceBody('<html><head><meta http-equiv="refresh" content="%d;url=%s"/></head></html>', $delay, htmlentities($url, ENT_QUOTES, fvSite::$fvConfig->get('charset')));
     $this->_responce->sendHeaders();
     $this->_responce->sendResponceBody();
     die;
 }
 public function execute()
 {
     $currentUrl = fvRequest::getInstance()->getRequestParameter('requestURL');
     $filterArray = fvRequest::getInstance()->getRequestParameter('filter');
     if (is_array($filterArray)) {
         fvResponce::getInstance()->setHeader('filtered', true);
         if ($filterArray['_clear'] == "1") {
             fvSite::$fvSession->remove("{$currentUrl}/filter", $filterArray);
         } else {
             fvSite::$fvSession->set("{$currentUrl}/filter", $filterArray);
         }
     }
     return true;
 }
Esempio n. 5
0
 function executeDelete()
 {
     $request = fvRequest::getInstance();
     if (!($User = UserManager::getInstance()->getByPk($request->getRequestParameter('id')))) {
         $this->setFlash("Ошибка при удалении.", self::$FLASH_ERROR);
     } else {
         $User->delete();
         $this->setFlash("Данные успешно удалены", self::$FLASH_SUCCESS);
     }
     fvResponce::getInstance()->setHeader('redirect', fvSite::$fvConfig->get('dir_web_root') . $request->getRequestParameter('module') . "/");
     if (fvRequest::getInstance()->isXmlHttpRequest()) {
         return self::$FV_NO_LAYOULT;
     } else {
         return self::$FV_OK;
     }
 }
Esempio n. 6
0
 function executeDelete()
 {
     $request = fvRequest::getInstance();
     $id = intval($request->getRequestParameter('id'));
     if (!($ex = NewsManager::getInstance()->getByPk($id))) {
         $this->setFlash("Ошибка при удаленни данных. Такой записи не существует", self::$FLASH_ERROR);
     } else {
         $ex->getMeta()->delete();
         $ex->delete();
         $this->setFlash("Данные удалены", self::$FLASH_SUCCESS);
     }
     fvResponce::getInstance()->setHeader('redirect', fvSite::$fvConfig->get('dir_web_root') . $request->getRequestParameter('module') . "/");
     if (fvRequest::getInstance()->isXmlHttpRequest()) {
         return self::$FV_AJAX_CALL;
     } else {
         return self::$FV_OK;
     }
 }
 /**
  *  Удаление 
  * @author Dmitriy Khoroshilov
  * @since 2011/07/29 
  *
  * @return
  */
 function executeDelete()
 {
     try {
         $id = $this->getRequest()->getRequestParameter('id', 'int', 0);
         if ($id > 0) {
             $inst = $this->getManager()->getByPk($id);
         } else {
             $inst = $this->getManager()->cloneRootInstance();
         }
         if (!$this->getManager()->isRootInstance($inst)) {
             fvResponce::getInstance()->setHeader('redirect', $this->getManager()->getBackendListURL());
             throw new EUserMessageError("Такая запись не найдена в базе данных");
         }
         if (!$inst->delete()) {
             throw new EUserMessageError("Ошибка удаления из базы данных. Повторите попытку через несколько минут");
         }
         $this->setFlash("Данные успешно удалены", self::$FLASH_SUCCESS);
         fvResponce::getInstance()->setHeader('redirect', $this->getManager()->getBackendListURL());
     } catch (EUserMessageError $exc) {
         fvResponce::getInstance()->setHeader('X-JSON', json_encode($exc->getValidationResult()));
         $this->setFlash($exc->getMessage(), self::$FLASH_ERROR);
     }
     return fvRequest::getInstance()->isXmlHttpRequest() ? self::$FV_AJAX_CALL : self::$FV_OK;
 }
Esempio n. 8
0
 protected function setHeader($key, $value)
 {
     fvResponce::getInstance()->setHeader($key, $value);
 }
Esempio n. 9
0
 function showGetpagecontent()
 {
     $this->current_page->setTemplate('simpleLayoult.tpl');
     $dom = new DOMDocument();
     $dom->preserveWhiteSpace = false;
     $_xmlContent = fvRequest::getInstance()->getRequestParameter('_xmlContent');
     if ($dom->loadXML($_xmlContent)) {
         $xpth = new DOMXPath($dom);
         if ($nodeId = fvRequest::getInstance()->getRequestParameter('_nodeId')) {
             $currentNode = $xpth->evaluate("//*[@id='{$nodeId}']");
             if ($currentNode->length == 1) {
                 $currentNode = $currentNode->item(0);
             } else {
                 return '';
             }
             if (fvRequest::getInstance()->hasRequestParameter("_add") && !fvRequest::getInstance()->getRequestParameter("_add")) {
                 $currentNode = $currentNode->parentNode;
             }
         } else {
             $currentPartName = fvRequest::getInstance()->getRequestParameter('_partName', null, $this->appConfig->get('template.default_content_part'));
             $currentNode = $xpth->evaluate("/page/content_part[@name='{$currentPartName}']");
             switch ($currentNode->length) {
                 case 0:
                     $currentNode = $dom->createElement("content_part");
                     $currentNode->setAttribute('name', $currentPartName);
                     $currentNode->setAttribute('id', md5(microtime()));
                     $dom->documentElement->appendChild($currentNode);
                     break;
                 case 1:
                     $currentNode = $currentNode->item(0);
                     break;
                 default:
                     return '';
                     break;
             }
             $partNode = $currentNode;
         }
         $pathNodes = array();
         $lastNode = $currentNode;
         while ($lastNode->nodeName != "page") {
             if ($lastNode->nodeName == "content_part" && !$partNode) {
                 $partNode = $lastNode;
             }
             $pathNodes[] = array('id' => $lastNode->getAttribute("id"), 'name' => $lastNode->getAttribute("name"), 'current' => $lastNode->getAttribute("id") == $currentNode->getAttribute("id"));
             $lastNode = $lastNode->parentNode;
         }
         $childNodes = array();
         foreach ($currentNode->childNodes as $childNode) {
             $childNodes[] = $childNode;
         }
         usort($childNodes, array($this, '_cmpNodes'));
         if (is_array($pathNodes)) {
             $pathNodes = array_reverse($pathNodes);
         }
         $this->__assign(array("_pageParts" => $this->appConfig->get("template.content_parts"), "_currentPart" => $partNode->getAttribute("name"), "_nodePath" => $pathNodes, "_currentNodes" => $childNodes));
         fvResponce::getInstance()->setHeader("X-JSON", json_encode(array('_nodeId' => $currentNode->getAttribute("id"), '_xmlContent' => $dom->saveXML())));
         return $this->__display('show_page_content.tpl');
     } else {
         return '';
     }
 }
Esempio n. 10
0
 function executeGetparams()
 {
     if (!fvRequest::getInstance()->isXmlHttpRequest()) {
         return false;
     }
     $Group = UserGroupManager::getInstance()->getByPk(fvRequest::getInstance()->getRequestParameter("group_id"));
     if (!$Group instanceof UserGroup) {
         return false;
     }
     fvResponce::getInstance()->setHeader('X-JSON', json_encode($Group->permitions));
     return self::$FV_AJAX_CALL;
 }
Esempio n. 11
0
 function executeReorder()
 {
     $dom = new DOMDocument();
     $dom->preserveWhiteSpace = false;
     $_xmlContent = fvRequest::getInstance()->getRequestParameter('_xmlContent');
     if ($dom->loadXML($_xmlContent)) {
         $xpth = new DOMXPath($dom);
         if ($nodeId = fvRequest::getInstance()->getRequestParameter('_nodeId')) {
             $order = explode(",", fvRequest::getInstance()->getRequestParameter('_nodeOrder'));
             if (!is_array($order)) {
                 $order = array();
             }
             $currentNode = $xpth->evaluate("//*[@id='{$nodeId}']/*");
             foreach ($currentNode as $reorderNode) {
                 $reorderNode->setAttribute('order', $order[$reorderNode->getAttribute('order')]);
             }
             fvResponce::getInstance()->setHeader("X-JSON", json_encode(array('_xmlContent' => $dom->saveXML())));
         }
     }
     if (fvRequest::getInstance()->isXmlHttpRequest()) {
         return self::$FV_AJAX_CALL;
     } else {
         $this->redirect404();
     }
 }