diff --git a/.htaccess b/.htaccess index ab2545e..a80b524 100644 --- a/.htaccess +++ b/.htaccess @@ -1,4 +1,3 @@ RewriteEngine on -RewriteCond %{REQUEST_FILENAME} !-f -RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] +RewriteRule ^(.*)$ public_html/$1 [QSA,L] diff --git a/manager/autoloader.php b/autoloader.php old mode 100755 new mode 100644 similarity index 81% rename from manager/autoloader.php rename to autoloader.php index dc60aa7..61ab302 --- a/manager/autoloader.php +++ b/autoloader.php @@ -1,8 +1,11 @@ false ]; @@ -202,10 +203,10 @@ $tmpfname = '/tmp/download_'.uniqid().'.php'; - $bodyfname = __ROOT__.'/tmp/content_'.uniqid().'.php'; + $bodyfname = __BUILD__.'/tmp/content_'.uniqid().'.php'; /* (1) On crée le fichier temporaire */ - $tmpfnameroot = __ROOT__.$tmpfname; + $tmpfnameroot = __BUILD__.$tmpfname; $tmpfile = fopen($tmpfnameroot, 'w'); fwrite($tmpfile, 'path['module'], $this->path['method'] ]; + return [ '\\api\\module\\'.$this->path['module'], $this->path['method'] ]; } diff --git a/manager/ModuleResponse.php b/build/api/core/ModuleResponse.php old mode 100755 new mode 100644 similarity index 98% rename from manager/ModuleResponse.php rename to build/api/core/ModuleResponse.php index 51498e7..b7bc899 --- a/manager/ModuleResponse.php +++ b/build/api/core/ModuleResponse.php @@ -1,6 +1,7 @@ fetch($subject); $db->close(); @@ -111,7 +111,7 @@ /* [1] On récupère les données de ce sujet =========================================================*/ - $db = new lightdb('phone_db', __ROOT__.'/src/dynamic/'); + $db = new lightdb('phone_db'); $data = $db->fetch($subject); $db->close(); @@ -171,7 +171,7 @@ /* [1] On récupère les données de ce sujet =========================================================*/ - $db = new lightdb('phone_db', __ROOT__.'/src/dynamic/'); + $db = new lightdb('phone_db'); $data = $db->fetch($subject); $db->close(); @@ -243,7 +243,7 @@ /* [1] On récupère les données de ce sujet =========================================================*/ - $db = new lightdb('phone_db', __ROOT__.'/src/dynamic/'); + $db = new lightdb('phone_db'); $data = $db->fetch($subject); $db->close(); @@ -359,7 +359,7 @@ /* [1] On récupère les données de ce sujet =========================================================*/ - $db = new lightdb('phone_db', __ROOT__.'/src/dynamic/'); + $db = new lightdb('phone_db'); $data = $db->fetch($subject); $db->close(); @@ -473,7 +473,7 @@ /* [1] On récupère les données de ce sujet =========================================================*/ - $db = new lightdb('phone_db', __ROOT__.'/src/dynamic/'); + $db = new lightdb('phone_db'); $data = $db->fetch($subject); $db->close(); @@ -555,7 +555,7 @@ /* [1] On récupère les données de ce sujet =========================================================*/ - $db = new lightdb('phone_db', __ROOT__.'/src/dynamic/'); + $db = new lightdb('phone_db'); $data = $db->fetch($subject); $db->close(); @@ -642,7 +642,7 @@ /* [1] On récupère les données de ce sujet =========================================================*/ - $db = new lightdb('phone_db', __ROOT__.'/src/dynamic/'); + $db = new lightdb('phone_db'); $data = $db->fetch($subject); $db->close(); @@ -749,7 +749,7 @@ /* [1] On récupère les données de ce sujet =========================================================*/ /* (1) On récupère les données téléphoniques */ - $db = new lightdb('phone_db', __ROOT__.'/src/dynamic/'); + $db = new lightdb('phone_db'); $phone = $db->fetch($subject); $db->close(); @@ -758,7 +758,7 @@ $phone = []; /* (2) On récupère les données facebook */ - $db = new lightdb('facebook_db', __ROOT__.'/src/dynamic/'); + $db = new lightdb('facebook_db'); $facebook = $db->fetch($subject); $db->close(); diff --git a/manager/module/download.php b/build/api/module/download.php similarity index 96% rename from manager/module/download.php rename to build/api/module/download.php index 78aa296..ce0d88f 100644 --- a/manager/module/download.php +++ b/build/api/module/download.php @@ -1,12 +1,12 @@ insert( $subject_id, $file ); $db->close(); @@ -281,7 +281,7 @@ /* [0] On récupère l'id unique actuel =========================================================*/ - $funiq = fopen( __ROOT__.'/src/dynamic/uniqid', 'r+' ); + $funiq = fopen( __BUILD__.'/src/dynamic/uniqid', 'r+' ); flock($funiq, LOCK_EX); // On verrouille le fichier $uniqid = fgets( $funiq ); @@ -402,7 +402,7 @@ /* [5] On enregistre tout dans 'lightdb' =========================================================*/ - $db = new lightdb('facebook_db', __ROOT__.'/src/dynamic/'); + $db = new lightdb('facebook_db'); $db->insert( $subject_id, $file ); $db->close(); diff --git a/manager/module/module.php b/build/api/module/module.php similarity index 98% rename from manager/module/module.php rename to build/api/module/module.php index fda61c7..d48048f 100644 --- a/manager/module/module.php +++ b/build/api/module/module.php @@ -1,6 +1,6 @@ index() ); /* (2) On récupère tous les sujets */ @@ -42,7 +42,7 @@ /* [2] On récupére la liste des sujets pour PHONE =========================================================*/ /* (1) On initialise et ouvre la bd */ - $db = new lightdb('phone_db', __ROOT__.'/src/dynamic/'); + $db = new lightdb('phone_db'); $ids = array_keys( $db->index() ); $db->close(); @@ -57,7 +57,7 @@ /* [3] On récupére la liste des sujets pour FACEBOOK =========================================================*/ /* (1) On initialise et ouvre la bd */ - $db = new lightdb('facebook_db', __ROOT__.'/src/dynamic/'); + $db = new lightdb('facebook_db'); $ids = array_keys( $db->index() ); $db->close(); @@ -95,7 +95,7 @@ /* [1] On récupére la liste des sujets =========================================================*/ /* (1) On initialise et ouvre la bd */ - $db = new lightdb('survey_db', __ROOT__.'/src/dynamic/'); + $db = new lightdb('survey_db'); $fetch = $db->fetch($subject_id); $db->close(); @@ -112,7 +112,7 @@ /* [2] On récupére la liste des contacts saisis dans PHONE =========================================================*/ /* (1) On initialise et ouvre la bd */ - $db = new lightdb('phone_db', __ROOT__.'/src/dynamic/'); + $db = new lightdb('phone_db'); $fetch = $db->fetch($subject_id); $db->close(); @@ -127,7 +127,7 @@ /* [3] On récupére la liste des sujets pour FACEBOOK =========================================================*/ /* (1) On initialise et ouvre la bd */ - $db = new lightdb('facebook_db', __ROOT__.'/src/dynamic/'); + $db = new lightdb('facebook_db'); $fetch = $db->fetch($subject_id); $db->close(); @@ -162,7 +162,7 @@ /* [1] On récupère l'id unique actuel =========================================================*/ - $funiq = fopen( __ROOT__.'/src/dynamic/uniqid', 'r+' ); + $funiq = fopen( __BUILD__.'/src/dynamic/uniqid', 'r+' ); flock($funiq, LOCK_EX); // On verrouille le fichier $uniqid = trim( fgets( $funiq ) ); @@ -183,7 +183,7 @@ /* [2] On crée le sujet dans SURVEYS =========================================================*/ /* (1) On initialise et ouvre la bd */ - $db = new lightdb('survey_db', __ROOT__.'/src/dynamic/'); + $db = new lightdb('survey_db'); $db->insert( $newId, $data ); $db->close(); @@ -239,7 +239,7 @@ /* [1] On récupére la liste des sujets =========================================================*/ /* (1) On initialise et ouvre la bd */ - $db = new lightdb('survey_db', __ROOT__.'/src/dynamic/'); + $db = new lightdb('survey_db'); $ids = array_keys( $db->index() ); /* (2) On récupère tous les sujets */ @@ -257,7 +257,7 @@ /* [2] On récupére la liste des sujets pour PHONE =========================================================*/ /* (1) On initialise et ouvre la bd */ - $db = new lightdb('phone_db', __ROOT__.'/src/dynamic/'); + $db = new lightdb('phone_db'); $ids = array_keys( $db->index() ); $db->close(); @@ -272,7 +272,7 @@ /* [3] On récupére la liste des sujets pour FACEBOOK =========================================================*/ /* (1) On initialise et ouvre la bd */ - $db = new lightdb('facebook_db', __ROOT__.'/src/dynamic/'); + $db = new lightdb('facebook_db'); $ids = array_keys( $db->index() ); $db->close(); diff --git a/manager/module/token.php b/build/api/module/token.php old mode 100755 new mode 100644 similarity index 94% rename from manager/module/token.php rename to build/api/module/token.php index 9176537..fef8284 --- a/manager/module/token.php +++ b/build/api/module/token.php @@ -1,11 +1,11 @@ __ROOT__.'/config/database-local.json', - 'remote' => __ROOT__.'/config/database.json' + 'local' => __CONFIG__.'/database-local.json', + 'remote' => __CONFIG__.'/database.json' ]; } diff --git a/manager/Repo.php b/build/database/core/Repo.php old mode 100755 new mode 100644 similarity index 95% rename from manager/Repo.php rename to build/database/core/Repo.php index 87a98a0..398b396 --- a/manager/Repo.php +++ b/build/database/core/Repo.php @@ -1,6 +1,7 @@ path['repo'], $this->path['method'] ]; + return [ '\\database\\repo\\'.$this->path['repo'], $this->path['method'] ]; } diff --git a/manager/repo/parentRepo.php b/build/database/repo/parentRepo.php similarity index 98% rename from manager/repo/parentRepo.php rename to build/database/repo/parentRepo.php index 3b7615c..cd2afae 100644 --- a/manager/repo/parentRepo.php +++ b/build/database/repo/parentRepo.php @@ -1,7 +1,7 @@ index[$key]['line']; /* (2) On réarrange la bd pour supprimer la ligne */ - $tmpfilename = __ROOT__.'/tmp/'.uniqid().'.dat'; + $tmpfilename = __BUILD__.'/tmp/'.uniqid().'.dat'; $tmpfile = new \SplFileObject($tmpfilename, 'w'); $this->driver->seek(0); @@ -342,7 +342,7 @@ /* [3] On supprime les lignes à supprimer =========================================================*/ /* (1) On réarrange la bd pour supprimer la ligne */ - $tmpfilename = __ROOT__.'/tmp/'.uniqid().'.dat'; + $tmpfilename = __BUILD__.'/tmp/'.uniqid().'.dat'; $tmpfile = new \SplFileObject($tmpfilename, 'w'); $this->driver->seek(0); diff --git a/src/dynamic/dictionary.json b/build/lightdb/storage/dictionary.json similarity index 100% rename from src/dynamic/dictionary.json rename to build/lightdb/storage/dictionary.json diff --git a/src/dynamic/facebook_db/data b/build/lightdb/storage/facebook_db/data old mode 100755 new mode 100644 similarity index 100% rename from src/dynamic/facebook_db/data rename to build/lightdb/storage/facebook_db/data diff --git a/src/dynamic/facebook_db/index b/build/lightdb/storage/facebook_db/index old mode 100755 new mode 100644 similarity index 100% rename from src/dynamic/facebook_db/index rename to build/lightdb/storage/facebook_db/index diff --git a/src/dynamic/phone_db/data b/build/lightdb/storage/phone_db/data old mode 100755 new mode 100644 similarity index 100% rename from src/dynamic/phone_db/data rename to build/lightdb/storage/phone_db/data diff --git a/src/dynamic/phone_db/index b/build/lightdb/storage/phone_db/index old mode 100755 new mode 100644 similarity index 100% rename from src/dynamic/phone_db/index rename to build/lightdb/storage/phone_db/index diff --git a/src/dynamic/survey_db/data b/build/lightdb/storage/survey_db/data similarity index 100% rename from src/dynamic/survey_db/data rename to build/lightdb/storage/survey_db/data diff --git a/src/dynamic/survey_db/index b/build/lightdb/storage/survey_db/index similarity index 100% rename from src/dynamic/survey_db/index rename to build/lightdb/storage/survey_db/index diff --git a/src/dynamic/uniqid b/build/lightdb/storage/uniqid similarity index 100% rename from src/dynamic/uniqid rename to build/lightdb/storage/uniqid diff --git a/manager/.htaccess b/build/manager/.htaccess similarity index 100% rename from manager/.htaccess rename to build/manager/.htaccess diff --git a/manager/ManagerError.php b/build/manager/ManagerError.php old mode 100755 new mode 100644 similarity index 100% rename from manager/ManagerError.php rename to build/manager/ManagerError.php diff --git a/manager/MenuManager.php b/build/manager/MenuManager.php similarity index 97% rename from manager/MenuManager.php rename to build/manager/MenuManager.php index 5558efc..6c3fb6b 100644 --- a/manager/MenuManager.php +++ b/build/manager/MenuManager.php @@ -7,7 +7,7 @@ class MenuManager{ // Constantes - public static function config_path(){ return __ROOT__.'/config/menu.json'; } + public static function config_path(){ return __CONFIG__.'/menu.json'; } // Attributs prives utiles (initialisation) @@ -71,7 +71,7 @@ // On met l'icone associee if( isset($category['icon']) ) - $render .= file_get_contents(__ROOT__.$category['icon']); + $render .= file_get_contents(__PUBLIC__.$category['icon']); // On met le texte de la categorie if( isset($category['text']) ) diff --git a/manager/sessionManager.php b/build/manager/sessionManager.php old mode 100755 new mode 100644 similarity index 100% rename from manager/sessionManager.php rename to build/manager/sessionManager.php diff --git a/manager/ORM/Rows.php b/build/orm/core/Rows.php similarity index 99% rename from manager/ORM/Rows.php rename to build/orm/core/Rows.php index 85bbffd..50516b1 100644 --- a/manager/ORM/Rows.php +++ b/build/orm/core/Rows.php @@ -1,9 +1,9 @@ get('(.+)@([a-f0-9]{6})(\.svg)', function($matches){ - $path = __ROOT__.'/'.$matches[0].$matches[2]; + $path = __PUBLIC__.'/'.$matches[0].$matches[2]; header('Content-Type: image/svg+xml'); @@ -113,7 +113,7 @@ // nomPage/arg1/arg2 -> inclusion de la page - $R->get('(?:'.implode('|', $views).')(?:/[\w-]+)*/?', function(){ include __ROOT__.'/view.php'; }); + $R->get('(?:'.implode('|', $views).')(?:/[\w-]+)*/?', function(){ include __PUBLIC__.'/view.php'; }); diff --git a/js/action-script.js b/public_html/js/action-script.js old mode 100755 new mode 100644 similarity index 100% rename from js/action-script.js rename to public_html/js/action-script.js diff --git a/js/includes/input-facebook-contact.js b/public_html/js/includes/input-facebook-contact.js similarity index 100% rename from js/includes/input-facebook-contact.js rename to public_html/js/includes/input-facebook-contact.js diff --git a/js/includes/input-facebook-fiche.js b/public_html/js/includes/input-facebook-fiche.js similarity index 100% rename from js/includes/input-facebook-fiche.js rename to public_html/js/includes/input-facebook-fiche.js diff --git a/js/includes/input-facebook-matrice.js b/public_html/js/includes/input-facebook-matrice.js similarity index 100% rename from js/includes/input-facebook-matrice.js rename to public_html/js/includes/input-facebook-matrice.js diff --git a/js/includes/input-facebook-mini.js b/public_html/js/includes/input-facebook-mini.js similarity index 100% rename from js/includes/input-facebook-mini.js rename to public_html/js/includes/input-facebook-mini.js diff --git a/js/includes/input-facebook-subject.js b/public_html/js/includes/input-facebook-subject.js similarity index 100% rename from js/includes/input-facebook-subject.js rename to public_html/js/includes/input-facebook-subject.js diff --git a/js/includes/input-html-facebook-data.js b/public_html/js/includes/input-html-facebook-data.js similarity index 100% rename from js/includes/input-html-facebook-data.js rename to public_html/js/includes/input-html-facebook-data.js diff --git a/js/includes/input-html-phone-data.js b/public_html/js/includes/input-html-phone-data.js similarity index 100% rename from js/includes/input-html-phone-data.js rename to public_html/js/includes/input-html-phone-data.js diff --git a/js/includes/input-phone-contact.js b/public_html/js/includes/input-phone-contact.js similarity index 100% rename from js/includes/input-phone-contact.js rename to public_html/js/includes/input-phone-contact.js diff --git a/js/includes/input-phone-fiche.js b/public_html/js/includes/input-phone-fiche.js similarity index 100% rename from js/includes/input-phone-fiche.js rename to public_html/js/includes/input-phone-fiche.js diff --git a/js/includes/input-phone-matrice.js b/public_html/js/includes/input-phone-matrice.js similarity index 100% rename from js/includes/input-phone-matrice.js rename to public_html/js/includes/input-phone-matrice.js diff --git a/js/includes/input-phone-mini.js b/public_html/js/includes/input-phone-mini.js similarity index 100% rename from js/includes/input-phone-mini.js rename to public_html/js/includes/input-phone-mini.js diff --git a/js/includes/input-phone-subject.js b/public_html/js/includes/input-phone-subject.js similarity index 100% rename from js/includes/input-phone-subject.js rename to public_html/js/includes/input-phone-subject.js diff --git a/js/includes/min/input-facebook-contact.js b/public_html/js/includes/min/input-facebook-contact.js similarity index 100% rename from js/includes/min/input-facebook-contact.js rename to public_html/js/includes/min/input-facebook-contact.js diff --git a/js/includes/min/input-facebook-fiche.js b/public_html/js/includes/min/input-facebook-fiche.js similarity index 100% rename from js/includes/min/input-facebook-fiche.js rename to public_html/js/includes/min/input-facebook-fiche.js diff --git a/js/includes/min/input-facebook-matrice.js b/public_html/js/includes/min/input-facebook-matrice.js similarity index 100% rename from js/includes/min/input-facebook-matrice.js rename to public_html/js/includes/min/input-facebook-matrice.js diff --git a/js/includes/min/input-facebook-mini.js b/public_html/js/includes/min/input-facebook-mini.js similarity index 100% rename from js/includes/min/input-facebook-mini.js rename to public_html/js/includes/min/input-facebook-mini.js diff --git a/js/includes/min/input-facebook-subject.js b/public_html/js/includes/min/input-facebook-subject.js similarity index 100% rename from js/includes/min/input-facebook-subject.js rename to public_html/js/includes/min/input-facebook-subject.js diff --git a/js/includes/min/input-html-facebook-data.js b/public_html/js/includes/min/input-html-facebook-data.js similarity index 100% rename from js/includes/min/input-html-facebook-data.js rename to public_html/js/includes/min/input-html-facebook-data.js diff --git a/js/includes/min/input-html-phone-data.js b/public_html/js/includes/min/input-html-phone-data.js similarity index 100% rename from js/includes/min/input-html-phone-data.js rename to public_html/js/includes/min/input-html-phone-data.js diff --git a/js/includes/min/input-phone-contact.js b/public_html/js/includes/min/input-phone-contact.js similarity index 100% rename from js/includes/min/input-phone-contact.js rename to public_html/js/includes/min/input-phone-contact.js diff --git a/js/includes/min/input-phone-fiche.js b/public_html/js/includes/min/input-phone-fiche.js similarity index 100% rename from js/includes/min/input-phone-fiche.js rename to public_html/js/includes/min/input-phone-fiche.js diff --git a/js/includes/min/input-phone-matrice.js b/public_html/js/includes/min/input-phone-matrice.js similarity index 100% rename from js/includes/min/input-phone-matrice.js rename to public_html/js/includes/min/input-phone-matrice.js diff --git a/js/includes/min/input-phone-mini.js b/public_html/js/includes/min/input-phone-mini.js similarity index 100% rename from js/includes/min/input-phone-mini.js rename to public_html/js/includes/min/input-phone-mini.js diff --git a/js/includes/min/input-phone-subject.js b/public_html/js/includes/min/input-phone-subject.js similarity index 100% rename from js/includes/min/input-phone-subject.js rename to public_html/js/includes/min/input-phone-subject.js diff --git a/js/lib/api.js b/public_html/js/lib/api.js old mode 100755 new mode 100644 similarity index 100% rename from js/lib/api.js rename to public_html/js/lib/api.js diff --git a/js/lib/crc32.js b/public_html/js/lib/crc32.js similarity index 100% rename from js/lib/crc32.js rename to public_html/js/lib/crc32.js diff --git a/js/lib/element-object.js b/public_html/js/lib/element-object.js similarity index 100% rename from js/lib/element-object.js rename to public_html/js/lib/element-object.js diff --git a/js/lib/form-builder.js b/public_html/js/lib/form-builder.js similarity index 100% rename from js/lib/form-builder.js rename to public_html/js/lib/form-builder.js diff --git a/js/lib/form-builder/main-min.js b/public_html/js/lib/form-builder/main-min.js similarity index 100% rename from js/lib/form-builder/main-min.js rename to public_html/js/lib/form-builder/main-min.js diff --git a/js/lib/form-builder/main.js b/public_html/js/lib/form-builder/main.js similarity index 100% rename from js/lib/form-builder/main.js rename to public_html/js/lib/form-builder/main.js diff --git a/js/lib/form-deflater.js b/public_html/js/lib/form-deflater.js similarity index 100% rename from js/lib/form-deflater.js rename to public_html/js/lib/form-deflater.js diff --git a/js/lib/html-builder.js b/public_html/js/lib/html-builder.js similarity index 100% rename from js/lib/html-builder.js rename to public_html/js/lib/html-builder.js diff --git a/js/lib/input-checker.js b/public_html/js/lib/input-checker.js old mode 100755 new mode 100644 similarity index 100% rename from js/lib/input-checker.js rename to public_html/js/lib/input-checker.js diff --git a/js/lib/local-storage-interface.js b/public_html/js/lib/local-storage-interface.js similarity index 100% rename from js/lib/local-storage-interface.js rename to public_html/js/lib/local-storage-interface.js diff --git a/js/lib/min/api.js b/public_html/js/lib/min/api.js similarity index 100% rename from js/lib/min/api.js rename to public_html/js/lib/min/api.js diff --git a/js/lib/min/crc32.js b/public_html/js/lib/min/crc32.js similarity index 100% rename from js/lib/min/crc32.js rename to public_html/js/lib/min/crc32.js diff --git a/js/lib/min/element-object.js b/public_html/js/lib/min/element-object.js similarity index 100% rename from js/lib/min/element-object.js rename to public_html/js/lib/min/element-object.js diff --git a/js/lib/min/form-deflater.js b/public_html/js/lib/min/form-deflater.js similarity index 100% rename from js/lib/min/form-deflater.js rename to public_html/js/lib/min/form-deflater.js diff --git a/js/lib/min/html-builder.js b/public_html/js/lib/min/html-builder.js similarity index 100% rename from js/lib/min/html-builder.js rename to public_html/js/lib/min/html-builder.js diff --git a/js/lib/min/input-checker.js b/public_html/js/lib/min/input-checker.js similarity index 100% rename from js/lib/min/input-checker.js rename to public_html/js/lib/min/input-checker.js diff --git a/js/lib/min/local-storage-interface.js b/public_html/js/lib/min/local-storage-interface.js similarity index 100% rename from js/lib/min/local-storage-interface.js rename to public_html/js/lib/min/local-storage-interface.js diff --git a/js/lib/min/notif.js b/public_html/js/lib/min/notif.js similarity index 100% rename from js/lib/min/notif.js rename to public_html/js/lib/min/notif.js diff --git a/js/lib/min/page-manager.js b/public_html/js/lib/min/page-manager.js similarity index 100% rename from js/lib/min/page-manager.js rename to public_html/js/lib/min/page-manager.js diff --git a/js/lib/min/reset.js b/public_html/js/lib/min/reset.js similarity index 100% rename from js/lib/min/reset.js rename to public_html/js/lib/min/reset.js diff --git a/js/lib/min/shortcut-manager.js b/public_html/js/lib/min/shortcut-manager.js similarity index 100% rename from js/lib/min/shortcut-manager.js rename to public_html/js/lib/min/shortcut-manager.js diff --git a/js/lib/notif.js b/public_html/js/lib/notif.js similarity index 100% rename from js/lib/notif.js rename to public_html/js/lib/notif.js diff --git a/js/lib/page-manager.js b/public_html/js/lib/page-manager.js old mode 100755 new mode 100644 similarity index 100% rename from js/lib/page-manager.js rename to public_html/js/lib/page-manager.js diff --git a/js/lib/reset.js b/public_html/js/lib/reset.js old mode 100755 new mode 100644 similarity index 100% rename from js/lib/reset.js rename to public_html/js/lib/reset.js diff --git a/js/lib/shortcut-manager.js b/public_html/js/lib/shortcut-manager.js similarity index 100% rename from js/lib/shortcut-manager.js rename to public_html/js/lib/shortcut-manager.js diff --git a/js/min/action-script.js b/public_html/js/min/action-script.js similarity index 100% rename from js/min/action-script.js rename to public_html/js/min/action-script.js diff --git a/src/upload/.htaccess b/public_html/src/dynamic/.htaccess old mode 100755 new mode 100644 similarity index 100% rename from src/upload/.htaccess rename to public_html/src/dynamic/.htaccess diff --git a/src/static/container/active.svg b/public_html/src/static/container/active.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/container/active.svg rename to public_html/src/static/container/active.svg diff --git a/src/static/container/back.svg b/public_html/src/static/container/back.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/container/back.svg rename to public_html/src/static/container/back.svg diff --git a/src/static/container/bottom_arrow.svg b/public_html/src/static/container/bottom_arrow.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/container/bottom_arrow.svg rename to public_html/src/static/container/bottom_arrow.svg diff --git a/src/static/container/card.svg b/public_html/src/static/container/card.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/container/card.svg rename to public_html/src/static/container/card.svg diff --git a/src/static/container/checked.svg b/public_html/src/static/container/checked.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/container/checked.svg rename to public_html/src/static/container/checked.svg diff --git a/src/static/container/close.svg b/public_html/src/static/container/close.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/container/close.svg rename to public_html/src/static/container/close.svg diff --git a/src/static/container/dot.svg b/public_html/src/static/container/dot.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/container/dot.svg rename to public_html/src/static/container/dot.svg diff --git a/src/static/container/group.svg b/public_html/src/static/container/group.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/container/group.svg rename to public_html/src/static/container/group.svg diff --git a/src/static/container/hole.svg b/public_html/src/static/container/hole.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/container/hole.svg rename to public_html/src/static/container/hole.svg diff --git a/src/static/container/mail.svg b/public_html/src/static/container/mail.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/container/mail.svg rename to public_html/src/static/container/mail.svg diff --git a/src/static/container/phone_number.svg b/public_html/src/static/container/phone_number.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/container/phone_number.svg rename to public_html/src/static/container/phone_number.svg diff --git a/src/static/container/switch-both.svg b/public_html/src/static/container/switch-both.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/container/switch-both.svg rename to public_html/src/static/container/switch-both.svg diff --git a/src/static/container/switch-left.svg b/public_html/src/static/container/switch-left.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/container/switch-left.svg rename to public_html/src/static/container/switch-left.svg diff --git a/src/static/container/token.svg b/public_html/src/static/container/token.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/container/token.svg rename to public_html/src/static/container/token.svg diff --git a/src/static/container/user.svg b/public_html/src/static/container/user.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/container/user.svg rename to public_html/src/static/container/user.svg diff --git a/src/static/credits/cnrs.jpg b/public_html/src/static/credits/cnrs.jpg old mode 100755 new mode 100644 similarity index 100% rename from src/static/credits/cnrs.jpg rename to public_html/src/static/credits/cnrs.jpg diff --git a/src/static/credits/sms.jpg b/public_html/src/static/credits/sms.jpg old mode 100755 new mode 100644 similarity index 100% rename from src/static/credits/sms.jpg rename to public_html/src/static/credits/sms.jpg diff --git a/src/static/credits/sms.svg b/public_html/src/static/credits/sms.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/credits/sms.svg rename to public_html/src/static/credits/sms.svg diff --git a/src/static/credits/univ_midi.png b/public_html/src/static/credits/univ_midi.png old mode 100755 new mode 100644 similarity index 100% rename from src/static/credits/univ_midi.png rename to public_html/src/static/credits/univ_midi.png diff --git a/src/static/credits/ut2.png b/public_html/src/static/credits/ut2.png old mode 100755 new mode 100644 similarity index 100% rename from src/static/credits/ut2.png rename to public_html/src/static/credits/ut2.png diff --git a/src/static/header/expand.svg b/public_html/src/static/header/expand.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/header/expand.svg rename to public_html/src/static/header/expand.svg diff --git a/src/static/header/nopic.svg b/public_html/src/static/header/nopic.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/header/nopic.svg rename to public_html/src/static/header/nopic.svg diff --git a/src/static/icon.svg b/public_html/src/static/icon.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/icon.svg rename to public_html/src/static/icon.svg diff --git a/src/static/iconv2.svg b/public_html/src/static/iconv2.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/iconv2.svg rename to public_html/src/static/iconv2.svg diff --git a/src/static/iconv3.svg b/public_html/src/static/iconv3.svg similarity index 100% rename from src/static/iconv3.svg rename to public_html/src/static/iconv3.svg diff --git a/src/static/loader.svg b/public_html/src/static/loader.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/loader.svg rename to public_html/src/static/loader.svg diff --git a/src/static/menu-side/analytics.svg b/public_html/src/static/menu-side/analytics.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/menu-side/analytics.svg rename to public_html/src/static/menu-side/analytics.svg diff --git a/src/static/menu-side/charts.svg b/public_html/src/static/menu-side/charts.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/menu-side/charts.svg rename to public_html/src/static/menu-side/charts.svg diff --git a/src/static/menu-side/circle.svg b/public_html/src/static/menu-side/circle.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/menu-side/circle.svg rename to public_html/src/static/menu-side/circle.svg diff --git a/src/static/menu-side/home.svg b/public_html/src/static/menu-side/home.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/menu-side/home.svg rename to public_html/src/static/menu-side/home.svg diff --git a/src/static/menu-side/input.svg b/public_html/src/static/menu-side/input.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/menu-side/input.svg rename to public_html/src/static/menu-side/input.svg diff --git a/src/static/menu-side/settings.svg b/public_html/src/static/menu-side/settings.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/menu-side/settings.svg rename to public_html/src/static/menu-side/settings.svg diff --git a/src/static/menu-side/sub-active.svg b/public_html/src/static/menu-side/sub-active.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/menu-side/sub-active.svg rename to public_html/src/static/menu-side/sub-active.svg diff --git a/src/static/menu-side/sub.svg b/public_html/src/static/menu-side/sub.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/menu-side/sub.svg rename to public_html/src/static/menu-side/sub.svg diff --git a/src/static/sub-menu-side/analytics.svg b/public_html/src/static/sub-menu-side/analytics.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/sub-menu-side/analytics.svg rename to public_html/src/static/sub-menu-side/analytics.svg diff --git a/src/static/sub-menu-side/create.svg b/public_html/src/static/sub-menu-side/create.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/sub-menu-side/create.svg rename to public_html/src/static/sub-menu-side/create.svg diff --git a/src/static/sub-menu-side/edit.svg b/public_html/src/static/sub-menu-side/edit.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/sub-menu-side/edit.svg rename to public_html/src/static/sub-menu-side/edit.svg diff --git a/src/static/sub-menu-side/filter.svg b/public_html/src/static/sub-menu-side/filter.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/sub-menu-side/filter.svg rename to public_html/src/static/sub-menu-side/filter.svg diff --git a/src/static/sub-menu-side/password.svg b/public_html/src/static/sub-menu-side/password.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/sub-menu-side/password.svg rename to public_html/src/static/sub-menu-side/password.svg diff --git a/src/static/sub-menu-side/remove.svg b/public_html/src/static/sub-menu-side/remove.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/sub-menu-side/remove.svg rename to public_html/src/static/sub-menu-side/remove.svg diff --git a/src/static/sub-menu-side/search.svg b/public_html/src/static/sub-menu-side/search.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/sub-menu-side/search.svg rename to public_html/src/static/sub-menu-side/search.svg diff --git a/src/static/sub-menu-side/sync.svg b/public_html/src/static/sub-menu-side/sync.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/sub-menu-side/sync.svg rename to public_html/src/static/sub-menu-side/sync.svg diff --git a/src/static/sub-menu-side/view.svg b/public_html/src/static/sub-menu-side/view.svg old mode 100755 new mode 100644 similarity index 100% rename from src/static/sub-menu-side/view.svg rename to public_html/src/static/sub-menu-side/view.svg diff --git a/public_html/src/upload/.htaccess b/public_html/src/upload/.htaccess new file mode 100644 index 0000000..93169e4 --- /dev/null +++ b/public_html/src/upload/.htaccess @@ -0,0 +1,2 @@ +Order deny,allow +Deny from all diff --git a/src/upload/local_data/julien.figeac.json b/public_html/src/upload/local_data/julien.figeac.json old mode 100755 new mode 100644 similarity index 100% rename from src/upload/local_data/julien.figeac.json rename to public_html/src/upload/local_data/julien.figeac.json diff --git a/src/upload/local_data/xdrm.json b/public_html/src/upload/local_data/xdrm.json old mode 100755 new mode 100644 similarity index 100% rename from src/upload/local_data/xdrm.json rename to public_html/src/upload/local_data/xdrm.json diff --git a/tmp/phone_08bed8f18079a818ccd77c0a235541c6e9afddb0.json b/public_html/tmp/phone_08bed8f18079a818ccd77c0a235541c6e9afddb0.json similarity index 100% rename from tmp/phone_08bed8f18079a818ccd77c0a235541c6e9afddb0.json rename to public_html/tmp/phone_08bed8f18079a818ccd77c0a235541c6e9afddb0.json diff --git a/view.php b/public_html/view.php old mode 100755 new mode 100644 similarity index 99% rename from view.php rename to public_html/view.php index d4490ca..748cf55 --- a/view.php +++ b/public_html/view.php @@ -1,4 +1,4 @@ - + diff --git a/view/css/dashboard.css b/public_html/view/css/dashboard.css similarity index 100% rename from view/css/dashboard.css rename to public_html/view/css/dashboard.css diff --git a/view/css/data.css b/public_html/view/css/data.css similarity index 100% rename from view/css/data.css rename to public_html/view/css/data.css diff --git a/view/css/data.min.css b/public_html/view/css/data.min.css similarity index 100% rename from view/css/data.min.css rename to public_html/view/css/data.min.css diff --git a/view/css/input.css b/public_html/view/css/input.css similarity index 100% rename from view/css/input.css rename to public_html/view/css/input.css diff --git a/view/css/settings.css b/public_html/view/css/settings.css similarity index 100% rename from view/css/settings.css rename to public_html/view/css/settings.css diff --git a/view/dashboard.php b/public_html/view/dashboard.php old mode 100755 new mode 100644 similarity index 86% rename from view/dashboard.php rename to public_html/view/dashboard.php index 91f2b14..6bf5494 --- a/view/dashboard.php +++ b/public_html/view/dashboard.php @@ -1,8 +1,8 @@ - diff --git a/view/data.php b/public_html/view/data.php old mode 100755 new mode 100644 similarity index 95% rename from view/data.php rename to public_html/view/data.php index ffd0ac1..a3f42d9 --- a/view/data.php +++ b/public_html/view/data.php @@ -1,8 +1,8 @@ - diff --git a/view/iexplorer-to-call-log.php b/public_html/view/iexplorer-to-call-log.php similarity index 96% rename from view/iexplorer-to-call-log.php rename to public_html/view/iexplorer-to-call-log.php index cc3596f..f402cbc 100644 --- a/view/iexplorer-to-call-log.php +++ b/public_html/view/iexplorer-to-call-log.php @@ -1,7 +1,7 @@ - diff --git a/view/js/charts-min.js b/public_html/view/js/charts-min.js similarity index 100% rename from view/js/charts-min.js rename to public_html/view/js/charts-min.js diff --git a/view/js/dashboard.js b/public_html/view/js/dashboard.js similarity index 100% rename from view/js/dashboard.js rename to public_html/view/js/dashboard.js diff --git a/view/js/data-min.js b/public_html/view/js/data-min.js similarity index 100% rename from view/js/data-min.js rename to public_html/view/js/data-min.js diff --git a/view/js/data.js b/public_html/view/js/data.js similarity index 100% rename from view/js/data.js rename to public_html/view/js/data.js diff --git a/view/js/input-min.js b/public_html/view/js/input-min.js similarity index 100% rename from view/js/input-min.js rename to public_html/view/js/input-min.js diff --git a/view/js/input.js b/public_html/view/js/input.js similarity index 100% rename from view/js/input.js rename to public_html/view/js/input.js diff --git a/view/js/min/input.js b/public_html/view/js/min/input.js similarity index 100% rename from view/js/min/input.js rename to public_html/view/js/min/input.js diff --git a/view/js/settings-min.js b/public_html/view/js/settings-min.js similarity index 100% rename from view/js/settings-min.js rename to public_html/view/js/settings-min.js diff --git a/view/js/settings.js b/public_html/view/js/settings.js similarity index 100% rename from view/js/settings.js rename to public_html/view/js/settings.js diff --git a/view/settings.php b/public_html/view/settings.php old mode 100755 new mode 100644 similarity index 96% rename from view/settings.php rename to public_html/view/settings.php index e2e8987..3faefd3 --- a/view/settings.php +++ b/public_html/view/settings.php @@ -1,9 +1,9 @@ -delete(284); $db->close(); // $start = microtime(true); - // $f = new SplFileObject('compress.zlib://'.__ROOT__.'/tmp/test1.gz', 'w'); + // $f = new SplFileObject('compress.zlib://'.__BUILD__.'/tmp/test1.gz', 'w'); // $f->fwrite('SOME TEXT'); // $f=null; // var_dump('writing time : '.(microtime(true)-$start)); // // // $start = microtime(true); - // $f2 = new SplFileObject('compress.zlib://'.__ROOT__.'/tmp/test1.gz', 'r'); + // $f2 = new SplFileObject('compress.zlib://'.__BUILD__.'/tmp/test1.gz', 'r'); // $read = $f2->fgets(); // $f2=null; // var_dump('reading time : '.(microtime(true)-$start)); @@ -129,7 +129,7 @@ /* [4] Analyse des performances de `lightdb` =========================================================*/ // $start = microtime(true); - // $db = new lightdb('test1', __ROOT__.'/tmp/'); + // $db = new lightdb('test1', __BUILD__.'/tmp/'); // // /* (0) Création des objets à insérer */ // $object_10 = []; diff --git a/phpunit/bootstrap.php b/test/phpunit/bootstrap.php old mode 100755 new mode 100644 similarity index 75% rename from phpunit/bootstrap.php rename to test/phpunit/bootstrap.php index 7780693..cf98a9b --- a/phpunit/bootstrap.php +++ b/test/phpunit/bootstrap.php @@ -1,4 +1,4 @@ - + +
+ ++ | Code Coverage |
+ |||||||||
+ | Classes and Traits |
+ Functions and Methods |
+ Lines |
+ |||||||
Total | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+
+
+
+ |
+ 50.00% |
+ 3 / 6 |
+ CRAP | +
+
+
+ |
+ 56.52% |
+ 13 / 23 |
+
ModuleAnswer | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+
+
+
+ |
+ 50.00% |
+ 3 / 6 |
+ 15.66 | +
+
+
+ |
+ 56.52% |
+ 13 / 23 |
+
__construct | +
+
+
+ |
+ 100.00% |
+ 1 / 1 |
+ 1 | +
+
+
+ |
+ 100.00% |
+ 3 / 3 |
+ |||
append | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+ 2 | +
+
+
+ |
+ 0.00% |
+ 0 / 2 |
+ |||
appendAll | +
+
+
+ |
+ 100.00% |
+ 1 / 1 |
+ 3 | +
+
+
+ |
+ 100.00% |
+ 7 / 7 |
+ |||
get | +
+
+
+ |
+ 100.00% |
+ 1 / 1 |
+ 2 | +
+
+
+ |
+ 100.00% |
+ 3 / 3 |
+ |||
getAll | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+ 2 | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+ |||
serialize | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+ 2 | +
+
+
+ |
+ 0.00% |
+ 0 / 7 |
+
<?php | |
namespace manager; | |
// FORMAT: | |
// | |
// path: "nomModule/nomMethode" | |
// data1: {donnee1} | |
// data2: {donnee2} | |
// ... | |
// | |
// | |
// | |
// | |
class ModuleAnswer{ | |
// Attributs prives utiles (initialisation) | |
private $data; | |
public $error; | |
/* CONSTRUCTEUR D'UNE REPONSE DE MODULE | |
* | |
* @error<ModuleError> Erreur passee par la requete (si existe) | |
* | |
*/ | |
public function __construct($error=ManagerError::Success){ | |
$this->data = array(); | |
$this->error = $error; | |
} | |
/* AJOUTE UNE DONNEE A LA REPONSE | |
* | |
* @key<String> Le nom de la valeur a ajouter | |
* @value<mixed*> La valeur a ajouter | |
* | |
*/ | |
public function append($key, $value){ | |
// Ajoute une entree pour la cle @key et de valeur @value | |
$this->data[$key] = $value; | |
return $this; | |
} | |
/* AJOUTE TOUTES LES DONNEES A LA REPONSE | |
* | |
* @dataset<Array> Le tableau associatif correspondant a la reponse | |
* | |
*/ | |
public function appendAll($dataset){ | |
// Si ce n'est pas un tableau, on ne fais rien | |
if( !is_array($dataset) ) return $this; | |
// Si une valeur contient une erreur | |
if( array_key_exists('ModuleError', $dataset) ){ | |
// On definit cette erreur | |
$this->error = $dataset['ModuleError']; | |
// On enleve cette entree des donnees | |
unset($dataset['ModuleError']); | |
} | |
// Ajoute une entree pour la cle @key et de valeur @value | |
$this->data = $dataset; | |
return $this; | |
} | |
/* RECUPERE UNE DONNEE DE LA REPONSE | |
* | |
* @key<String> Le nom de la valeur a recuperer | |
* | |
* @return value<mixed*> La valeur a cette cle | |
* @return error<null> Retourne NULL si aucune valeur pour cette cle | |
* | |
*/ | |
public function get($key){ | |
// Si la valeur de cle @key n'existe pas, on retourne NULL | |
if( !isset($this->data[$key]) ) | |
return null; | |
// Sinon, on retourne la valeur associee | |
return $this->data[$key]; | |
} | |
/* RECUPERE TOUTES LES DONNEES DE LA REPONSE | |
* | |
* @return data<Array> Les donnees de la reponse | |
* | |
*/ | |
public function getAll(){ | |
// Sinon, on retourne la valeur associee | |
return $this->data; | |
} | |
/* SERIALISATION A PARTIR DES DONNEES | |
* | |
* @return json<String> Retourne les donnees serialisees | |
* | |
*/ | |
public function serialize(){ | |
// On rajoute l'erreur au message | |
$returnData = array_merge( | |
array( | |
'ModuleError' => $this->error, | |
'ErrorDescription' => ManagerError::explicit($this->error) | |
), | |
$this->data | |
); | |
return json_encode($returnData); | |
} | |
} | |
?> |
+ | Code Coverage |
+ |||||||||
+ | Classes and Traits |
+ Functions and Methods |
+ Lines |
+ |||||||
Total | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+
+
+
+ |
+ 50.00% |
+ 4 / 8 |
+ CRAP | +
+
+
+ |
+ 86.02% |
+ 80 / 93 |
+
ModuleRequest | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+
+
+
+ |
+ 50.00% |
+ 4 / 8 |
+ 51.78 | +
+
+
+ |
+ 86.02% |
+ 80 / 93 |
+
__construct | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+ 8.06 | +
+
+
+ |
+ 90.48% |
+ 19 / 21 |
+ |||
dispatch | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+ 3.10 | +
+
+
+ |
+ 77.78% |
+ 7 / 9 |
+ |||
fromString | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+ 12 | +
+
+
+ |
+ 0.00% |
+ 0 / 8 |
+ |||
fromPost | +
+
+
+ |
+ 100.00% |
+ 1 / 1 |
+ 3 | +
+
+
+ |
+ 100.00% |
+ 6 / 6 |
+ |||
checkPath | +
+
+
+ |
+ 100.00% |
+ 1 / 1 |
+ 4 | +
+
+
+ |
+ 100.00% |
+ 15 / 15 |
+ |||
checkPermission | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+ 8.01 | +
+
+
+ |
+ 94.74% |
+ 18 / 19 |
+ |||
checkParams | +
+
+
+ |
+ 100.00% |
+ 1 / 1 |
+ 16 | +
+
+
+ |
+ 100.00% |
+ 14 / 14 |
+ |||
getFunctionCaller | +
+
+
+ |
+ 100.00% |
+ 1 / 1 |
+ 1 | +
+
+
+ |
+ 100.00% |
+ 1 / 1 |
+
<?php | |
namespace manager; | |
use \manager\Database; | |
class ModuleRequest{ | |
// Constantes | |
public static $config_path = 'f/json/modules/conf'; | |
// Attributs prives utiles (initialisation) | |
private $path; | |
private $params; | |
private $modules; | |
// Contiendra la reponse a la requete | |
public $answer; | |
// Contiendra l'etat de la requete | |
public $error; | |
/* CONSTRUCTEUR D'UNE REQUETE DE MODULE | |
* | |
* @path<String> Chemin de delegation ("module/methode") | |
* @param<Array> Tableau associatif contenant les parametres utiles au traitement | |
* @token<String> Token d'acces a l'api (OPTIONNEL) | |
* | |
* @return status<Boolean> Retourne si oui ou non tout s'est bien passe | |
* | |
*/ | |
public function __construct($path=null, $params=null, $token=null){ | |
// Si pas parametre manquant, on quitte | |
if( $path == null ){ | |
$this->error = ManagerError::MissingPath; | |
return false; | |
} | |
/* [0] On met a jour la configuration | |
=========================================================*/ | |
// Modules specifies | |
$this->modules = json_decode( ResourceDispatcher::getResource(self::$config_path), true ); | |
// Gestion de l'erreur de parsage | |
if( $this->modules == null ){ | |
$this->error = ManagerError::ParsingFailed; | |
return false; | |
} | |
/* [1] Verification des types des parametres | |
=========================================================*/ | |
// Type de @path | |
if( !is_string($path) ){ // Si le type est incorrect | |
$this->error = ManagerError::WrongPathModule; | |
return false; // On retourne FALSE, si erreur | |
} | |
// Type de @data (optionnel) | |
$params = (is_array($params)) ? $params : array(); | |
/* [2] Verification du chemin (existence module+methode) | |
=========================================================*/ | |
if( !$this->checkPath($path) ) // Verification de la coherence du chemin + attribution | |
return false; | |
/* [3] Verification des droits | |
=========================================================*/ | |
if( !$this->checkPermission($token) ) // Si on a pas les droits | |
return false; | |
/* [4] Verification des parametres (si @type est defini) | |
=========================================================*/ | |
if( !$this->checkParams($params) ){ // Verification de tous les types | |
$this->error = ManagerError::ParamError; | |
return false; | |
} | |
/* [5] Construction de l'objet | |
=========================================================*/ | |
$this->params = $params; | |
$this->error = ManagerError::Success; | |
return true; // On retourne que tout s'est bien passe | |
} | |
/* EXECUTE LE TRAITEMENT ASSOCIE ET REMPLIE LA REPONSE | |
* | |
* @return answer<ModuleResponse> Retourne une reponse de type <ModuleResponse> si tout s'est bien passe | |
* | |
*/ | |
public function dispatch(){ | |
/* [1] On verifie qu'aucune erreur n'a ete signalee | |
=========================================================*/ | |
if( $this->error != ManagerError::Success ) // si il y a une erreur | |
return new ModuleResponse($this->error); // on la passe a la reponse | |
/* [2] On verifie que la methode est amorcable | |
=========================================================*/ | |
if( !is_callable($this->getFunctionCaller()) ){ | |
$this->error = ManagerError::UncallableMethod; | |
return new ModuleResponse($this->error); | |
} | |
/* [3] On amorce la methode | |
=========================================================*/ | |
$returned = call_user_func( $this->getFunctionCaller(), $this->params ); | |
/* [4] Gestion de la reponse | |
=========================================================*/ | |
$answer = new ModuleResponse($this->error); | |
$answer->appendAll($returned); | |
return $answer; | |
} | |
/* DESERIALISATION ET CREATION D'UN OBJET | |
* | |
* @jsonString<String> Json au format string contenant les donnees | |
* | |
* @return instance<ModuleRequest> Retourne un objet de type <ModuleRequest> | |
* | |
*/ | |
public static function fromString($jsonString){ | |
$json = json_decode( $jsonString, true ); | |
// Verification du parsage | |
if( $json == null ) | |
return new ModuleRequest(); | |
// Verification des parametres | |
if( !isset($json['path']) ) | |
return new ModuleRequest(); | |
// On definit $params au cas ou il soit vide | |
$params = $json; | |
// On retire le @path de @params | |
unset($params['path']); | |
return new ModuleRequest($json['path'], $params); | |
} | |
/* DESERIALISATION A PARTIR DES DONNEES POST | |
* | |
* @post<Array> Tableau des donnes $_POST => @path + @data (opt) | |
* | |
* @return instance<ModuleRequest> Retourne un objet de type <ModuleRequest> | |
* | |
*/ | |
public static function fromPost($post){ | |
/* [0] Verification de l'authentification | |
=========================================================*/ | |
// On definit le token | |
$token = isset($_SERVER['PHP_AUTH_DIGEST']) ? $_SERVER['PHP_AUTH_DIGEST'] : null; | |
/* [1] On verifie que le @path est renseigne | |
=========================================================*/ | |
if( !isset($post['path']) ) | |
return new ModuleRequest(); | |
/* [2] On verifie que @data est renseigne | |
=========================================================*/ | |
// Si variable n'existe pas, on cree un tableau vide | |
$params = $post; | |
// On retire le @path de @params | |
unset($params['path']); | |
/* [3] On retourne une instance de <ModuleRequest> | |
=========================================================*/ | |
// On cree notre requete avec le token | |
return new ModuleRequest($post['path'], $params, $token); | |
} | |
/* VERIFICATION DU FORMAT ET DE LA COHERENCE DU CHEMIN SPECIFIE | |
* | |
* @path<String> String correspondant au chemin de delegation ("module/methode") | |
* | |
* @return validity<Boolean> Retourne si oui ou non l'objet est correct | |
* | |
*/ | |
private function checkPath($path){ | |
/* [1] Verification format general | |
=========================================================*/ | |
if( !preg_match('#^([\w_-]+)/([\w_-]+)$#i', $path, $matches) ){ // Si mauvais format | |
$this->error = ManagerError::WrongPathModule; | |
return false; | |
} | |
// On recupere les donnes de la regex | |
$module = $matches[1]; | |
$method = $matches[2]; | |
/* [2] Verification de l'existence du module (conf) | |
=========================================================*/ | |
if( !array_key_exists($module, $this->modules) ){ // Si le module n'est pas specifie dans la conf | |
$this->error = ManagerError::UnknownModule; | |
return false; // On retourne FALSE, si erreur | |
} | |
/* [3] Verification de l'existence de la methode (conf) | |
=========================================================*/ | |
if( array_key_exists($method, $this->modules[$module]) === false ){ // Si la methode n'est pas specifie dans la conf | |
$this->error = ManagerError::UnknownMethod; | |
return false; // On retourne FALSE, si erreur | |
} | |
/* [4] Enregistrement du chemin et renvoi de SUCCESS | |
=========================================================*/ | |
$this->path = array( | |
'module' => $module, | |
'method' => $method | |
); | |
return true; | |
} | |
/* RETOURNE SI ON A LA PERMISSION D'EXECUTER CETTE METHODE | |
* | |
* @token<String> Token d'acces a l'API (OPTIONNEL) | |
* | |
* @return permission<bool> Retourne si on a les droits ou pas pour executer cette methode | |
* | |
*/ | |
private function checkPermission($token=null){ | |
/* [1] On recupere les informations utiles | |
=========================================================*/ | |
// On recupere le nom de la methode | |
$method = $this->modules[$this->path['module']][$this->path['method']]; | |
// Si aucune permission n'est definie | |
if( !isset($method['permissions']) ) return true; | |
/* [2] Gestion si un @token est defini | |
=========================================================*/ | |
if( Database::check('sha1', $token) ){ | |
/* (1) On verifie que le token est valide */ | |
$checkToken = new Repo('token/check', array($token) ); | |
$token_permissions = $checkToken->answer(); | |
// Si le token est invalide, on retourne une erreur -> FAUX | |
if( $token_permissions === false ){ | |
$this->error = ManagerError::TokenError; | |
return false; | |
} | |
$local_permissions = $token_permissions; | |
/* [3] Gestion si aucun token, avec utilisateur connecté | |
=========================================================*/ | |
}else if( isset($_SESSION['permission']) ) | |
$local_permissions = $_SESSION['permission']; | |
// Si ni token, ni SESSION, erreur | |
else{ | |
$this->error = ManagerError::PermissionError; | |
return false; | |
} | |
/* [4] Verification des droits parmi les permissions donnees | |
=========================================================*/ | |
/* (1) On recupere la liste des permissions possibles */ | |
$permissions = $method['permissions']; | |
/* (2) Si aucune permission n'est definie, on laisse l'acces */ | |
if( count($permissions) == 0 ) return true; | |
/* (3) On verifie qu'il y a au moins une permission ok */ | |
foreach($permissions as $permission) | |
if( in_array($permission, $local_permissions) ) return true; | |
/* [5] On retourne FAUX si aucun droit n'a ete trouve | |
=========================================================*/ | |
$this->error = ManagerError::PermissionError; | |
return false; | |
} | |
/* VERIFICATION DU TYPE DES PARAMETRES ENVOYES | |
* | |
* @params<Array> Tableau associatif contenant les parametres | |
* @params peut se voir rajouter les paramètres optionnels s'ils ne sont pas renseignés (initialisés à NULL) | |
* | |
* @return correct<bool> Retourne si oui ou non les parametres ont le bon type | |
* | |
*/ | |
private function checkParams(&$params){ | |
/* [1] On verifie qu'il ne manque aucun parametre | |
=========================================================*/ | |
// Si @params n'est pas un tableau | |
if( !is_array($params) ) return false; | |
$method = $this->modules[$this->path['module']][$this->path['method']]; | |
/* [2] Si le type est defini, pour chaque param, on teste | |
=========================================================*/ | |
foreach($method['parameters'] as $name=>$paramsdata){ | |
/* (1) On récupère si le paramètre est optionnel ou pas */ | |
$optional = isset($paramsdata['optional']) && $paramsdata['optional'] === true; | |
/* (2) Récupère si le paramètre est un fichier et définit comme de type 'FILE' */ | |
$isFile = isset($paramsdata['type']) && $paramsdata['type'] == 'FILE' && isset($_FILES[$name]); | |
/* (3) Si le paramètre est obligatoire et qu'il n'est pas donné -> erreur */ | |
if( !isset($params[$name]) && !$optional && !$isFile ) return false; | |
/* (4) Si le type n'est pas defini, on a pas besoin de le vérifier */ | |
if( !isset($paramsdata['type']) ) continue; | |
/* (5) Si le paramètre est optionnel et n'est pas donné */ | |
if( $isFile || $optional && (!isset($params[$name]) || is_null($params[$name])) ){ | |
// On le crée le param optionnel avec la valeur NULL | |
$params[$name] = null; | |
// On donne une référence vers le fichier, si c'en est un | |
if( $isFile ) | |
$params[$name] = &$_FILES[$name]; | |
continue; // On passe au paramètre suivant | |
/* (6) Si le paramètre est renseigné */ | |
}else | |
// Si la verification est fausse, on retourne faux | |
if( !Database::check($paramsdata['type'], $params[$name]) ) return false; | |
} | |
/* [3] Gestion du retour, si tout s'est bien passe | |
=========================================================*/ | |
return true; | |
} | |
/* RENVOI LE CHEMIN D'AMORCAGE DE LA METHODE | |
* | |
* @return path<Array> Retourne le chemin d'amorcage de la requete | |
* | |
*/ | |
private function getFunctionCaller(){ | |
return array( '\\manager\\module\\'.$this->path['module'], $this->path['method'] ); | |
} | |
} | |
?> |
+ | Code Coverage |
+ |||||||||
+ | Classes and Traits |
+ Functions and Methods |
+ Lines |
+ |||||||
Total | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+
+
+
+ |
+ 50.00% |
+ 3 / 6 |
+ CRAP | +
+
+
+ |
+ 56.52% |
+ 13 / 23 |
+
ModuleResponse | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+
+
+
+ |
+ 50.00% |
+ 3 / 6 |
+ 15.66 | +
+
+
+ |
+ 56.52% |
+ 13 / 23 |
+
__construct | +
+
+
+ |
+ 100.00% |
+ 1 / 1 |
+ 1 | +
+
+
+ |
+ 100.00% |
+ 3 / 3 |
+ |||
append | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+ 2 | +
+
+
+ |
+ 0.00% |
+ 0 / 2 |
+ |||
appendAll | +
+
+
+ |
+ 100.00% |
+ 1 / 1 |
+ 3 | +
+
+
+ |
+ 100.00% |
+ 7 / 7 |
+ |||
get | +
+
+
+ |
+ 100.00% |
+ 1 / 1 |
+ 2 | +
+
+
+ |
+ 100.00% |
+ 3 / 3 |
+ |||
getAll | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+ 2 | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+ |||
serialize | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+ 2 | +
+
+
+ |
+ 0.00% |
+ 0 / 7 |
+
<?php | |
namespace manager; | |
// FORMAT: | |
// | |
// path: "nomModule/nomMethode" | |
// data1: {donnee1} | |
// data2: {donnee2} | |
// ... | |
// | |
// | |
// | |
// | |
class ModuleResponse{ | |
// Attributs prives utiles (initialisation) | |
private $data; | |
public $error; | |
/* CONSTRUCTEUR D'UNE REPONSE DE MODULE | |
* | |
* @error<ModuleError> Erreur passee par la requete (si existe) | |
* | |
*/ | |
public function __construct($error=ManagerError::Success){ | |
$this->data = array(); | |
$this->error = $error; | |
} | |
/* AJOUTE UNE DONNEE A LA REPONSE | |
* | |
* @key<String> Le nom de la valeur a ajouter | |
* @value<mixed*> La valeur a ajouter | |
* | |
*/ | |
public function append($key, $value){ | |
// Ajoute une entree pour la cle @key et de valeur @value | |
$this->data[$key] = $value; | |
return $this; | |
} | |
/* AJOUTE TOUTES LES DONNEES A LA REPONSE | |
* | |
* @dataset<Array> Le tableau associatif correspondant a la reponse | |
* | |
*/ | |
public function appendAll($dataset){ | |
// Si ce n'est pas un tableau, on ne fais rien | |
if( !is_array($dataset) ) return $this; | |
// Si une valeur contient une erreur | |
if( array_key_exists('ModuleError', $dataset) ){ | |
// On definit cette erreur | |
$this->error = $dataset['ModuleError']; | |
// On enleve cette entree des donnees | |
unset($dataset['ModuleError']); | |
} | |
// Ajoute une entree pour la cle @key et de valeur @value | |
$this->data = $dataset; | |
return $this; | |
} | |
/* RECUPERE UNE DONNEE DE LA REPONSE | |
* | |
* @key<String> Le nom de la valeur a recuperer | |
* | |
* @return value<mixed*> La valeur a cette cle | |
* @return error<null> Retourne NULL si aucune valeur pour cette cle | |
* | |
*/ | |
public function get($key){ | |
// Si la valeur de cle @key n'existe pas, on retourne NULL | |
if( !isset($this->data[$key]) ) | |
return null; | |
// Sinon, on retourne la valeur associee | |
return $this->data[$key]; | |
} | |
/* RECUPERE TOUTES LES DONNEES DE LA REPONSE | |
* | |
* @return data<Array> Les donnees de la reponse | |
* | |
*/ | |
public function getAll(){ | |
// Sinon, on retourne la valeur associee | |
return $this->data; | |
} | |
/* SERIALISATION A PARTIR DES DONNEES | |
* | |
* @return json<String> Retourne les donnees serialisees | |
* | |
*/ | |
public function serialize(){ | |
// On rajoute l'erreur au message | |
$returnData = array_merge( | |
array( | |
'ModuleError' => $this->error, | |
'ErrorDescription' => ManagerError::explicit($this->error) | |
), | |
$this->data | |
); | |
return json_encode($returnData); | |
} | |
} | |
?> |
+ | Code Coverage |
+ |||||||||
+ | Classes and Traits |
+ Functions and Methods |
+ Lines |
+ |||||||
Total | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+
+
+
+ |
+ 40.00% |
+ 2 / 5 |
+ CRAP | +
+
+
+ |
+ 65.00% |
+ 26 / 40 |
+
Repo | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+
+
+
+ |
+ 40.00% |
+ 2 / 5 |
+ 24.65 | +
+
+
+ |
+ 65.00% |
+ 26 / 40 |
+
__construct | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+ 7.58 | +
+
+
+ |
+ 64.71% |
+ 11 / 17 |
+ |||
answer | +
+
+
+ |
+ 100.00% |
+ 1 / 1 |
+ 1 | +
+
+
+ |
+ 100.00% |
+ 1 / 1 |
+ |||
dispatch | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+ 3.33 | +
+
+
+ |
+ 66.67% |
+ 4 / 6 |
+ |||
checkPath | +
+
+
+ |
+ 0.00% |
+ 0 / 1 |
+ 5.02 | +
+
+
+ |
+ 60.00% |
+ 9 / 15 |
+ |||
getFunctionCaller | +
+
+
+ |
+ 100.00% |
+ 1 / 1 |
+ 1 | +
+
+
+ |
+ 100.00% |
+ 1 / 1 |
+
<?php | |
namespace manager; | |
// FORMAT: | |
// | |
// path: "nomModule/nomMethode" | |
// data1: {donnee1} | |
// data2: {donnee2} | |
// ... | |
// | |
// | |
// | |
// | |
class Repo{ | |
// Constantes | |
public static $config_path = 'f/json/repositories/conf'; | |
// Attributs prives utiles (initialisation) | |
private $path; | |
private $data; | |
private $repositories; | |
// Contiendra la reponse a la requete | |
private $answer; | |
// Contiendra l'etat de la requete | |
public $error; | |
/* CONSTRUCTEUR D'UNE REQUETE DE MODULE | |
* | |
* @path<String> Chemin de delegation ("repo/methode") | |
* @data<Array> Tableau contenant les parametres utiles au traitement | |
* | |
* @return status<Boolean> Retourne si oui ou non tout s'est bien passe | |
* | |
*/ | |
public function __construct($path=null, $data=null){ | |
// Si pas parametre manquant, on quitte | |
if( $path == null ){ | |
$this->error = ManagerError::MissingPath; | |
return false; | |
} | |
/* [0] On met a jour la configuration | |
=========================================================*/ | |
// Modules specifies | |
$this->repositories = json_decode( ResourceDispatcher::getResource(self::$config_path), true ); | |
// Gestion de l'erreur de parsage | |
if( $this->repositories == null ){ | |
$this->error = ManagerError::ParsingFailed; | |
return false; | |
} | |
/* [1] Verification des types des parametres | |
=========================================================*/ | |
// Type de @path | |
if( !is_string($path) ){ // Si le type est incorrect | |
$this->error = ManagerError::WrongPathRepo; | |
return false; // On retourne FALSE, si erreur | |
} | |
// Type de @data (optionnel) | |
$data = (is_array($data)) ? $data : array(); | |
/* [2] Verification du chemin (existence repo+methode) | |
=========================================================*/ | |
if( !$this->checkPath($path) ) // Verification de la coherence du chemin + attribution | |
return false; | |
// Gestion d'erreur interne | |
/* [3] Construction de l'objet | |
=========================================================*/ | |
$this->data = $data; | |
$this->error = ManagerError::Success; | |
/* [4] Enregistrement de la reponse | |
=========================================================*/ | |
$this->answer = $this->dispatch(); | |
return true; // On retourne que tout s'est bien passe | |
} | |
public function answer(){ | |
return $this->answer; | |
} | |
/* EXECUTE LE TRAITEMENT ASSOCIE ET REMPLIE LA REPONSE | |
* | |
* @return answer<mixed*> Retourne une reponse, si tout s'est bien passe | |
* | |
*/ | |
public function dispatch(){ | |
/* [1] On verifie qu'aucune erreur n'a ete signalee | |
=========================================================*/ | |
if( $this->error != ManagerError::Success ) // si il y a une erreur | |
return false; // on la passe a la reponse | |
/* [2] On verifie que la methode est amorcable | |
=========================================================*/ | |
if( !is_callable($this->getFunctionCaller()) ){ | |
$this->error = ManagerError::UncallableMethod; | |
return false; | |
} | |
/* [3] On amorce la methode | |
=========================================================*/ | |
return call_user_func_array( $this->getFunctionCaller(), $this->data ); | |
} | |
/* VERIFICATION DU FORMAT ET DE LA COHERENCE DU CHEMIN SPECIFIE | |
* | |
* @path<String> String correspondant au chemin de delegation ("repo/methode") | |
* | |
* @return validity<Boolean> Retourne si oui ou non l'objet est correct | |
* | |
*/ | |
private function checkPath($path){ | |
/* [1] Verification format general | |
=========================================================*/ | |
if( !preg_match('#^([\w_-]+)/([\w_-]+)$#i', $path, $matches) ){ // Si mauvais format | |
$this->error = ManagerError::WrongPathRepo; | |
return false; | |
} | |
// On recupere les donnes de la regex | |
$repository = $matches[1]; | |
$method = $matches[2]; | |
/* [2] Verification de l'existence du repo (conf) | |
=========================================================*/ | |
if( !array_key_exists($repository, $this->repositories) ){ // Si le repo n'est pas specifie dans la conf | |
$this->error = ManagerError::UnknownRepo; | |
return false; // On retourne FALSE, si erreur | |
} | |
/* [3] Verification de l'existence de la methode (conf) | |
=========================================================*/ | |
if( array_search($method, $this->repositories[$repository]) === false ){ // Si la methode n'est pas specifie dans la conf | |
$this->error = ManagerError::UnknownMethod; | |
return false; // On retourne FALSE, si erreur | |
} | |
/* [4] Enregistrement du chemin et renvoi de SUCCESS | |
=========================================================*/ | |
$this->path = array( | |
'repo' => $repository, | |
'method' => $method | |
); | |
return true; | |
} | |
/* RENVOI LE CHEMIN D'AMORCAGE DE LA METHODE | |
* | |
* @return path<Array> Retourne le chemin d'amorcage de la requete | |
* | |
*/ | |
private function getFunctionCaller(){ | |
return array( '\\manager\\repo\\'.$this->path['repo'], $this->path['method'] ); | |
} | |
} | |
?> |
Class | +Coverage | +
---|---|
parentRepo | 0% |
sessionManager | 6% |
token | 15% |
ModuleResponse | 56% |
module | 57% |
Repo | 65% |
ResourceDispatcher | 68% |
DataBase | 85% |
ModuleRequest | 86% |
Class | +CRAP | +
---|---|
parentRepo | 210 |
token | 115 |
sessionManager | 110 |
DataBase | 66 |
ModuleRequest | 51 |
ResourceDispatcher | 49 |
Repo | 24 |
ModuleResponse | 15 |
Method | +Coverage | +
---|---|
remove | 0% |
reset_session | 0% |
generate | 0% |
getAll | 0% |
method | 0% |
view | 0% |
__callStatic | 0% |
serialize | 0% |
frDate | 0% |
session_start | 0% |
getAll | 0% |
update_token | 0% |
append | 0% |
fromString | 0% |
buildPath | 58% |
__construct | 60% |
checkPath | 60% |
__construct | 64% |
dispatch | 66% |
dispatch | 77% |
getInstance | 85% |
check | 85% |
__construct | 88% |
Method | +CRAP | +
---|---|
__callStatic | 182 |
session_start | 56 |
generate | 30 |
remove | 12 |
fromString | 12 |
__construct | 8 |
__construct | 7 |
buildPath | 6 |
getInstance | 6 |
reset_session | 6 |
view | 6 |
checkPath | 5 |
dispatch | 3 |
dispatch | 3 |
check | 3 |
__construct | 2 |