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; }
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; }
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; } }
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; }
protected function setHeader($key, $value) { fvResponce::getInstance()->setHeader($key, $value); }
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 ''; } }
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; }
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(); } }