Esempio n. 1
0
 /**
  * Constructor
  * @param string $pType
  * @throws \Exception
  */
 public function __construct($pType = self::TYPE_JS)
 {
     $this->type = $pType;
     switch ($this->type) {
         case self::TYPE_JS:
             Header::content_type("application/javascript");
             break;
         case self::TYPE_CSS:
             Header::content_type("text/css");
             break;
     }
     /**
      * Load manifest
      */
     if (!file_exists(self::MANIFEST)) {
         $this->output($this->log("Manifest file '" . self::MANIFEST . "' not found", "error"));
     }
     $this->manifest = SimpleJSON::import(self::MANIFEST);
     $this->configuration = isset($this->manifest["config"]) ? $this->manifest["config"] : array();
     unset($this->manifest["config"]);
     /**
      * Cache
      */
     $cacheDuration = Stack::get("cache.duration", $this->configuration);
     if (!empty($cacheDuration)) {
         $eTag = md5($_GET["need"]);
         Header::handleCache($eTag, $cacheDuration);
     }
 }
Esempio n. 2
0
 public function retrieve_states()
 {
     if (!Core::checkRequiredGetVars('id_link')) {
         Core::performResponse('Missing argument');
     }
     $m = new ModelLink();
     $s = $m->getStatesByLink($_GET['id_link']);
     Core::performResponse(SimpleJSON::encode($s), 'json');
 }
Esempio n. 3
0
 /**
  * @param GAQuery $pQuery
  * @return array
  */
 public function retrieveData(GAQuery $pQuery)
 {
     if (!$this->isAuth()) {
         return null;
     }
     $r = new Request($pQuery->get());
     $header[] = 'Authorization: GoogleLogin auth=' . $this->getAuth();
     $r->setOption(CURLOPT_SSL_VERIFYPEER, 0);
     $r->setOption(CURLOPT_HTTPHEADER, $header);
     $r->setOption(CURLOPT_HEADER, false);
     return SimpleJSON::decode($r->execute());
 }
Esempio n. 4
0
 public function details()
 {
     if (!Core::checkRequiredGetVars('id', 'tab')) {
         Go::to404();
     }
     if (!Core::checkRequiredGetVars('no-async')) {
         Core::deactivateDebug();
     }
     $details = $this->model_link->details($_GET['id']);
     $s = array_reverse($this->model_link->getStatesByLink($_GET['id']));
     $this->addContent('states', str_replace('"', "'", SimpleJSON::encode($s)));
     $this->addContent('details', $details);
     $this->addContent('tab', $_GET['tab']);
 }
Esempio n. 5
0
 public function scrap()
 {
     if (!isset($_POST) || !isset($_POST["url"])) {
         Core::performResponse(SimpleJSON::encode(array("error" => "Url missing.")), "json");
     }
     $return = array("request" => array("post" => $_POST));
     $url = $_POST["url"];
     $m = new ModelPost();
     try {
         $return["data"] = $m->retrieveDataFrom($url);
     } catch (\Exception $e) {
         Core::performResponse(SimpleJSON::encode(array("error" => "Unable to retrieve infos.", "details" => $e->getMessage())), "json");
     }
     Core::performResponse(SimpleJSON::encode($return), "json");
 }
Esempio n. 6
0
 public function update()
 {
     if (!Core::checkRequiredGetVars('permalink_list', 'prop_list') || !isset($_POST) || empty($_POST) || !isset($_POST['value']) || empty($_POST['value'])) {
         Go::to404();
     }
     $m = new ModelList();
     $list = $m->one(Query::condition()->andWhere('permalink_list', Query::EQUAL, $_GET['permalink_list']));
     if (!$list) {
         Go::to404();
     }
     $name = $_GET['prop_list'];
     if ($m->updateById($list['id_list'], array($name => $_POST['value']))) {
         $response = array("message" => "ok");
     } else {
         $response = array("error", "Unable to perform an update on field '" . $name . "'");
     }
     $response = SimpleJSON::encode($response);
     Core::performResponse($response, 'json');
 }
Esempio n. 7
0
 public function __construct($pFile)
 {
     if (!file_exists($pFile)) {
         return;
     }
     $this->items = SimpleJSON::import($pFile);
     if (!$this->items) {
         trigger_error('[Object Menu] No Items loaded', E_USER_NOTICE);
     }
     foreach ($this->items as &$item) {
         if (!isset($item['parameters'])) {
             $item['parameters'] = array();
         }
         if (!isset($item['controller'])) {
             $item['controller'] = '';
         }
         if (!isset($item['action'])) {
             $item['action'] = '';
         }
         $item['current'] = Core::$controller == $item['controller'] && Core::$action == $item['action'];
         $item['url'] = Core::rewriteURL($item['controller'], $item['action'], $item['parameters']);
     }
 }
Esempio n. 8
0
 /**
  * ATTENTION AU NAME DE L'INPUT
  * ==> FORM[INPUTNAME] <==
  *
  * ATTENTION A LA TECHNIQUE DE RENVOIE D'INFORMATION !M&eacute;thode priv&eacute;e
  *
  * @return void
  */
 public function upload_async()
 {
     $datas = null;
     $response = array("error" => "");
     if (!isset($_POST["form_name"]) || empty($_POST["form_name"])) {
         $response["error"] = '$_POST["form_name"] require';
         $this->response($response);
     }
     if (!isset($_POST["input_name"]) || empty($_POST["input_name"])) {
         $response["error"] = '$_POST["input_name"] require';
         $this->response($response);
     }
     $file = $_FILES[$_POST["input_name"]];
     if (!isset($file) || empty($file)) {
         $response["error"] = "Aucun fichier n'a été transmis";
     }
     if (empty($response["error"])) {
         $app = $_POST["application"];
         $path_to_form = "includes/applications/" . $app . "/modules/";
         if (isset($_POST["module"]) && !empty($_POST['module'])) {
             $path_to_form .= $_POST["module"] . "/";
         } else {
             $path_to_form .= "front/";
         }
         $form_name = $_POST["form_name"];
         $path_to_form .= "forms/form." . $form_name . ".json";
         if (!file_exists($path_to_form)) {
             $path_to_form = preg_replace("/_[0-9]+\\.json\$/", ".json", $path_to_form);
         }
         try {
             $datas = SimpleJSON::import($path_to_form);
         } catch (Exception $e) {
             $response["error"] = "Formulaire introuvable " . $path_to_form;
             $this->response($response);
         }
         if (!is_array($datas[$_POST["input_name"]])) {
             $response["error"] = "Champs cibl&eacute; introuvable";
             $this->response($response);
         }
         $input = $datas[$_POST["input_name"]];
         if ($input["tag"] != Form::TAG_UPLOAD && ($input["tag"] != "input" && $input["attributes"]["type"] != "file")) {
             $response["error"] = "Le champ ciblé n'est pas un input type 'file'";
             $this->response($response);
         }
         $fileName = "";
         if (isset($input["fileName"])) {
             $fileName = "file" . rand(0, 999999);
         }
         $folderName = Form::PATH_TO_UPLOAD_FOLDER;
         if (isset($input["folder"])) {
             $folderName .= $input["folder"];
         }
         $upload = new Upload($file, $folderName, $fileName);
         if (isset($input["resize"]) && is_array($input["resize"])) {
             $upload->resizeImage($input["resize"][0], $input["resize"][1]);
         }
         if (!$upload->isMimeType($input["fileType"])) {
             $response["error"] = "Type de fichier non-autorisé (" . $input["fileType"] . ")";
             $this->response($response);
         }
         try {
             $upload->send();
         } catch (Exception $e) {
             $response["error"] = "Upload impossible";
             $this->response($response);
         }
         if (isset($input["fileName"]) && !empty($input["fileName"])) {
             $fileName = preg_replace("/(\\{id\\})/", $upload->id_upload, $input["fileName"]);
             $upload->renameFile($fileName);
         }
         $response["path_upload"] = Application::getInstance()->getPathPart() . $upload->pathFile;
         $response["id_upload"] = $upload->id_upload;
     }
     $this->response($response);
 }
Esempio n. 9
0
 /**
  * Constructor
  * Récupére et parse le fichier JSON de configuration du formulaire
  * @param  $pName
  * @param bool $pReal
  * @throws Exception
  */
 public function __construct($pName, $pReal = true)
 {
     $this->name = $pName;
     if (!$pReal) {
         return;
     }
     $module = Core::$module;
     $formFile = Core::$path_to_application . "/modules/" . $module . "/forms/form." . $pName . ".json";
     try {
         $this->data = SimpleJSON::import($formFile);
     } catch (Exception $e) {
         throw new Exception("Le formulaire <b>" . $pName . "</b> est introuvable");
     }
     if (!$this->data) {
         throw new Exception("Impossible de parser le fichier de déclaration du formulaire <b>" . $pName . "</b>, veuillez vérifier le formatage des données (guillements, virgules, accents...).");
     }
 }
Esempio n. 10
0
 /**
  * @static
  * @param DefaultController|null $pController
  * @param null $pAction
  * @param string $pTemplate
  * @return void
  */
 public static function execute($pController = null, $pAction = null, $pTemplate = "")
 {
     if ($pController != "statique") {
         $pController->setTemplate(self::$controller, self::$action, $pTemplate);
     }
     if ($pAction != null) {
         $pController->{$pAction}();
     }
     if (!Core::$request_async) {
         Header::content_type("text/html");
         $pController->render();
         if (Core::debug()) {
             Debugger::render();
         }
     } else {
         $return = $pController->getGlobalVars();
         $return = array_merge($return, Debugger::getGlobalVars());
         if (isset($_POST) && isset($_POST["render"]) && $_POST["render"] != "false") {
             $return["html"] = $pController->render(false);
         }
         $response = SimpleJSON::encode($return);
         $type = "json";
         self::performResponse($response, $type);
     }
 }
Esempio n. 11
0
 /**
  * Méthode de définition du contexte en fonction du fichier de routing & de l'url
  * @param string $pUrl
  * @return array|null
  */
 private static function handleRoutingRules($pUrl)
 {
     if (empty($pUrl)) {
         $pUrl = "/";
     }
     $request_url = $pUrl;
     $parameters = array();
     $rules_file = Core::$path_to_application . "/src/routing_rules.json";
     try {
         $rules = SimpleJSON::import($rules_file);
     } catch (Exception $e) {
         return null;
     }
     $index_parameters = array();
     $rules = $rules[Core::$module];
     if (!$rules) {
         trigger_error("Le module '" . Core::$module . "' ne dispose d'aucune règle dans le fichier de routing.", E_USER_ERROR);
     }
     $request_method = $_SERVER['REQUEST_METHOD'];
     $final_rule = null;
     foreach ($rules as $url => $rule) {
         $re_url = $url;
         $re_url = str_replace('/', '\\/', $re_url);
         $re_url = str_replace('.', '\\.', $re_url);
         $index_param = 0;
         if (!isset($rule["parameters"])) {
             $rule["parameters"] = array();
         }
         foreach ($rule["parameters"] as $name => $re) {
             if (!preg_match('/\\{\\$' . $name . '\\}/', $re_url)) {
                 $parameters[$name] = $re;
                 continue;
             }
             $index_parameters[++$index_param] = $name;
             $re_url = preg_replace('/\\{\\$' . $name . '\\}/', '(' . $re . ')', $re_url);
         }
         $re_url = "/^" . $re_url . '$/';
         if (!preg_match($re_url, $request_url, $matches)) {
             continue;
         }
         for ($k = 1, $maxk = count($matches); $k < $maxk; $k++) {
             $parameters[$index_parameters[$k]] = $matches[$k];
         }
         unset($rule['parameters']);
         if (isset($rule[$request_method]) && !empty($rule[$request_method])) {
             $final_rule = $rule[$request_method];
         } else {
             $allowed_methods = array_keys($rule);
             foreach ($allowed_methods as $m) {
                 if (preg_match('/\\|*' . $request_method . '\\|*/', $m, $matches)) {
                     $final_rule = $rule[$m];
                 }
             }
         }
         if (!$final_rule && isset($rule[self::HTTP_METHOD_WILDCARD]) && !empty($rule[self::HTTP_METHOD_WILDCARD])) {
             $final_rule = $rule[self::HTTP_METHOD_WILDCARD];
         }
         if (!$final_rule) {
             return null;
         }
         if (isset($parameters["controller"]) && !empty($parameters["controller"])) {
             $final_rule["controller"] = $parameters["controller"];
             unset($parameters["controller"]);
         }
         if (isset($parameters["action"]) && !empty($parameters["action"])) {
             $final_rule["action"] = $parameters["action"];
             unset($parameters["action"]);
         }
         $final_rule['parameters'] = $parameters;
         return $final_rule;
     }
     return null;
 }