From e3d85f794682635928f05189f516bec2cd9a5c72 Mon Sep 17 00:00:00 2001 From: Yass Date: Mon, 2 Mar 2026 09:13:53 +0100 Subject: [PATCH 01/37] Correction envoie mail --- models/CategoryModel.php | 12 ++++++++++-- models/ImageModel.php | 13 ++++++++++--- models/UserModel.php | 14 ++++++++++---- views/project_display.tpl | 4 ++-- 4 files changed, 32 insertions(+), 11 deletions(-) diff --git a/models/CategoryModel.php b/models/CategoryModel.php index 2511e11..3ce1dc4 100644 --- a/models/CategoryModel.php +++ b/models/CategoryModel.php @@ -22,10 +22,18 @@ FROM category"; if ($intLimit > 0){ - $strRq .= " LIMIT ".$intLimit; + $strRq .= " LIMIT :limit"; } - return $this->_db->query($strRq)->fetchAll(); + $rqPrep = $this->_db->prepare($strRq); + + if ($intLimit > 0){ + $rqPrep->bindValue(":limit", $intLimit, PDO::PARAM_INT); + } + + $rqPrep->execute(); + + return $rqPrep->fetchAll(); } /** diff --git a/models/ImageModel.php b/models/ImageModel.php index c471da4..c3cc95d 100644 --- a/models/ImageModel.php +++ b/models/ImageModel.php @@ -22,11 +22,18 @@ $strRq = "SELECT image.* FROM image"; - if ($intLimit > 0){ - $strRq .= " LIMIT ".$intLimit; + $strRq .= " LIMIT :limit"; } - return $this->_db->query($strRq)->fetchAll(); + $rqPrep = $this->_db->prepare($strRq); + + if ($intLimit > 0){ + $rqPrep->bindValue(":limit", $intLimit, PDO::PARAM_INT); + } + + $rqPrep->execute(); + + return $rqPrep->fetchAll(); } } \ No newline at end of file diff --git a/models/UserModel.php b/models/UserModel.php index 3563238..5663504 100644 --- a/models/UserModel.php +++ b/models/UserModel.php @@ -37,9 +37,15 @@ $strRq = "SELECT user_id, user_name, user_firstname, user_password, user_image, user_status, authorisation_name, user_pseudo FROM users INNER JOIN authorisation ON authorisation.authorisation_id = users.user_status - WHERE user_mail = '".$strMail."'"; + WHERE user_mail = :mail"; + + $rqPrep = $this->_db->prepare($strRq); + $rqPrep->bindValue(":mail", $strMail, PDO::PARAM_STR); + $rqPrep->execute(); + + - $arrUser = $this->_db->query($strRq)->fetch(); + $arrUser = $rqPrep->fetch(); if (password_verify($strPwd, $arrUser['user_password'])){ unset($arrUser['user_password']); return $arrUser; @@ -236,7 +242,7 @@ /** * Verifie sur le pseudo entré n'est pas déjà utilisé * @param string $pseudo Pseudo a verifié - * @return array Tableau associatif (ou false si pas trouvé) + * @return bool Le pseudo existe ou pas */ public function pseudoExists(string $pseudo): bool{ @@ -244,6 +250,6 @@ $rq->bindValue(":pseudo", $pseudo, PDO::PARAM_STR); $rq->execute(); - return $rq->fetchColumn(); + return (bool)$rq->fetchColumn(); } } diff --git a/views/project_display.tpl b/views/project_display.tpl index 843512c..506cd5c 100644 --- a/views/project_display.tpl +++ b/views/project_display.tpl @@ -75,9 +75,9 @@ - +
-
+ From fd6f8829f4fbedee08a590336882b93c562651af Mon Sep 17 00:00:00 2001 From: Yass Date: Mon, 2 Mar 2026 09:16:09 +0100 Subject: [PATCH 02/37] hehe --- controllers/ProjectCtrl.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/ProjectCtrl.php b/controllers/ProjectCtrl.php index 6cb408c..294fd74 100644 --- a/controllers/ProjectCtrl.php +++ b/controllers/ProjectCtrl.php @@ -360,9 +360,9 @@ $objProjectModel = new ProjectModel(); $arrProject = $objProjectModel->findOne((int)$intId); - $arrImages = $objProjectModel->getImagesByProjectId((int)$intId); if ($arrProject) { + $arrImages = $objProjectModel->getImagesByProjectId((int)$intId); $objProject = new Project(); $objProject->hydrate($arrProject); From 3836927aa293b22ceef2a0e6d01836487535a7df Mon Sep 17 00:00:00 2001 From: Yass Date: Mon, 2 Mar 2026 09:17:41 +0100 Subject: [PATCH 03/37] gestion si projet non existant --- models/ProjectModel.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/models/ProjectModel.php b/models/ProjectModel.php index a248884..bd42e6c 100644 --- a/models/ProjectModel.php +++ b/models/ProjectModel.php @@ -110,9 +110,9 @@ /** * Fonction de recherche d'un seul projet * @param int $intId - * @return array + * @return array|bool */ - public function findOne(int $intId) :array{ + public function findOne(int $intId) :array|bool{ $strRq = "SELECT project.*, users.user_pseudo AS 'project_creatorname', users.user_image, From ba75ac2dff62d5eaaa88285879922751f02862a4 Mon Sep 17 00:00:00 2001 From: Yass Date: Mon, 2 Mar 2026 09:24:38 +0100 Subject: [PATCH 04/37] changement taille image --- controllers/ProjectCtrl.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/ProjectCtrl.php b/controllers/ProjectCtrl.php index 294fd74..c39e9f0 100644 --- a/controllers/ProjectCtrl.php +++ b/controllers/ProjectCtrl.php @@ -200,7 +200,7 @@ $strSource = $_FILES['thumbnail']['tmp_name']; list($intWidth, $intHeight) = getimagesize($strSource); - $intDestWidth = 200; $intDestHeight = 250; + $intDestWidth = 1280; $intDestHeight = 720; $fltDestRatio = $intDestWidth / $intDestHeight; $fltSourceRatio = $intWidth / $intHeight; From dd9cf43c42b522d4c77380855b002ca18a486550 Mon Sep 17 00:00:00 2001 From: Yass Date: Mon, 2 Mar 2026 09:33:44 +0100 Subject: [PATCH 05/37] gestion affichage texte --- views/project_display.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/project_display.tpl b/views/project_display.tpl index 506cd5c..f2ef4ba 100644 --- a/views/project_display.tpl +++ b/views/project_display.tpl @@ -30,7 +30,7 @@

Description

{$objProject->getDescription()}

-
+
{$objProject->getContent()}
From 4c40d2f59119e85ce8560f6efa270c4c735daed6 Mon Sep 17 00:00:00 2001 From: Yass Date: Mon, 2 Mar 2026 09:45:44 +0100 Subject: [PATCH 06/37] pouloulou --- views/useredit.tpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/views/useredit.tpl b/views/useredit.tpl index 77d6698..ee62c71 100644 --- a/views/useredit.tpl +++ b/views/useredit.tpl @@ -14,7 +14,7 @@
-

Edit du profile

+

Modification du profil

{if (isset($arrError) && count($arrError) > 0) }
@@ -161,7 +161,7 @@
From 7de8462d7b6c7ec466eb0e57e5f73710d7681784 Mon Sep 17 00:00:00 2001 From: Yass Date: Mon, 2 Mar 2026 09:49:46 +0100 Subject: [PATCH 07/37] logo bas de mail --- views/mail_message.tpl | 1 + 1 file changed, 1 insertion(+) diff --git a/views/mail_message.tpl b/views/mail_message.tpl index fd5574e..6dbd427 100644 --- a/views/mail_message.tpl +++ b/views/mail_message.tpl @@ -24,3 +24,4 @@ Cordialement,
L’équipe Folliow

+ From 017c46f6ba489717efdde2b72500d703328195d4 Mon Sep 17 00:00:00 2001 From: Yass Date: Mon, 2 Mar 2026 09:52:38 +0100 Subject: [PATCH 08/37] logo bas de mail --- views/mail_message.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/mail_message.tpl b/views/mail_message.tpl index 6dbd427..ffea234 100644 --- a/views/mail_message.tpl +++ b/views/mail_message.tpl @@ -24,4 +24,4 @@ Cordialement,
L’équipe Folliow

- + From c147631bc1b14a6744ce464ec82d42477db1f374 Mon Sep 17 00:00:00 2001 From: Yass Date: Mon, 2 Mar 2026 10:02:53 +0100 Subject: [PATCH 09/37] ajoute regle passwd --- views/inscription.tpl | 10 ++++++++++ views/mail_message.tpl | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/views/inscription.tpl b/views/inscription.tpl index 0c458b4..7209212 100644 --- a/views/inscription.tpl +++ b/views/inscription.tpl @@ -81,6 +81,16 @@ name="user_password" required > +

+ Le mot de passe doit contenir : +

    +
  • Au moins 15 caractères
  • +
  • Au moins une lettre majuscule
  • +
  • Au moins une lettre minuscule
  • +
  • Au moins un chiffre
  • +
  • Au moins un caractère spécial (# ? ! @ $ % ^ & * -)
  • +
+

diff --git a/views/mail_message.tpl b/views/mail_message.tpl index ffea234..44e1b9e 100644 --- a/views/mail_message.tpl +++ b/views/mail_message.tpl @@ -24,4 +24,4 @@ Cordialement,
L’équipe Folliow

- + From 13d64fa9088bc261a87c943e4c2677d4b72aaaf0 Mon Sep 17 00:00:00 2001 From: Yass Date: Mon, 2 Mar 2026 10:05:06 +0100 Subject: [PATCH 10/37] ajoute regle passwd --- views/inscription.tpl | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/views/inscription.tpl b/views/inscription.tpl index 7209212..6c91ebe 100644 --- a/views/inscription.tpl +++ b/views/inscription.tpl @@ -81,16 +81,16 @@ name="user_password" required > -

- Le mot de passe doit contenir : -

    -
  • Au moins 15 caractères
  • -
  • Au moins une lettre majuscule
  • -
  • Au moins une lettre minuscule
  • -
  • Au moins un chiffre
  • -
  • Au moins un caractère spécial (# ? ! @ $ % ^ & * -)
  • -
-

+
+

Le mot de passe doit contenir :

+
    +
  • Au moins 15 caractères
  • +
  • Au moins une lettre majuscule
  • +
  • Au moins une lettre minuscule
  • +
  • Au moins un chiffre
  • +
  • Au moins un caractère spécial (# ? ! @ $ % ^ & * -)
  • +
+
From 01bf50787954f573b0880bf38f2ec4033c5cffe7 Mon Sep 17 00:00:00 2001 From: Yass Date: Mon, 2 Mar 2026 10:07:18 +0100 Subject: [PATCH 11/37] ajoute regle passwd --- views/inscription.tpl | 1 - 1 file changed, 1 deletion(-) diff --git a/views/inscription.tpl b/views/inscription.tpl index 6c91ebe..e110d2e 100644 --- a/views/inscription.tpl +++ b/views/inscription.tpl @@ -180,6 +180,5 @@
- {/block} \ No newline at end of file From e243169157724367920317ffb314c747b5743ec5 Mon Sep 17 00:00:00 2001 From: Yass Date: Mon, 2 Mar 2026 11:26:36 +0100 Subject: [PATCH 12/37] wink wink --- views/mentions.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/mentions.tpl b/views/mentions.tpl index 9e23a03..b94ced6 100644 --- a/views/mentions.tpl +++ b/views/mentions.tpl @@ -114,7 +114,7 @@
Hébergeur
-
OVH
+
Yass Le Goat en faite (et o2switch)
Domaine / accès
php.boulayoune.com
From b88ff889a27e1ea0be776d445de1870d80a57d8f Mon Sep 17 00:00:00 2001 From: Yass Date: Mon, 2 Mar 2026 11:28:03 +0100 Subject: [PATCH 13/37] wink wink --- views/mentions.tpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/views/mentions.tpl b/views/mentions.tpl index b94ced6..2c83ee2 100644 --- a/views/mentions.tpl +++ b/views/mentions.tpl @@ -120,10 +120,10 @@
php.boulayoune.com
Adresse
-
4 Rue du Rhin, 68000 Colmar
+
REDACTED FOR PRIVACY
Téléphone
-
03 68 67 20 00
+
REDACTED FOR PRIVACY
From 444f6ee15549e04770d802ab0293f4327af1c940 Mon Sep 17 00:00:00 2001 From: "laura.chevillet" Date: Mon, 2 Mar 2026 14:59:40 +0100 Subject: [PATCH 14/37] requete recherche en PDO --- models/ProjectModel.php | 80 +++++++++++++++++++++++++++-------------- 1 file changed, 53 insertions(+), 27 deletions(-) diff --git a/models/ProjectModel.php b/models/ProjectModel.php index bd42e6c..084f1ec 100644 --- a/models/ProjectModel.php +++ b/models/ProjectModel.php @@ -23,58 +23,84 @@ string $strEndDate='', int $intCategory=0, bool $boolOlderThan6Months=false): array { - $strRq = "SELECT project.*, - user_pseudo AS 'project_creatorname', + $strRq = "SELECT project.*, + CONCAT(user_firstname, ' ', user_name) AS 'project_creatorname', user_image FROM project - INNER JOIN users ON user_id = project_user_id"; - - $strRq .= " WHERE project_deleted_at IS NULL"; - - $strAnd = " AND "; + INNER JOIN users ON user_id = project_user_id + WHERE 1=1"; if ($strKeywords != '') { - - $strSafeKeywords = $this->_db->quote("%" . $strKeywords . "%"); - - $strRq .= $strAnd. " (project_title LIKE ".$strSafeKeywords." - OR project_content LIKE ".$strSafeKeywords.") "; - + $strRq .= " AND (project_title LIKE :keywords OR project_content LIKE :keywords)"; } if ($intAuthor > 0){ - $strRq .= $strAnd." user_id = ".$intAuthor; + $strRq .= " AND project_user_id = :author"; + } - } if ($intCategory > 0){ - $strRq .= $strAnd." project_category = ".$intCategory; + $strRq .= " AND project_category = :category"; } + if ($boolOlderThan6Months === true) { - $strRq .= $strAnd . " project_creation_date <= DATE_SUB(NOW(), INTERVAL 6 MONTH) "; + $strRq .= " AND project_creation_date <= DATE_SUB(NOW(), INTERVAL 6 MONTH)"; } + if ($intPeriod == 0){ if ($strDate != ''){ - $strRq .= $strAnd." project_creation_date = '".$strDate."'"; + $strRq .= " AND project_creation_date = :date_exacte"; } - }else{ + } else { if ($strStartDate != '' && $strEndDate != ''){ - $strRq .= $strAnd." project_creation_date BETWEEN '".$strStartDate."' AND '".$strEndDate."'"; - }else{ + $strRq .= " AND project_creation_date BETWEEN :date_debut AND :date_fin"; + } else { if ($strStartDate != ''){ - $strRq .= $strAnd." project_creation_date >= '".$strStartDate."'"; - }else if ($strEndDate != ''){ - $strRq .= $strAnd." project_creation_date <= '".$strEndDate."'"; + $strRq .= " AND project_creation_date >= :date_debut"; + } else if ($strEndDate != ''){ + $strRq .= " AND project_creation_date <= :date_fin"; } } } - + $strRq .= " ORDER BY project_creation_date DESC"; if ($intLimit > 0){ - $strRq .= " LIMIT ".$intLimit; + $strRq .= " LIMIT :limit"; } - return $this->_db->query($strRq)->fetchAll(); + $rqPrep = $this->_db->prepare($strRq); + + if ($strKeywords != '') { + $rqPrep->bindValue(':keywords', '%' . $strKeywords . '%', PDO::PARAM_STR); + } + if ($intAuthor > 0){ + $rqPrep->bindValue(':author', $intAuthor, PDO::PARAM_INT); + } + if ($intCategory > 0){ + $rqPrep->bindValue(':category', $intCategory, PDO::PARAM_INT); + } + if ($intPeriod == 0){ + if ($strDate != ''){ + $rqPrep->bindValue(':date_exacte', $strDate, PDO::PARAM_STR); + } + } else { + if ($strStartDate != '' && $strEndDate != ''){ + $rqPrep->bindValue(':date_debut', $strStartDate, PDO::PARAM_STR); + $rqPrep->bindValue(':date_fin', $strEndDate, PDO::PARAM_STR); + } else { + if ($strStartDate != ''){ + $rqPrep->bindValue(':date_debut', $strStartDate, PDO::PARAM_STR); + } else if ($strEndDate != ''){ + $rqPrep->bindValue(':date_fin', $strEndDate, PDO::PARAM_STR); + } + } + } + if ($intLimit > 0){ + $rqPrep->bindValue(':limit', $intLimit, PDO::PARAM_INT); + } + + $rqPrep->execute(); + return $rqPrep->fetchAll(); } From 7475c3ce4963ec20e33ff743d5ed3a8bc89065ca Mon Sep 17 00:00:00 2001 From: GuillaumeH-Cci Date: Mon, 2 Mar 2026 15:26:49 +0100 Subject: [PATCH 15/37] Doxygen --- html/annotated.html | 130 + html/annotated_dup.js | 27 + html/class_controllers_1_1_admin_ctrl.html | 159 ++ html/class_controllers_1_1_admin_ctrl.js | 4 + html/class_controllers_1_1_admin_ctrl.png | Bin 0 -> 428 bytes html/class_controllers_1_1_error_ctrl.html | 178 ++ html/class_controllers_1_1_error_ctrl.js | 5 + html/class_controllers_1_1_error_ctrl.png | Bin 0 -> 420 bytes html/class_controllers_1_1_mother_ctrl.html | 179 ++ html/class_controllers_1_1_mother_ctrl.js | 4 + html/class_controllers_1_1_mother_ctrl.png | Bin 0 -> 1031 bytes html/class_controllers_1_1_page_ctrl.html | 197 ++ html/class_controllers_1_1_page_ctrl.js | 6 + html/class_controllers_1_1_page_ctrl.png | Bin 0 -> 438 bytes html/class_controllers_1_1_project_ctrl.html | 330 +++ html/class_controllers_1_1_project_ctrl.js | 13 + html/class_controllers_1_1_project_ctrl.png | Bin 0 -> 440 bytes html/class_controllers_1_1_user_ctrl.html | 235 ++ html/class_controllers_1_1_user_ctrl.js | 8 + html/class_controllers_1_1_user_ctrl.png | Bin 0 -> 413 bytes html/class_entities_1_1_authorisation.html | 245 ++ html/class_entities_1_1_authorisation.js | 8 + html/class_entities_1_1_authorisation.png | Bin 0 -> 425 bytes html/class_entities_1_1_category.html | 300 ++ html/class_entities_1_1_category.js | 10 + html/class_entities_1_1_category.png | Bin 0 -> 388 bytes html/class_entities_1_1_image.html | 336 +++ html/class_entities_1_1_image.js | 12 + html/class_entities_1_1_image.png | Bin 0 -> 361 bytes html/class_entities_1_1_mother.html | 147 + html/class_entities_1_1_mother.png | Bin 0 -> 1101 bytes html/class_entities_1_1_project.html | 686 +++++ html/class_entities_1_1_project.js | 28 + html/class_entities_1_1_project.png | Bin 0 -> 361 bytes html/class_entities_1_1_user.html | 720 +++++ html/class_entities_1_1_user.js | 33 + html/class_entities_1_1_user.png | Bin 0 -> 339 bytes .../class_models_1_1_authorisation_model.html | 177 ++ html/class_models_1_1_authorisation_model.js | 4 + html/class_models_1_1_authorisation_model.png | Bin 0 -> 538 bytes html/class_models_1_1_category_model.html | 238 ++ html/class_models_1_1_category_model.js | 7 + html/class_models_1_1_category_model.png | Bin 0 -> 505 bytes html/class_models_1_1_image_model.html | 163 ++ html/class_models_1_1_image_model.js | 4 + html/class_models_1_1_image_model.png | Bin 0 -> 447 bytes html/class_models_1_1_mother_model.html | 135 + html/class_models_1_1_mother_model.png | Bin 0 -> 1285 bytes html/class_models_1_1_project_model.html | 492 ++++ html/class_models_1_1_project_model.js | 15 + html/class_models_1_1_project_model.png | Bin 0 -> 457 bytes html/class_models_1_1_user_model.html | 488 ++++ html/class_models_1_1_user_model.js | 16 + html/class_models_1_1_user_model.png | Bin 0 -> 428 bytes html/classes.html | 129 + html/clipboard.js | 61 + html/cookie.js | 58 + .../dir_1c617d677ef58765205e8a044aafa06e.html | 113 + .../dir_2756e6070b02be5d362619ded783829c.html | 118 + .../dir_2c23dcab3ba0e8633898b60485787967.html | 201 ++ .../dir_3a74e34fc6fa82edd10e4beee4ded801.html | 201 ++ .../dir_5498806e52ccd7d2d905ac8baf67301b.html | 113 + .../dir_6a59aaef8e4f4bee39467ed807742262.html | 113 + .../dir_91977dd5ba3542af9d4aecff9e888690.html | 113 + .../dir_a64c5c967bbc6a18c5d8eb713e8e97ff.html | 113 + .../dir_bfcb6842af0098861ea59b43701e0022.html | 118 + .../dir_d522931ffa1371640980b621734a4381.html | 113 + .../dir_d6b6a3db1c3a00708b1a36123c6a63cc.html | 118 + .../dir_f880fbcdfabe64616040b95a4e03089d.html | 113 + html/doxygen.css | 2540 +++++++++++++++++ html/doxygen.svg | 28 + html/doxygen_crawl.html | 171 ++ html/dynsections.js | 191 ++ html/functions.html | 268 ++ html/functions_func.html | 268 ++ html/hierarchy.html | 127 + html/hierarchy.js | 24 + html/index.html | 106 + html/jquery.js | 204 ++ html/menu.js | 131 + html/menudata.js | 65 + html/navtree.css | 327 +++ html/navtree.js | 901 ++++++ html/navtreedata.js | 47 + html/navtreeindex0.js | 157 + html/search/all_0.js | 5 + html/search/all_1.js | 11 + html/search/all_10.js | 10 + html/search/all_11.js | 4 + html/search/all_12.js | 4 + html/search/all_2.js | 6 + html/search/all_3.js | 11 + html/search/all_4.js | 9 + html/search/all_5.js | 15 + html/search/all_6.js | 31 + html/search/all_7.js | 5 + html/search/all_8.js | 9 + html/search/all_9.js | 7 + html/search/all_a.js | 8 + html/search/all_b.js | 4 + html/search/all_c.js | 11 + html/search/all_d.js | 5 + html/search/all_e.js | 33 + html/search/all_f.js | 4 + html/search/classes_0.js | 6 + html/search/classes_1.js | 5 + html/search/classes_2.js | 4 + html/search/classes_3.js | 5 + html/search/classes_4.js | 6 + html/search/classes_5.js | 7 + html/search/classes_6.js | 6 + html/search/functions_0.js | 5 + html/search/functions_1.js | 8 + html/search/functions_2.js | 4 + html/search/functions_3.js | 11 + html/search/functions_4.js | 8 + html/search/functions_5.js | 12 + html/search/functions_6.js | 31 + html/search/functions_7.js | 5 + html/search/functions_8.js | 5 + html/search/functions_9.js | 5 + html/search/functions_a.js | 5 + html/search/functions_b.js | 4 + html/search/functions_c.js | 5 + html/search/functions_d.js | 31 + html/search/functions_e.js | 7 + html/search/functions_f.js | 4 + html/search/pages_0.js | 6 + html/search/pages_1.js | 5 + html/search/pages_2.js | 5 + html/search/pages_3.js | 4 + html/search/pages_4.js | 6 + html/search/pages_5.js | 5 + html/search/pages_6.js | 4 + html/search/pages_7.js | 4 + html/search/search.css | 377 +++ html/search/search.js | 708 +++++ html/search/searchdata.js | 24 + html/tabs.css | 1 + views/_partial/footer.tpl | 4 + 140 files changed, 14623 insertions(+) create mode 100644 html/annotated.html create mode 100644 html/annotated_dup.js create mode 100644 html/class_controllers_1_1_admin_ctrl.html create mode 100644 html/class_controllers_1_1_admin_ctrl.js create mode 100644 html/class_controllers_1_1_admin_ctrl.png create mode 100644 html/class_controllers_1_1_error_ctrl.html create mode 100644 html/class_controllers_1_1_error_ctrl.js create mode 100644 html/class_controllers_1_1_error_ctrl.png create mode 100644 html/class_controllers_1_1_mother_ctrl.html create mode 100644 html/class_controllers_1_1_mother_ctrl.js create mode 100644 html/class_controllers_1_1_mother_ctrl.png create mode 100644 html/class_controllers_1_1_page_ctrl.html create mode 100644 html/class_controllers_1_1_page_ctrl.js create mode 100644 html/class_controllers_1_1_page_ctrl.png create mode 100644 html/class_controllers_1_1_project_ctrl.html create mode 100644 html/class_controllers_1_1_project_ctrl.js create mode 100644 html/class_controllers_1_1_project_ctrl.png create mode 100644 html/class_controllers_1_1_user_ctrl.html create mode 100644 html/class_controllers_1_1_user_ctrl.js create mode 100644 html/class_controllers_1_1_user_ctrl.png create mode 100644 html/class_entities_1_1_authorisation.html create mode 100644 html/class_entities_1_1_authorisation.js create mode 100644 html/class_entities_1_1_authorisation.png create mode 100644 html/class_entities_1_1_category.html create mode 100644 html/class_entities_1_1_category.js create mode 100644 html/class_entities_1_1_category.png create mode 100644 html/class_entities_1_1_image.html create mode 100644 html/class_entities_1_1_image.js create mode 100644 html/class_entities_1_1_image.png create mode 100644 html/class_entities_1_1_mother.html create mode 100644 html/class_entities_1_1_mother.png create mode 100644 html/class_entities_1_1_project.html create mode 100644 html/class_entities_1_1_project.js create mode 100644 html/class_entities_1_1_project.png create mode 100644 html/class_entities_1_1_user.html create mode 100644 html/class_entities_1_1_user.js create mode 100644 html/class_entities_1_1_user.png create mode 100644 html/class_models_1_1_authorisation_model.html create mode 100644 html/class_models_1_1_authorisation_model.js create mode 100644 html/class_models_1_1_authorisation_model.png create mode 100644 html/class_models_1_1_category_model.html create mode 100644 html/class_models_1_1_category_model.js create mode 100644 html/class_models_1_1_category_model.png create mode 100644 html/class_models_1_1_image_model.html create mode 100644 html/class_models_1_1_image_model.js create mode 100644 html/class_models_1_1_image_model.png create mode 100644 html/class_models_1_1_mother_model.html create mode 100644 html/class_models_1_1_mother_model.png create mode 100644 html/class_models_1_1_project_model.html create mode 100644 html/class_models_1_1_project_model.js create mode 100644 html/class_models_1_1_project_model.png create mode 100644 html/class_models_1_1_user_model.html create mode 100644 html/class_models_1_1_user_model.js create mode 100644 html/class_models_1_1_user_model.png create mode 100644 html/classes.html create mode 100644 html/clipboard.js create mode 100644 html/cookie.js create mode 100644 html/dir_1c617d677ef58765205e8a044aafa06e.html create mode 100644 html/dir_2756e6070b02be5d362619ded783829c.html create mode 100644 html/dir_2c23dcab3ba0e8633898b60485787967.html create mode 100644 html/dir_3a74e34fc6fa82edd10e4beee4ded801.html create mode 100644 html/dir_5498806e52ccd7d2d905ac8baf67301b.html create mode 100644 html/dir_6a59aaef8e4f4bee39467ed807742262.html create mode 100644 html/dir_91977dd5ba3542af9d4aecff9e888690.html create mode 100644 html/dir_a64c5c967bbc6a18c5d8eb713e8e97ff.html create mode 100644 html/dir_bfcb6842af0098861ea59b43701e0022.html create mode 100644 html/dir_d522931ffa1371640980b621734a4381.html create mode 100644 html/dir_d6b6a3db1c3a00708b1a36123c6a63cc.html create mode 100644 html/dir_f880fbcdfabe64616040b95a4e03089d.html create mode 100644 html/doxygen.css create mode 100644 html/doxygen.svg create mode 100644 html/doxygen_crawl.html create mode 100644 html/dynsections.js create mode 100644 html/functions.html create mode 100644 html/functions_func.html create mode 100644 html/hierarchy.html create mode 100644 html/hierarchy.js create mode 100644 html/index.html create mode 100644 html/jquery.js create mode 100644 html/menu.js create mode 100644 html/menudata.js create mode 100644 html/navtree.css create mode 100644 html/navtree.js create mode 100644 html/navtreedata.js create mode 100644 html/navtreeindex0.js create mode 100644 html/search/all_0.js create mode 100644 html/search/all_1.js create mode 100644 html/search/all_10.js create mode 100644 html/search/all_11.js create mode 100644 html/search/all_12.js create mode 100644 html/search/all_2.js create mode 100644 html/search/all_3.js create mode 100644 html/search/all_4.js create mode 100644 html/search/all_5.js create mode 100644 html/search/all_6.js create mode 100644 html/search/all_7.js create mode 100644 html/search/all_8.js create mode 100644 html/search/all_9.js create mode 100644 html/search/all_a.js create mode 100644 html/search/all_b.js create mode 100644 html/search/all_c.js create mode 100644 html/search/all_d.js create mode 100644 html/search/all_e.js create mode 100644 html/search/all_f.js create mode 100644 html/search/classes_0.js create mode 100644 html/search/classes_1.js create mode 100644 html/search/classes_2.js create mode 100644 html/search/classes_3.js create mode 100644 html/search/classes_4.js create mode 100644 html/search/classes_5.js create mode 100644 html/search/classes_6.js create mode 100644 html/search/functions_0.js create mode 100644 html/search/functions_1.js create mode 100644 html/search/functions_2.js create mode 100644 html/search/functions_3.js create mode 100644 html/search/functions_4.js create mode 100644 html/search/functions_5.js create mode 100644 html/search/functions_6.js create mode 100644 html/search/functions_7.js create mode 100644 html/search/functions_8.js create mode 100644 html/search/functions_9.js create mode 100644 html/search/functions_a.js create mode 100644 html/search/functions_b.js create mode 100644 html/search/functions_c.js create mode 100644 html/search/functions_d.js create mode 100644 html/search/functions_e.js create mode 100644 html/search/functions_f.js create mode 100644 html/search/pages_0.js create mode 100644 html/search/pages_1.js create mode 100644 html/search/pages_2.js create mode 100644 html/search/pages_3.js create mode 100644 html/search/pages_4.js create mode 100644 html/search/pages_5.js create mode 100644 html/search/pages_6.js create mode 100644 html/search/pages_7.js create mode 100644 html/search/search.css create mode 100644 html/search/search.js create mode 100644 html/search/searchdata.js create mode 100644 html/tabs.css diff --git a/html/annotated.html b/html/annotated.html new file mode 100644 index 0000000..bcd2e96 --- /dev/null +++ b/html/annotated.html @@ -0,0 +1,130 @@ + + + + + + + +Folliow: Data Structures + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Data Structures
+
+
+
Here are the data structures with brief descriptions:
+
[detail level 12]
+ + + + + + + + + + + + + + + + + + + + + +
 NControllers
 CAdminCtrl
 CErrorCtrl
 CMotherCtrl
 CPageCtrl
 CProjectCtrl
 CUserCtrl
 NEntities
 CAuthorisation
 CCategory
 CImage
 CMother
 CProject
 CUser
 NModels
 CAuthorisationModel
 CCategoryModel
 CImageModel
 CMotherModel
 CProjectModel
 CUserModel
+
+
+
+
+ + + + diff --git a/html/annotated_dup.js b/html/annotated_dup.js new file mode 100644 index 0000000..9f8213b --- /dev/null +++ b/html/annotated_dup.js @@ -0,0 +1,27 @@ +var annotated_dup = +[ + [ "Controllers", null, [ + [ "AdminCtrl", "class_controllers_1_1_admin_ctrl.html", "class_controllers_1_1_admin_ctrl" ], + [ "ErrorCtrl", "class_controllers_1_1_error_ctrl.html", "class_controllers_1_1_error_ctrl" ], + [ "MotherCtrl", "class_controllers_1_1_mother_ctrl.html", "class_controllers_1_1_mother_ctrl" ], + [ "PageCtrl", "class_controllers_1_1_page_ctrl.html", "class_controllers_1_1_page_ctrl" ], + [ "ProjectCtrl", "class_controllers_1_1_project_ctrl.html", "class_controllers_1_1_project_ctrl" ], + [ "UserCtrl", "class_controllers_1_1_user_ctrl.html", "class_controllers_1_1_user_ctrl" ] + ] ], + [ "Entities", null, [ + [ "Authorisation", "class_entities_1_1_authorisation.html", "class_entities_1_1_authorisation" ], + [ "Category", "class_entities_1_1_category.html", "class_entities_1_1_category" ], + [ "Image", "class_entities_1_1_image.html", "class_entities_1_1_image" ], + [ "Mother", "class_entities_1_1_mother.html", null ], + [ "Project", "class_entities_1_1_project.html", "class_entities_1_1_project" ], + [ "User", "class_entities_1_1_user.html", "class_entities_1_1_user" ] + ] ], + [ "Models", null, [ + [ "AuthorisationModel", "class_models_1_1_authorisation_model.html", "class_models_1_1_authorisation_model" ], + [ "CategoryModel", "class_models_1_1_category_model.html", "class_models_1_1_category_model" ], + [ "ImageModel", "class_models_1_1_image_model.html", "class_models_1_1_image_model" ], + [ "MotherModel", "class_models_1_1_mother_model.html", null ], + [ "ProjectModel", "class_models_1_1_project_model.html", "class_models_1_1_project_model" ], + [ "UserModel", "class_models_1_1_user_model.html", "class_models_1_1_user_model" ] + ] ] +]; \ No newline at end of file diff --git a/html/class_controllers_1_1_admin_ctrl.html b/html/class_controllers_1_1_admin_ctrl.html new file mode 100644 index 0000000..073a5da --- /dev/null +++ b/html/class_controllers_1_1_admin_ctrl.html @@ -0,0 +1,159 @@ + + + + + + + +Folliow: AdminCtrl Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
AdminCtrl Class Reference
+
+
+
+Inheritance diagram for AdminCtrl:
+
+
+ + +MotherCtrl + +
+ + + +

+Public Member Functions

 admin ()
+ + + + + +

+Additional Inherited Members

Protected Member Functions inherited from MotherCtrl
 _display ($strView, bool $boolDisplay=true)
Protected Attributes inherited from MotherCtrl
+array $_arrData = array()
+

Detailed Description

+

Le controller de la partie accessible uniquement par l'admin

Author
Laura
+

Member Function Documentation

+ +

◆ admin()

+ +
+
+ + + + + + + +
admin ()
+
+

Page Admin

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • C:/Users/Guill/projet_php/controllers/AdminCtrl.php
  • +
+
+
+ +
+ + + + diff --git a/html/class_controllers_1_1_admin_ctrl.js b/html/class_controllers_1_1_admin_ctrl.js new file mode 100644 index 0000000..92c5ef9 --- /dev/null +++ b/html/class_controllers_1_1_admin_ctrl.js @@ -0,0 +1,4 @@ +var class_controllers_1_1_admin_ctrl = +[ + [ "admin", "class_controllers_1_1_admin_ctrl.html#a0418d22e14785132c232ef68a32d0659", null ] +]; \ No newline at end of file diff --git a/html/class_controllers_1_1_admin_ctrl.png b/html/class_controllers_1_1_admin_ctrl.png new file mode 100644 index 0000000000000000000000000000000000000000..1849d0b8c4b5154e7fe1db968bcd15f345e9349f GIT binary patch literal 428 zcmeAS@N?(olHy`uVBq!ia0vp^9zYzx!3-pOw;gTD}#{bD1kQx}!?Y$?-`GdbGLL0%^v88%#DW03pA zlsjAaB=;0cI~DT__BLA?7!NoxGBHFW + + + + + + +Folliow: ErrorCtrl Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ErrorCtrl Class Reference
+
+
+
+Inheritance diagram for ErrorCtrl:
+
+
+ + +MotherCtrl + +
+ + + + +

+Public Member Functions

 error_404 ()
 error_403 ()
+ + + + + +

+Additional Inherited Members

Protected Member Functions inherited from MotherCtrl
 _display ($strView, bool $boolDisplay=true)
Protected Attributes inherited from MotherCtrl
+array $_arrData = array()
+

Detailed Description

+

Le contrôleur des erreurs

Author
Laura
+

Member Function Documentation

+ +

◆ error_403()

+ +
+
+ + + + + + + +
error_403 ()
+
+

Page erreur 403

+ +
+
+ +

◆ error_404()

+ +
+
+ + + + + + + +
error_404 ()
+
+

Page erreur 404

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • C:/Users/Guill/projet_php/controllers/ErrorCtrl.php
  • +
+
+
+ +
+ + + + diff --git a/html/class_controllers_1_1_error_ctrl.js b/html/class_controllers_1_1_error_ctrl.js new file mode 100644 index 0000000..7069bf1 --- /dev/null +++ b/html/class_controllers_1_1_error_ctrl.js @@ -0,0 +1,5 @@ +var class_controllers_1_1_error_ctrl = +[ + [ "error_403", "class_controllers_1_1_error_ctrl.html#aa0bf8cc4fa902f5fa834c0431160206e", null ], + [ "error_404", "class_controllers_1_1_error_ctrl.html#addb519bf6d274d60e8fc7a0ff46b2c20", null ] +]; \ No newline at end of file diff --git a/html/class_controllers_1_1_error_ctrl.png b/html/class_controllers_1_1_error_ctrl.png new file mode 100644 index 0000000000000000000000000000000000000000..c14c780e04728b2958b6beebf2e9fcabf76ffb19 GIT binary patch literal 420 zcmV;V0bBlwP)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0003m zNklXSt& zrL+J5n6d%D3Ra1>ZINk}D0|kJmWjTwY9RuE2_XUipAZ3nPly1(Cqw|?^XnoJkrhBl z@;M4R>iqptcewY@^?S$$JWs!c?fGwM~dzat}yKP^dqMu + + + + + + +Folliow: MotherCtrl Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
MotherCtrl Class Reference
+
+
+
+Inheritance diagram for MotherCtrl:
+
+
+ + +AdminCtrl +ErrorCtrl +PageCtrl +ProjectCtrl +UserCtrl + +
+ + + +

+Protected Member Functions

 _display ($strView, bool $boolDisplay=true)
+ + +

+Protected Attributes

+array $_arrData = array()
+

Detailed Description

+

Controller Mère qui permet de gèrer l'affichage des pages

Author
Yasser
+

Member Function Documentation

+ +

◆ _display()

+ +
+
+ + + + + +
+ + + + + + + + + + + +
_display ( $strView,
bool $boolDisplay = true )
+
+protected
+
+

Méthode d'affichage des pages

Parameters
+ + + +
string$strViewLe fichier a afficher
bool$boolDisplayBooléen pour afficher web ou mail
+
+
+
Returns
page|object affiche la page ou retourne l'objet pour le mail
+ +
+
+
The documentation for this class was generated from the following file:
    +
  • C:/Users/Guill/projet_php/controllers/MotherCtrl.php
  • +
+
+
+ +
+ + + + diff --git a/html/class_controllers_1_1_mother_ctrl.js b/html/class_controllers_1_1_mother_ctrl.js new file mode 100644 index 0000000..394c86c --- /dev/null +++ b/html/class_controllers_1_1_mother_ctrl.js @@ -0,0 +1,4 @@ +var class_controllers_1_1_mother_ctrl = +[ + [ "_display", "class_controllers_1_1_mother_ctrl.html#a70d1b27fa6bc8521e8a463a94f45a8a7", null ] +]; \ No newline at end of file diff --git a/html/class_controllers_1_1_mother_ctrl.png b/html/class_controllers_1_1_mother_ctrl.png new file mode 100644 index 0000000000000000000000000000000000000000..c3f56760a183dc56ae442f52e8ce575f051a0219 GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0y~yV4MJC2XHV0Nrr!y{{czq0G|-o|Ns93nJ?aaE$u(F z+`>S!Kw|ot7Y`mh0E(NQ4O;?~<17jC3uXZF!N8np_7w&O=1HC|jv*C{Z|A<9v{_4n z<@Ul;pZ=}?q4JSiWa@(7a@)!#ZIR*;Uh?&!zQgB|*z2~84U9WH&3O(N$a6DRFmW?x za3J9h&l7J_zkaqlb?Q~z`dW6Nil$1Zu=TG zJ6$}8t2P7T&uAS{<$e%(&9!#hMscCF zkHwfiOrFAV(_(`_!~7)CO)CR_PTHEI!}5Ur26yH36@^Frq?hfS|2kads1t)+(n`m} z20ULuW<_u~IOD=lfBj(p!oaqGSBGVR?5}%n46_b8G2D9i^spO46p%IRkQIZ}At(I! zkw53l-}}sK?|(N3dj0u(J9Vaz$1j<8^tUpEBr7sp1vZVbw-~ zhO9Xp0lmxlAJ~a81@uByS_m$X@|QnQ3v|q^|C)v^0_$Elb39~HZxc9V>DuWy>76jY z@1%F1!-Z{YCxvvjdIXt@DS2Lv=uinwR-9BaKg46Y^0aeHoSJ3!)Jf&#jK_OEA31zu^MN@N znhfjC$v?TqVJVvwcf$L@^21lMZTyz(+rRhxbnZ^2AWEO%Td_01eRhv4Xy6Ly?l_uKA$(21heM^-LxT<&z~ z$lZ9ECvjY!pVqDa8PH*sYyZ2jc59o<_oQXN?bc`To;-WE@WD-~O}pP|yj9um(y=7( z@JE4Q#fx`JFFgy^O!?1qUv$#C-qXr^Ykqrqth36w{ElO$wzJXZRwuEU`<*?$U99l( zDEc;S!rfo7>M60tX08UMW#K10?}_xH-x|DHO1`#wYE=|%z1Rm%(t*M&|haSVK9Zl~ii>D5o!&Utp8tByFS ztd!!OxFicG28@2sUFW?$I23IhOtuI(RW$6M`9t1oZS~xaox#h2S(d@m)z4*}Q$iB} DkTcFI literal 0 HcmV?d00001 diff --git a/html/class_controllers_1_1_page_ctrl.html b/html/class_controllers_1_1_page_ctrl.html new file mode 100644 index 0000000..3105772 --- /dev/null +++ b/html/class_controllers_1_1_page_ctrl.html @@ -0,0 +1,197 @@ + + + + + + + +Folliow: PageCtrl Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
PageCtrl Class Reference
+
+
+
+Inheritance diagram for PageCtrl:
+
+
+ + +MotherCtrl + +
+ + + + + +

+Public Member Functions

 help ()
 mentions ()
 about ()
+ + + + + +

+Additional Inherited Members

Protected Member Functions inherited from MotherCtrl
 _display ($strView, bool $boolDisplay=true)
Protected Attributes inherited from MotherCtrl
+array $_arrData = array()
+

Detailed Description

+

Le controller des pages annexes

Author
Laura & Besnik
+

Member Function Documentation

+ +

◆ about()

+ +
+
+ + + + + + + +
about ()
+
+

Page à propos

+ +
+
+ +

◆ help()

+ +
+
+ + + + + + + +
help ()
+
+

Page aide utilisateur

+ +
+
+ +

◆ mentions()

+ +
+
+ + + + + + + +
mentions ()
+
+

Page mentions légales

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • C:/Users/Guill/projet_php/controllers/PageCtrl.php
  • +
+
+
+ +
+ + + + diff --git a/html/class_controllers_1_1_page_ctrl.js b/html/class_controllers_1_1_page_ctrl.js new file mode 100644 index 0000000..f761860 --- /dev/null +++ b/html/class_controllers_1_1_page_ctrl.js @@ -0,0 +1,6 @@ +var class_controllers_1_1_page_ctrl = +[ + [ "about", "class_controllers_1_1_page_ctrl.html#a288fa575528fc7b49c23e125a5605039", null ], + [ "help", "class_controllers_1_1_page_ctrl.html#a91482c4db18186b33acbaf1528a50ddc", null ], + [ "mentions", "class_controllers_1_1_page_ctrl.html#a556098398af91f004876a2cc396b3d50", null ] +]; \ No newline at end of file diff --git a/html/class_controllers_1_1_page_ctrl.png b/html/class_controllers_1_1_page_ctrl.png new file mode 100644 index 0000000000000000000000000000000000000000..d5ffd024e64c10407985b1319e267f43f8defc28 GIT binary patch literal 438 zcmV;n0ZIOeP)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0003& zNklI+)lv0F{R8`+=fmBs} zoggWW+UH-*FqdrCJ)nUON9i0;_L(scl$YF_?LOj4m+v#L&S6SB@-1r}-7&d3s@XCz zjsd7uVbwrSr8UYOWcK$R=n^{uT`GAltvj^=s2oy0HR~ubwN3+DAFZnDPz$80>T3g~ zlv02IV5koOL?{aM`2>-oKpQ896bAZ(r?x-dQjeel6+Pftuwlr7tn3In_HT1KqaxQZPppTTl>HSsKo70XSG??Ke0zW z;Rc#0t!-;1H0xW?V=C`JCb8=d&X!g%<_ypG$iU{`?AaIJ1>Ke<$zSAW + + + + + + +Folliow: ProjectCtrl Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ProjectCtrl Class Reference
+
+
+
+Inheritance diagram for ProjectCtrl:
+
+
+ + +MotherCtrl + +
+ + + + + + + + + + + + +

+Public Member Functions

 home ()
 search ()
 addedit_project ()
 display ()
 sendEmail ()
 accept ()
 refuse ()
 delete ()
 change_image_status ()
 delete_image ()
+ + + + + +

+Additional Inherited Members

Protected Member Functions inherited from MotherCtrl
 _display ($strView, bool $boolDisplay=true)
Protected Attributes inherited from MotherCtrl
+array $_arrData = array()
+

Detailed Description

+

Le controler des Project

Author
Yasser, Laura, Besnik & Guillaume
+

Member Function Documentation

+ +

◆ accept()

+ +
+
+ + + + + + + +
accept ()
+
+

Fonction de modération de projet = accepté

+ +
+
+ +

◆ addedit_project()

+ +
+
+ + + + + + + +
addedit_project ()
+
+

Fonction d'affichage de la page projet

+ +
+
+ +

◆ change_image_status()

+ +
+
+ + + + + + + +
change_image_status ()
+
+

Fonction de changement de statut (Approuvé, Refusé, En attente)

+ +
+
+ +

◆ delete()

+ +
+
+ + + + + + + +
delete ()
+
+

Fonction de suppression de projet

+ +
+
+ +

◆ delete_image()

+ +
+
+ + + + + + + +
delete_image ()
+
+

Fonction de validation de l'image de projet

+ +
+
+ +

◆ display()

+ +
+
+ + + + + + + +
display ()
+
+

Fonction d'affichage d'un projet

+ +
+
+ +

◆ home()

+ +
+
+ + + + + + + +
home ()
+
+

Fonction d'affichage de la page d'acceuil

+ +
+
+ +

◆ refuse()

+ +
+
+ + + + + + + +
refuse ()
+
+

Fonction de modération de projet = refusé

+ +
+
+ +

◆ search()

+ +
+
+ + + + + + + +
search ()
+
+

Fonction d'affichage de la barre de recherche

+ +
+
+ +

◆ sendEmail()

+ +
+
+ + + + + + + +
sendEmail ()
+
+

Fonction d'envoi d'email

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • C:/Users/Guill/projet_php/controllers/ProjectCtrl.php
  • +
+
+
+ +
+ + + + diff --git a/html/class_controllers_1_1_project_ctrl.js b/html/class_controllers_1_1_project_ctrl.js new file mode 100644 index 0000000..4004ce9 --- /dev/null +++ b/html/class_controllers_1_1_project_ctrl.js @@ -0,0 +1,13 @@ +var class_controllers_1_1_project_ctrl = +[ + [ "accept", "class_controllers_1_1_project_ctrl.html#acb64affba32059c09533892d9ded224a", null ], + [ "addedit_project", "class_controllers_1_1_project_ctrl.html#ac32a8bea04680b10c60ecf77a3e95c38", null ], + [ "change_image_status", "class_controllers_1_1_project_ctrl.html#a72c20be54a849f2bdb7ac4f9a53e6222", null ], + [ "delete", "class_controllers_1_1_project_ctrl.html#a13bdffdd926f26b825ea57066334ff01", null ], + [ "delete_image", "class_controllers_1_1_project_ctrl.html#a85a7f837f4b7aaf26a6f3405606141a1", null ], + [ "display", "class_controllers_1_1_project_ctrl.html#a0b9b6e6acd4a839fc7c2f26f96b5cfa8", null ], + [ "home", "class_controllers_1_1_project_ctrl.html#a174b8e4c7d4d7363c6f773671defdeff", null ], + [ "refuse", "class_controllers_1_1_project_ctrl.html#a68a43ec4877b5210ef8ad989fbc14d82", null ], + [ "search", "class_controllers_1_1_project_ctrl.html#a796bf438724e047aeef18579732a3780", null ], + [ "sendEmail", "class_controllers_1_1_project_ctrl.html#a6665aeb6e312ea89283ce785f0dfad60", null ] +]; \ No newline at end of file diff --git a/html/class_controllers_1_1_project_ctrl.png b/html/class_controllers_1_1_project_ctrl.png new file mode 100644 index 0000000000000000000000000000000000000000..7f9b2da79f3e5a53b952b5cbc1b386a19503663a GIT binary patch literal 440 zcmeAS@N?(olHy`uVBq!ia0vp^9zYzx!3-pOw;gT#%ORA&2%eVx+vRC~)SQ!hN(^CL>eBT0Vx3 z0Ff6KO&);@CJQ@rG5n*^LGev>n!&D^v^}eHviy%{HhfR2si%Sjfgmrs5Ze-7N zmd#D5zwwy;g;|ix8&ih#&8!pqq$Y2(xw>bT;QBtRU(74chMj#QdHhVC)iqP8m3x}k ziQX*Cb~9gaik~4i{EK9U;q-mnzcys=+VR+S(}T0K|DN^!uf1UXzC(ZHJ3D@Ku?PyX bzF^PlweGgPwcrvkj2S##{an^LB{Ts5@x8|5 literal 0 HcmV?d00001 diff --git a/html/class_controllers_1_1_user_ctrl.html b/html/class_controllers_1_1_user_ctrl.html new file mode 100644 index 0000000..705ea24 --- /dev/null +++ b/html/class_controllers_1_1_user_ctrl.html @@ -0,0 +1,235 @@ + + + + + + + +Folliow: UserCtrl Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
UserCtrl Class Reference
+
+
+
+Inheritance diagram for UserCtrl:
+
+
+ + +MotherCtrl + +
+ + + + + + + +

+Public Member Functions

 login ()
 logout ()
 signup ()
 user ()
 edit ()
+ + + + + +

+Additional Inherited Members

Protected Member Functions inherited from MotherCtrl
 _display ($strView, bool $boolDisplay=true)
Protected Attributes inherited from MotherCtrl
+array $_arrData = array()
+

Detailed Description

+

Le controller de la page d'aide utilisateur

Author
Guillaume & Besnik & Yasser
+

Member Function Documentation

+ +

◆ edit()

+ +
+
+ + + + + + + +
edit ()
+
+

le controlleur de la modification d'un user

+ +
+
+ +

◆ login()

+ +
+
+ + + + + + + +
login ()
+
+

Page Login

+ +
+
+ +

◆ logout()

+ +
+
+ + + + + + + +
logout ()
+
+

Fonction pour ce déconnecter

+ +
+
+ +

◆ signup()

+ +
+
+ + + + + + + +
signup ()
+
+

Fonction d'inscription d'un utilisateur Effectue les validations du formulaire, vérifie l'unicité du mail et du pseudo, puis insère l'utilisateur en base de données

Returns
void
+ +
+
+ +

◆ user()

+ +
+
+ + + + + + + +
user ()
+
+

le controlleur affichage de la page user

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • C:/Users/Guill/projet_php/controllers/UserCtrl.php
  • +
+
+
+ +
+ + + + diff --git a/html/class_controllers_1_1_user_ctrl.js b/html/class_controllers_1_1_user_ctrl.js new file mode 100644 index 0000000..ffd55eb --- /dev/null +++ b/html/class_controllers_1_1_user_ctrl.js @@ -0,0 +1,8 @@ +var class_controllers_1_1_user_ctrl = +[ + [ "edit", "class_controllers_1_1_user_ctrl.html#a5cb75cbb16467eb1768837d126dc535b", null ], + [ "login", "class_controllers_1_1_user_ctrl.html#aa311da27ba5706f5710cea7706c8eae1", null ], + [ "logout", "class_controllers_1_1_user_ctrl.html#a082405d89acd6835c3a7c7a08a7adbab", null ], + [ "signup", "class_controllers_1_1_user_ctrl.html#a852ed40b79f143c1478699d908f46957", null ], + [ "user", "class_controllers_1_1_user_ctrl.html#ae8a275690ff1b618e1947378b0ed73ae", null ] +]; \ No newline at end of file diff --git a/html/class_controllers_1_1_user_ctrl.png b/html/class_controllers_1_1_user_ctrl.png new file mode 100644 index 0000000000000000000000000000000000000000..c88b37f3a30fdb1107d3c408acd1440016e62217 GIT binary patch literal 413 zcmeAS@N?(olHy`uVBq!ia0vp^9zYzx!3-pOw;gT|9~1|? z|E0LXr%rE?RJ!ErT~cNlcbcvC?UuBj&~ahW?4KrEioV4+<^BHUePNS(_Lb@Yd!6iS rUo3-wPH}aar{$oew9N=;v}62)ZkxrA_Rfd{1|);0tDnm{r-UW|&|I{q literal 0 HcmV?d00001 diff --git a/html/class_entities_1_1_authorisation.html b/html/class_entities_1_1_authorisation.html new file mode 100644 index 0000000..5113dfd --- /dev/null +++ b/html/class_entities_1_1_authorisation.html @@ -0,0 +1,245 @@ + + + + + + + +Folliow: Authorisation Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Authorisation Class Reference
+
+
+
+Inheritance diagram for Authorisation:
+
+
+ + +Mother + +
+ + + + + + + + + +

+Public Member Functions

 __construct ()
 getId ()
 setId (int $id)
 getName ()
 setName (string $name)
Public Member Functions inherited from Mother
hydrate (array $arrData)
+ + + + + +

+Additional Inherited Members

Protected Member Functions inherited from Mother
nettoyer (string $strText)
Protected Attributes inherited from Mother
+string $_prefix = ''
+

Detailed Description

+

Classe d'un objet Authorisation

Author
Laura
+

Constructor & Destructor Documentation

+ +

◆ __construct()

+ +
+
+ + + + + + + +
__construct ()
+
+

le constructeur de la table authorisation

+ +
+
+

Member Function Documentation

+ +

◆ getId()

+ +
+
+ + + + + + + +
getId ()
+
+

Récuperation de l'id du statut d'un utilisateur

Returns
int l'id du statut
+ +
+
+ +

◆ getName()

+ +
+
+ + + + + + + +
getName ()
+
+

Récuperation de l'intitulé du statut d'un utilisateur

Returns
string l'intitulé du statut
+ +
+
+ +

◆ setId()

+ +
+
+ + + + + + + +
setId (int $id)
+
+

Mise à jour de l'id du statut d'un utilisateur

Parameters
+ + +
intle nouvelle id du statut
+
+
+ +
+
+ +

◆ setName()

+ +
+
+ + + + + + + +
setName (string $name)
+
+

Mise à jour de l'intitulé du statut d'un utilisateur

Returns
string le nouvel intitulé du statut
+ +
+
+
The documentation for this class was generated from the following file:
    +
  • C:/Users/Guill/projet_php/entities/Authorisation.php
  • +
+
+
+ +
+ + + + diff --git a/html/class_entities_1_1_authorisation.js b/html/class_entities_1_1_authorisation.js new file mode 100644 index 0000000..2efd44c --- /dev/null +++ b/html/class_entities_1_1_authorisation.js @@ -0,0 +1,8 @@ +var class_entities_1_1_authorisation = +[ + [ "__construct", "class_entities_1_1_authorisation.html#a095c5d389db211932136b53f25f39685", null ], + [ "getId", "class_entities_1_1_authorisation.html#a12251d0c022e9e21c137a105ff683f13", null ], + [ "getName", "class_entities_1_1_authorisation.html#a3d0963e68bb313b163a73f2803c64600", null ], + [ "setId", "class_entities_1_1_authorisation.html#af8e956b8b0343ff7d1b955c26cb0c780", null ], + [ "setName", "class_entities_1_1_authorisation.html#a392752b62c4f6aacea5c269690921ef3", null ] +]; \ No newline at end of file diff --git a/html/class_entities_1_1_authorisation.png b/html/class_entities_1_1_authorisation.png new file mode 100644 index 0000000000000000000000000000000000000000..04efd57420d218dda5bcd1fb4a86d59e4cbd7119 GIT binary patch literal 425 zcmV;a0apHrP)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0003r zNklsH52r$Ob;a0>H;|tYcSWLkMBIh=`tQBO;owHP~%i!d-)n z)D_%C*e~k@$2!)rjwPaIj&-bK{{fbndA^86L}tsezk@Xk#K~a6b7-7puxv7}J`fRQ zS1CO<4e^oFG!ALDyFEh%OIFRO`375F9LgUZKV5O!gr%9ve~E3iurExV`b3LO*8^-T z!V_$9=k1NK*F|`NwM89P=WT3)7IfRSY7yND`RH{g3~DPPGEI(k>}o7C^K|_HJoiUE T{$98_00000NkvXXu0mjfgGIXC literal 0 HcmV?d00001 diff --git a/html/class_entities_1_1_category.html b/html/class_entities_1_1_category.html new file mode 100644 index 0000000..4dea3ca --- /dev/null +++ b/html/class_entities_1_1_category.html @@ -0,0 +1,300 @@ + + + + + + + +Folliow: Category Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Category Class Reference
+
+
+
+Inheritance diagram for Category:
+
+
+ + +Mother + +
+ + + + + + + + + + + +

+Public Member Functions

 __construct ()
 getId ()
 setId ($id)
 getName ()
 setName ($name)
 getParent ()
 setParent ($parent)
Public Member Functions inherited from Mother
hydrate (array $arrData)
+ + + + + +

+Protected Attributes

+string $_name = ''
+int $_parent = null
Protected Attributes inherited from Mother
+string $_prefix = ''
+ + + +

+Additional Inherited Members

Protected Member Functions inherited from Mother
nettoyer (string $strText)
+

Detailed Description

+

Classe d'un objet Category

Author
Laura
+

Constructor & Destructor Documentation

+ +

◆ __construct()

+ +
+
+ + + + + + + +
__construct ()
+
+

le constructeur de la table category

+ +
+
+

Member Function Documentation

+ +

◆ getId()

+ +
+
+ + + + + + + +
getId ()
+
+

Récuperation de l'id de la catégorie

Returns
int l'id de la catégorie
+ +
+
+ +

◆ getName()

+ +
+
+ + + + + + + +
getName ()
+
+

Récuperation du nom de la catégorie

Returns
string nom de la catégorie
+ +
+
+ +

◆ getParent()

+ +
+
+ + + + + + + +
getParent ()
+
+

Récuperation du nom du parent de la catégorie

Returns
int nom de la catégorie
+ +
+
+ +

◆ setId()

+ +
+
+ + + + + + + +
setId ( $id)
+
+

Mise à jour de l'id de la catégorie

Parameters
+ + +
intle nouvelle id
+
+
+ +
+
+ +

◆ setName()

+ +
+
+ + + + + + + +
setName ( $name)
+
+

Mise à jour du nom de la catégorie

Parameters
+ + +
stringle nouveau nom de la catégorie
+
+
+ +
+
+ +

◆ setParent()

+ +
+
+ + + + + + + +
setParent ( $parent)
+
+

Mise à jour du nom du parent de la catégorie

Parameters
+ + +
intle nouveau nom de la catégorie
+
+
+ +
+
+
The documentation for this class was generated from the following file:
    +
  • C:/Users/Guill/projet_php/entities/Category.php
  • +
+
+
+ +
+ + + + diff --git a/html/class_entities_1_1_category.js b/html/class_entities_1_1_category.js new file mode 100644 index 0000000..5888065 --- /dev/null +++ b/html/class_entities_1_1_category.js @@ -0,0 +1,10 @@ +var class_entities_1_1_category = +[ + [ "__construct", "class_entities_1_1_category.html#a095c5d389db211932136b53f25f39685", null ], + [ "getId", "class_entities_1_1_category.html#a12251d0c022e9e21c137a105ff683f13", null ], + [ "getName", "class_entities_1_1_category.html#a3d0963e68bb313b163a73f2803c64600", null ], + [ "getParent", "class_entities_1_1_category.html#a95ecaee3537b1ad29b04ef383a57bbae", null ], + [ "setId", "class_entities_1_1_category.html#a87313ad678fb2a2a8efb435cf0bdb9a0", null ], + [ "setName", "class_entities_1_1_category.html#a2fe666694997d047711d7653eca2f132", null ], + [ "setParent", "class_entities_1_1_category.html#a3b949fc022c82eb25e8650e0e01404fa", null ] +]; \ No newline at end of file diff --git a/html/class_entities_1_1_category.png b/html/class_entities_1_1_category.png new file mode 100644 index 0000000000000000000000000000000000000000..4dabefedf684342495322ba8ca5366aad1196f5a GIT binary patch literal 388 zcmeAS@N?(olHy`uVBq!ia0vp^4nQ2h!3-qlB{r7>Dd_;85ZC|z{{xvX-h3_XKeXJ! zK(jz%`k5CG9y|bwo1P6@0+iz{3GxeO0P?}WoN4wI1_nlcPZ!6K3dXl{Z}zn+@U-n# zY5QLPXrt>iuBs#Fjy~}@I)BrR{-BQQ2hO|^G!VR4&6>dQ;AGb7(vA*4E9Otf+Y6Zj zvQ~aubl6H^&peA9$Jo=mZfdOH`|{A1b<13lyQ&*2`WY%?8XmUj^<8w^v#(Vz(*4w% z1GWtv8NQ4^#2Ab>J2NnBzs0~{^NDHOSQy$0>h+Bc}h#C$gN&p|E>&k@N`@ + + + + + + +Folliow: Image Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Image Class Reference
+
+
+
+Inheritance diagram for Image:
+
+
+ + +Mother + +
+ + + + + + + + + + + + + +

+Public Member Functions

 __construct ()
 getId ()
 setId ($id)
 getName ()
 setName ($name)
 getAlt ()
 setAlt ($alt)
 getStatus ()
 setStatus ($status)
Public Member Functions inherited from Mother
hydrate (array $arrData)
+ + + + + +

+Additional Inherited Members

Protected Member Functions inherited from Mother
nettoyer (string $strText)
Protected Attributes inherited from Mother
+string $_prefix = ''
+

Detailed Description

+

Classe d'un objet Projet

Author
Laura
+

Constructor & Destructor Documentation

+ +

◆ __construct()

+ +
+
+ + + + + + + +
__construct ()
+
+

le constructeur de la table image

+ +
+
+

Member Function Documentation

+ +

◆ getAlt()

+ +
+
+ + + + + + + +
getAlt ()
+
+

Récuperation de l'alt

Returns
string contenu de l'alt
+ +
+
+ +

◆ getId()

+ +
+
+ + + + + + + +
getId ()
+
+

Récuperation de l'id de l'image

Returns
int l'id de l'image
+ +
+
+ +

◆ getName()

+ +
+
+ + + + + + + +
getName ()
+
+

Récuperation du nom de l'image

Returns
string nom de l'image
+ +
+
+ +

◆ getStatus()

+ +
+
+ + + + + + + +
getStatus ()
+
+

Récuperation du statut de la photo

Returns
string du statut
+ +
+
+ +

◆ setAlt()

+ +
+
+ + + + + + + +
setAlt ( $alt)
+
+

Mise à jour de l'alt

Parameters
+ + +
stringle nouveau contenu de l'alt
+
+
+ +
+
+ +

◆ setId()

+ +
+
+ + + + + + + +
setId ( $id)
+
+

Mise à jour de l'id de l'image

Parameters
+ + +
intle nouvelle id
+
+
+ +
+
+ +

◆ setName()

+ +
+
+ + + + + + + +
setName ( $name)
+
+

Mise à jour du nom de l'image

Parameters
+ + +
stringle nouveau nom de l'image
+
+
+ +
+
+ +

◆ setStatus()

+ +
+
+ + + + + + + +
setStatus ( $status)
+
+

Mise à jour du statut de la photo

Parameters
+ + +
stringle nouveau statut de la photo
+
+
+ +
+
+
The documentation for this class was generated from the following file:
    +
  • C:/Users/Guill/projet_php/entities/Image.php
  • +
+
+
+ +
+ + + + diff --git a/html/class_entities_1_1_image.js b/html/class_entities_1_1_image.js new file mode 100644 index 0000000..93ad5c0 --- /dev/null +++ b/html/class_entities_1_1_image.js @@ -0,0 +1,12 @@ +var class_entities_1_1_image = +[ + [ "__construct", "class_entities_1_1_image.html#a095c5d389db211932136b53f25f39685", null ], + [ "getAlt", "class_entities_1_1_image.html#a07e72be0677630865d3292e14670096b", null ], + [ "getId", "class_entities_1_1_image.html#a12251d0c022e9e21c137a105ff683f13", null ], + [ "getName", "class_entities_1_1_image.html#a3d0963e68bb313b163a73f2803c64600", null ], + [ "getStatus", "class_entities_1_1_image.html#a9d21636071f529e2154051d3ea6e5921", null ], + [ "setAlt", "class_entities_1_1_image.html#a23d9d1d65334db3a72b3c19e146cfe28", null ], + [ "setId", "class_entities_1_1_image.html#a87313ad678fb2a2a8efb435cf0bdb9a0", null ], + [ "setName", "class_entities_1_1_image.html#a2fe666694997d047711d7653eca2f132", null ], + [ "setStatus", "class_entities_1_1_image.html#a7d02c100d684fe1dffc6cb3486a48511", null ] +]; \ No newline at end of file diff --git a/html/class_entities_1_1_image.png b/html/class_entities_1_1_image.png new file mode 100644 index 0000000000000000000000000000000000000000..74a284ea99f20aadbcd0312912f9481cdad6474c GIT binary patch literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^CO{m(!3-o54=1SR%c<=xyZhAIs2~du+B*-tA0mugfbEer>fP!B_4o)aa4YS zNzH%%nnhvR)pL`k#jY#b?8iKsD|ki1ICGO zx3%W$9B6eg!Y70 ztNi`j+dh^%OfmD;XrJ-y4I7s&tIxq(#bwn&maA+m6@G6G(MYvjVf)Brk=>J>lYgF^ zTxn?=dNsZz_l1Lce6#x2efysLU$V+-34@@Z2|1)^H`njxgN@xNA DxIUfR literal 0 HcmV?d00001 diff --git a/html/class_entities_1_1_mother.html b/html/class_entities_1_1_mother.html new file mode 100644 index 0000000..91a1fd5 --- /dev/null +++ b/html/class_entities_1_1_mother.html @@ -0,0 +1,147 @@ + + + + + + + +Folliow: Mother Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Mother Class Reference
+
+
+
+Inheritance diagram for Mother:
+
+
+ + +Authorisation +Category +Image +Project +User + +
+ + + +

+Public Member Functions

hydrate (array $arrData)
+ + +

+Protected Member Functions

nettoyer (string $strText)
+ + +

+Protected Attributes

+string $_prefix = ''
+

Detailed Description

+

Classe d'un Mere de tout objet

Author
Yass & Laura
+

The documentation for this class was generated from the following file:
    +
  • C:/Users/Guill/projet_php/entities/Mother.php
  • +
+
+
+ +
+ + + + diff --git a/html/class_entities_1_1_mother.png b/html/class_entities_1_1_mother.png new file mode 100644 index 0000000000000000000000000000000000000000..57f207485ac109e969385cb61960bc746f5cae3c GIT binary patch literal 1101 zcmeAS@N?(olHy`uVBq!ia0y~yV7vxo2XHV0$;nYmB!QH4fKQ0)|NsAi%olIImi8Z7 zZegHVATj;Siw6%L0L4wuhAjcgah3%61v3EoU|`NP`w9aC^9@fI$B+ufw{ssBZ88vX z;h!z3_Wu8o`3a3j1b98%XXi)vMJmDu zf-EvNU3>c9+aGU(U)v_EWthKY)z`WQ&(B6N{u9uRYJXW;we#<}-OptwKRs0+t$jd! zCI7?77oTMJ?mt^~UG`kTC>8-ylN~#ETGVoRpk-lxnRm~1 z8Xgk@S?s^X?o14SVuQU?^R>(u=hpLEuMvGb;$eltkl#;}HW8*pF=s5k!hFt9C9 zUn9D}{Mf}fMytb7j8%`*uEsI`IuyldbtH&!7f^%{<~mj=bJn8oaXZ6~dH46-p35I_ zJc^NP4u8OdZ46g{j$nGu45dVN=rWW7Ej#cNMzQ8`JIH3UY82SPsK(n&F#Slz{9N`& zz$qhzN3q3hj=U2`X`QXT$EB-FQoS!-wTPeeDq^*YCgKp5rO%+m-g&mdTd?LvMCoP)&(dK6^WC z%95V6wZ#r)qBprFZ8Z3{CW30-e;T* zkC@|eiEr)wYqD!^TV1z{eqSWyIVmLh>aKgd`dhEHe+XRrGic{=)12>yMKRg83-&l< zmwj3E?bDY&-o5b6*Nt0R)?_cK^z@yy>Fpf>zxA(Q^4P60eS4rR(|f&&=JMF=ORIIi z9oQT?N$;`4%}JZquK2Mh%=6a6Q2%q!%~j$9_N(lDuzSn9v(xW}&CT;Z&9WIN`8en1 z)0{i+ul(G$XU4w#r{>Xr?{D!6;yyQhiPbeNPgW4l+pThSW0b i3`q8UcIH@k&R#rd>Vs5)S9^dNpTX1B&t;ucLK6Vc)*_<- literal 0 HcmV?d00001 diff --git a/html/class_entities_1_1_project.html b/html/class_entities_1_1_project.html new file mode 100644 index 0000000..aef01ff --- /dev/null +++ b/html/class_entities_1_1_project.html @@ -0,0 +1,686 @@ + + + + + + + +Folliow: Project Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Project Class Reference
+
+
+
+Inheritance diagram for Project:
+
+
+ + +Mother + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 __construct ()
 getId ()
 setId (int $id)
 getTitle ()
 setTitle ($title)
 getDescription ()
 setDescription ($description)
 getThumbnail ()
 setThumbnail ($thumbnail)
 getContent ()
 setContent ($content)
 getCreation_date (string $strFormat="fr_FR")
 setCreation_date ($creation_date)
 getStatus ()
 setStatus ($status)
 getUser_id ()
 setUser_id ($user)
 getCategory ()
 setCategory ($category)
 getCreatorName ()
 setCreatorName ($creatorname)
 getUser_image ()
 setUser_image ($user_image)
 getProject_deleted_at ()
 setProject_deleted_at ($project_deleted_at)
Public Member Functions inherited from Mother
hydrate (array $arrData)
+ + + + + +

+Additional Inherited Members

Protected Member Functions inherited from Mother
nettoyer (string $strText)
Protected Attributes inherited from Mother
+string $_prefix = ''
+

Detailed Description

+

Classe d'un objet Projet

Author
Yass
+

Constructor & Destructor Documentation

+ +

◆ __construct()

+ +
+
+ + + + + + + +
__construct ()
+
+

le constructeur de la table project

+ +
+
+

Member Function Documentation

+ +

◆ getCategory()

+ +
+
+ + + + + + + +
getCategory ()
+
+

Récupération de la catégorie

Returns
int id de la catégorie
+ +
+
+ +

◆ getContent()

+ +
+
+ + + + + + + +
getContent ()
+
+

Récuperation du contenu

Returns
string contenu du projet
+ +
+
+ +

◆ getCreation_date()

+ +
+
+ + + + + + + +
getCreation_date (string $strFormat = "fr_FR")
+
+

Récupération de la date de création

Parameters
+ + +
stringlang de formatage de la date (par défaut = "fr_FR")
+
+
+
Returns
string date de création formatter
+ +
+
+ +

◆ getCreatorName()

+ +
+
+ + + + + + + +
getCreatorName ()
+
+

Récupération du nom du créateur

Returns
string nom du créateur
+ +
+
+ +

◆ getDescription()

+ +
+
+ + + + + + + +
getDescription ()
+
+

Récuperation de la description

Returns
string description du projet
+ +
+
+ +

◆ getId()

+ +
+
+ + + + + + + +
getId ()
+
+

Récuperation de l'id du projet

Returns
int l'id du projet
+ +
+
+ +

◆ getProject_deleted_at()

+ +
+
+ + + + + + + +
getProject_deleted_at ()
+
+

Récupération de la date du projet supprimer

Returns
string date du projet
+ +
+
+ +

◆ getStatus()

+ +
+
+ + + + + + + +
getStatus ()
+
+

Récupération du statut

Returns
string statut
+ +
+
+ +

◆ getThumbnail()

+ +
+
+ + + + + + + +
getThumbnail ()
+
+

Récuperation de l'image

Returns
string chemin vers l'image
+ +
+
+ +

◆ getTitle()

+ +
+
+ + + + + + + +
getTitle ()
+
+

Récuperation du titre

Returns
string tite du projet
+ +
+
+ +

◆ getUser_id()

+ +
+
+ + + + + + + +
getUser_id ()
+
+

Récupération de l'utilisateur

Returns
int id de l'utilisateur
+ +
+
+ +

◆ getUser_image()

+ +
+
+ + + + + + + +
getUser_image ()
+
+

Récupération du chemin photo profil

Returns
string nom du chemin photo profil
+ +
+
+ +

◆ setCategory()

+ +
+
+ + + + + + + +
setCategory ( $category)
+
+

Mise à jour de la catégorie

Parameters
+ + +
intid de la catégorie
+
+
+ +
+
+ +

◆ setContent()

+ +
+
+ + + + + + + +
setContent ( $content)
+
+

Mise à jour du contenu

Parameters
+ + +
stringle nouveau contenu
+
+
+ +
+
+ +

◆ setCreation_date()

+ +
+
+ + + + + + + +
setCreation_date ( $creation_date)
+
+

Mise à jour de la date de création

Parameters
+ + +
stringla nouvelle date de création
+
+
+ +
+
+ +

◆ setCreatorName()

+ +
+
+ + + + + + + +
setCreatorName ( $creatorname)
+
+

Mise à jour du nom du créateur

Parameters
+ + +
stringle nom du créateur
+
+
+ +
+
+ +

◆ setDescription()

+ +
+
+ + + + + + + +
setDescription ( $description)
+
+

Mise à jour de la description

Parameters
+ + +
stringla nouvelle description
+
+
+ +
+
+ +

◆ setId()

+ +
+
+ + + + + + + +
setId (int $id)
+
+

Mise à jour de l'id du projet

Parameters
+ + +
intle nouvelle id
+
+
+ +
+
+ +

◆ setProject_deleted_at()

+ +
+
+ + + + + + + +
setProject_deleted_at ( $project_deleted_at)
+
+

Mise à jour de la date de suppression de projet

Parameters
+ + +
stringdate du projet
+
+
+ +
+
+ +

◆ setStatus()

+ +
+
+ + + + + + + +
setStatus ( $status)
+
+

Mise à jour du statut

Parameters
+ + +
stringle nouveau statut
+
+
+ +
+
+ +

◆ setThumbnail()

+ +
+
+ + + + + + + +
setThumbnail ( $thumbnail)
+
+

Mise à jour de l'image

Parameters
+ + +
stringchemin vers nouvelle image
+
+
+ +
+
+ +

◆ setTitle()

+ +
+
+ + + + + + + +
setTitle ( $title)
+
+

Mise à jour du titre

Parameters
+ + +
stringle nouveau titre
+
+
+ +
+
+ +

◆ setUser_id()

+ +
+
+ + + + + + + +
setUser_id ( $user)
+
+

Mise à jour de l'utilisateur

Parameters
+ + +
intid de l'utilisateur
+
+
+ +
+
+ +

◆ setUser_image()

+ +
+
+ + + + + + + +
setUser_image ( $user_image)
+
+

Mise à jour du chemin photo profil

Parameters
+ + +
stringchemin photo profil
+
+
+ +
+
+
The documentation for this class was generated from the following file:
    +
  • C:/Users/Guill/projet_php/entities/Project.php
  • +
+
+
+ +
+ + + + diff --git a/html/class_entities_1_1_project.js b/html/class_entities_1_1_project.js new file mode 100644 index 0000000..75e289e --- /dev/null +++ b/html/class_entities_1_1_project.js @@ -0,0 +1,28 @@ +var class_entities_1_1_project = +[ + [ "__construct", "class_entities_1_1_project.html#a095c5d389db211932136b53f25f39685", null ], + [ "getCategory", "class_entities_1_1_project.html#ada0bf69887885f455ebdfbe878e14543", null ], + [ "getContent", "class_entities_1_1_project.html#a58e43f09a06ce4e29b192c4e17ce7915", null ], + [ "getCreation_date", "class_entities_1_1_project.html#a9e04be8cffd5e222d3d30316f4dc4b91", null ], + [ "getCreatorName", "class_entities_1_1_project.html#ab452dabc35c0719f920939e723fbf7a8", null ], + [ "getDescription", "class_entities_1_1_project.html#a2e7bb35c71bf1824456ceb944cb7a845", null ], + [ "getId", "class_entities_1_1_project.html#a12251d0c022e9e21c137a105ff683f13", null ], + [ "getProject_deleted_at", "class_entities_1_1_project.html#aacef5b0179bbf99069ded55d76593b5d", null ], + [ "getStatus", "class_entities_1_1_project.html#a9d21636071f529e2154051d3ea6e5921", null ], + [ "getThumbnail", "class_entities_1_1_project.html#a25efdffda986e6e4b814f422dfbc4707", null ], + [ "getTitle", "class_entities_1_1_project.html#a95e859a4588a39a1824b717378a84c29", null ], + [ "getUser_id", "class_entities_1_1_project.html#a5380938627a38b22f7e47f845d38e617", null ], + [ "getUser_image", "class_entities_1_1_project.html#a0c364ca2ee0d0adc004090ca9893b4d6", null ], + [ "setCategory", "class_entities_1_1_project.html#a309475f82c8fca1a84f96f802f05a5fb", null ], + [ "setContent", "class_entities_1_1_project.html#a04a5eddb7c3abc7bf31fa25b58f046bf", null ], + [ "setCreation_date", "class_entities_1_1_project.html#a547ac5297a9b9efc8a4b6bef00eb6c2e", null ], + [ "setCreatorName", "class_entities_1_1_project.html#aa37594941aea25a0f0d3a33d6a8757b7", null ], + [ "setDescription", "class_entities_1_1_project.html#a31fad3e39336ea079ea758e051866627", null ], + [ "setId", "class_entities_1_1_project.html#af8e956b8b0343ff7d1b955c26cb0c780", null ], + [ "setProject_deleted_at", "class_entities_1_1_project.html#a621433ce4917a196047b78e58e38d7fe", null ], + [ "setStatus", "class_entities_1_1_project.html#a7d02c100d684fe1dffc6cb3486a48511", null ], + [ "setThumbnail", "class_entities_1_1_project.html#a89bdfd911301f4ac284a937e93f4de50", null ], + [ "setTitle", "class_entities_1_1_project.html#a884ba9bb0d54bde7839e798db7964476", null ], + [ "setUser_id", "class_entities_1_1_project.html#a74bdd06d4bca0de42e55bdf7763ebfc4", null ], + [ "setUser_image", "class_entities_1_1_project.html#a17164d0ccbccaceb60280836d060e21f", null ] +]; \ No newline at end of file diff --git a/html/class_entities_1_1_project.png b/html/class_entities_1_1_project.png new file mode 100644 index 0000000000000000000000000000000000000000..7ee1d20a3bdf51fc3deee2a3a167dd17ae9a152d GIT binary patch literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^CO{m(!3-o54=1SR%c<=xyZhAIs2~du+B*-tA0mugfbEer>fP!B4W`8Y86i{CUuOP)!E>%L<`{3tDjzFzCBbkFo4glSZZ3P8YkL0FYQ376-Mlf1 zY0s8NU5Iy3Qu1Rw;2_OVVal9)o5hs*ZO{B!P5W-_W!2?y$mNa_XgKvx-^JyLs7L74 z<>AiPL_^oU-4uW7Y=F6UXtuPI$gzr5n)CAYu3l<9lr_hE^OIfWr`*46s(xC!V8?Xf ztj+VC_upBWnZ3XI+LGPzM>1YMzEF_*my;W4;1&LCD{bRj$CqdV{mgTe~DWM4f DKgOVv literal 0 HcmV?d00001 diff --git a/html/class_entities_1_1_user.html b/html/class_entities_1_1_user.html new file mode 100644 index 0000000..03c57eb --- /dev/null +++ b/html/class_entities_1_1_user.html @@ -0,0 +1,720 @@ + + + + + + + +Folliow: User Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
User Class Reference
+
+
+
+Inheritance diagram for User:
+
+
+ + +Mother + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 __construct ()
 getId ()
 setId (int $id)
 getName ()
 setName (string $name)
 getFirstname ()
 setFirstname (string $firstname)
 getPseudo ()
 setPseudo (string $pseudo)
 getImage ()
 setImage (?string $image)
 getMail ()
 setMail (string $mail)
 getPwd ()
 getPwdHash ()
 setPwd (string $pwd)
 getPhone ()
 setPhone (string $phone)
 getWork ()
 setWork (string $work)
 getBirth ()
 setBirth (?string $birth)
 getLocation ()
 setLocation (string $location)
 getDescription ()
 setDescription (string $description)
 getAccountCreation ()
 setAccountCreation (string $account_creation)
 getStatus ()
 setStatus (int $status)
Public Member Functions inherited from Mother
hydrate (array $arrData)
+ + + + + +

+Additional Inherited Members

Protected Member Functions inherited from Mother
nettoyer (string $strText)
Protected Attributes inherited from Mother
+string $_prefix = ''
+

Detailed Description

+

Classe d'un objet User

Author
Besnik & Laura
+

Constructor & Destructor Documentation

+ +

◆ __construct()

+ +
+
+ + + + + + + +
__construct ()
+
+

le constructeur de la table user

+ +
+
+

Member Function Documentation

+ +

◆ getAccountCreation()

+ +
+
+ + + + + + + +
getAccountCreation ()
+
+

Récuperation de la date de création d'un utilisateur

Returns
string la date de création de l'utilisateur
+ +
+
+ +

◆ getBirth()

+ +
+
+ + + + + + + +
getBirth ()
+
+

Récuperation de la date de naissance d'un utilisateur

Returns
string la date de naissance de l'utilisateur
+ +
+
+ +

◆ getDescription()

+ +
+
+ + + + + + + +
getDescription ()
+
+

Récuperation de la description d'un utilisateur

Returns
string la description de l'utilisateur
+ +
+
+ +

◆ getFirstname()

+ +
+
+ + + + + + + +
getFirstname ()
+
+

Récuperation du prénom d'un utilisateur

Returns
string le prénom de l'utilisateur
+ +
+
+ +

◆ getId()

+ +
+
+ + + + + + + +
getId ()
+
+

Récuperation de l'id d'un utilisateur

Returns
int l'id de l'utilisateur
+ +
+
+ +

◆ getImage()

+ +
+
+ + + + + + + +
getImage ()
+
+

Récuperation du nom de l'image d'un utilisateur

Returns
string du nom de l'image de l'utilisateur
+ +
+
+ +

◆ getLocation()

+ +
+
+ + + + + + + +
getLocation ()
+
+

Récuperation de la localisation d'un utilisateur

Returns
string la localisation de l'utilisateur
+ +
+
+ +

◆ getMail()

+ +
+
+ + + + + + + +
getMail ()
+
+

Récuperation de l'email d'un utilisateur

Returns
string l'email de l'utilisateur
+ +
+
+ +

◆ getName()

+ +
+
+ + + + + + + +
getName ()
+
+

Récuperation du nom d'un utilisateur

Returns
string le nom de l'utilisateur
+ +
+
+ +

◆ getPhone()

+ +
+
+ + + + + + + +
getPhone ()
+
+

Récuperation du numéro de téléphone d'un utilisateur

Returns
string le numéro de téléphone de l'utilisateur
+ +
+
+ +

◆ getPseudo()

+ +
+
+ + + + + + + +
getPseudo ()
+
+

Récuperation du pseudo unique d'un utilisateur

Returns
string le pseudo de l'utilisateur
+ +
+
+ +

◆ getPwd()

+ +
+
+ + + + + + + +
getPwd ()
+
+

Récuperation du mot de passe d'un utilisateur

Returns
string le mot de passe de l'utilisateur
+ +
+
+ +

◆ getPwdHash()

+ +
+
+ + + + + + + +
getPwdHash ()
+
+

Récuperation du mot de passe haché d'un utilisateur

Returns
string le mot de passe haché de l'utilisateur
+ +
+
+ +

◆ getStatus()

+ +
+
+ + + + + + + +
getStatus ()
+
+

Récuperation de l'id du statut d'un utilisateur

Returns
int l'id du statut de l'utilisateur
+ +
+
+ +

◆ getWork()

+ +
+
+ + + + + + + +
getWork ()
+
+

Récuperation de la profession d'un utilisateur

Returns
string la profession de l'utilisateur
+ +
+
+ +

◆ setAccountCreation()

+ +
+
+ + + + + + + +
setAccountCreation (string $account_creation)
+
+

Mise à jour de la date de création d'un utilisateur

Returns
string la nouvelle date de création de l'utilisateur
+ +
+
+ +

◆ setBirth()

+ +
+
+ + + + + + + +
setBirth (?string $birth)
+
+

Mise à jour de la date de naissance d'un utilisateur

Returns
string la nouvelle date de naissance de l'utilisateur
+ +
+
+ +

◆ setDescription()

+ +
+
+ + + + + + + +
setDescription (string $description)
+
+

Mise à jour de la description d'un utilisateur

Returns
string la nouvelle description de l'utilisateur
+ +
+
+ +

◆ setFirstname()

+ +
+
+ + + + + + + +
setFirstname (string $firstname)
+
+

Mise à jour du prénom d'un utilisateur

Returns
string le nouveau prénom de l'utilisateur
+ +
+
+ +

◆ setId()

+ +
+
+ + + + + + + +
setId (int $id)
+
+

Mise à jour de l'id d'un utilisateur

Parameters
+ + +
intle nouvelle id de l'utilisateur
+
+
+ +
+
+ +

◆ setImage()

+ +
+
+ + + + + + + +
setImage (?string $image)
+
+

Mise à jour du nom de l'image d'un utilisateur

Returns
string le nouveau nom de l'image de l'utilisateur
+ +
+
+ +

◆ setLocation()

+ +
+
+ + + + + + + +
setLocation (string $location)
+
+

Mise à jour de la localisation d'un utilisateur

Returns
string la nouvelle localisation de l'utilisateur
+ +
+
+ +

◆ setMail()

+ +
+
+ + + + + + + +
setMail (string $mail)
+
+

Mise à jour de l'email d'un utilisateur

Returns
string le nouvel email de l'utilisateur
+ +
+
+ +

◆ setName()

+ +
+
+ + + + + + + +
setName (string $name)
+
+

Mise à jour du nom d'un utilisateur

Returns
string le nouveau nom de l'utilisateur
+ +
+
+ +

◆ setPhone()

+ +
+
+ + + + + + + +
setPhone (string $phone)
+
+

Mise à jour du numéro de téléphone d'un utilisateur

Returns
string le nouveau numéro de téléphone de l'utilisateur
+ +
+
+ +

◆ setPseudo()

+ +
+
+ + + + + + + +
setPseudo (string $pseudo)
+
+

Mise à jour du pseudo unique d'un utilisateur

Returns
string le nouveau pseudo de l'utilisateur
+ +
+
+ +

◆ setPwd()

+ +
+
+ + + + + + + +
setPwd (string $pwd)
+
+

Mise à jour du mot de passe d'un utilisateur

Returns
string le nouveau mot de passe de l'utilisateur
+ +
+
+ +

◆ setStatus()

+ +
+
+ + + + + + + +
setStatus (int $status)
+
+

Mise à jour de l'id du statut d'un utilisateur

Returns
int le nouvel id du statut de l'utilisateur
+ +
+
+ +

◆ setWork()

+ +
+
+ + + + + + + +
setWork (string $work)
+
+

Mise à jour de la profession d'un utilisateur

Returns
string la nouvelle profession de l'utilisateur
+ +
+
+
The documentation for this class was generated from the following file:
    +
  • C:/Users/Guill/projet_php/entities/User.php
  • +
+
+
+ +
+ + + + diff --git a/html/class_entities_1_1_user.js b/html/class_entities_1_1_user.js new file mode 100644 index 0000000..0aa5a8b --- /dev/null +++ b/html/class_entities_1_1_user.js @@ -0,0 +1,33 @@ +var class_entities_1_1_user = +[ + [ "__construct", "class_entities_1_1_user.html#a095c5d389db211932136b53f25f39685", null ], + [ "getAccountCreation", "class_entities_1_1_user.html#af59c6aacb070f06e8e58689537fbd528", null ], + [ "getBirth", "class_entities_1_1_user.html#a047145d5639961335f0d771c517aaf0d", null ], + [ "getDescription", "class_entities_1_1_user.html#a2e7bb35c71bf1824456ceb944cb7a845", null ], + [ "getFirstname", "class_entities_1_1_user.html#a42c9621713b6dcdfb9edd5a7630b6d93", null ], + [ "getId", "class_entities_1_1_user.html#a12251d0c022e9e21c137a105ff683f13", null ], + [ "getImage", "class_entities_1_1_user.html#a2af8add37797384585cae101fb8cbfe7", null ], + [ "getLocation", "class_entities_1_1_user.html#a270a747ff748def87f313beeef64f3b3", null ], + [ "getMail", "class_entities_1_1_user.html#ae4923d9ec6cf4408080fc1c37e20e0ba", null ], + [ "getName", "class_entities_1_1_user.html#a3d0963e68bb313b163a73f2803c64600", null ], + [ "getPhone", "class_entities_1_1_user.html#a5e8a94cd59635ac689687849b9f5cd9d", null ], + [ "getPseudo", "class_entities_1_1_user.html#a7151e41f7b522d26d02102d970e9a309", null ], + [ "getPwd", "class_entities_1_1_user.html#a0160ba4e6743352e15383ca3a47c1234", null ], + [ "getPwdHash", "class_entities_1_1_user.html#a91fabc9c7c6ebd4973f7587f60453c10", null ], + [ "getStatus", "class_entities_1_1_user.html#a9d21636071f529e2154051d3ea6e5921", null ], + [ "getWork", "class_entities_1_1_user.html#a475782b361199b28417f1a21efd5b642", null ], + [ "setAccountCreation", "class_entities_1_1_user.html#aa8eb1e10f1ab32dcfa4df144fe02ba16", null ], + [ "setBirth", "class_entities_1_1_user.html#a4a6578fae7673e253c0ddb1f95cf227c", null ], + [ "setDescription", "class_entities_1_1_user.html#a3eda7afea80371b606cd289c66ab3e7c", null ], + [ "setFirstname", "class_entities_1_1_user.html#a102793bdeeaa7eaa2bca4e31eb3782e5", null ], + [ "setId", "class_entities_1_1_user.html#af8e956b8b0343ff7d1b955c26cb0c780", null ], + [ "setImage", "class_entities_1_1_user.html#a6c7550f5363e74b3ee9225bf85e11b8d", null ], + [ "setLocation", "class_entities_1_1_user.html#a4c5c6e78f1e8c0ae4bf416d0f0d73ef1", null ], + [ "setMail", "class_entities_1_1_user.html#ad5ba083b208ed11aa16938a8ba87a78c", null ], + [ "setName", "class_entities_1_1_user.html#a392752b62c4f6aacea5c269690921ef3", null ], + [ "setPhone", "class_entities_1_1_user.html#a652bfdb5ce275246ece54449fe5ca59e", null ], + [ "setPseudo", "class_entities_1_1_user.html#a02d546b854db37406ec591d3e16809eb", null ], + [ "setPwd", "class_entities_1_1_user.html#a9cc7dc33859895f98da4e22f5ae1a9bf", null ], + [ "setStatus", "class_entities_1_1_user.html#a2f8308ff566858664b95361214f29eac", null ], + [ "setWork", "class_entities_1_1_user.html#ae6c2c46108019bd83091add6417eb894", null ] +]; \ No newline at end of file diff --git a/html/class_entities_1_1_user.png b/html/class_entities_1_1_user.png new file mode 100644 index 0000000000000000000000000000000000000000..826ef24cb3ec2954ca37c1b3ba435cfba90243d2 GIT binary patch literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^CO{m(!3-o54=1SR%c<=xyZhAIs2~du+B*-tA0mugfbEer>fP(itT^vIy7~jt2Tz6Q3$L07o zk)Qw6^9%*dp0Y1q75dxLR!8i- z-Cy<-W#y%D+<`GmSFSB)of{ZBqtVFV*WcUoYK{3;RNXhZa@R9-wZy+WDJ$O3TQ%)Q h{LkwSE-rqy3^^V;-qUS&y#V@@!PC{xWt~$(6973*lsW(a literal 0 HcmV?d00001 diff --git a/html/class_models_1_1_authorisation_model.html b/html/class_models_1_1_authorisation_model.html new file mode 100644 index 0000000..4ff6438 --- /dev/null +++ b/html/class_models_1_1_authorisation_model.html @@ -0,0 +1,177 @@ + + + + + + + +Folliow: AuthorisationModel Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
AuthorisationModel Class Reference
+
+
+
+Inheritance diagram for AuthorisationModel:
+
+
+ + +MotherModel + +
+ + + +

+Public Member Functions

 findAllAuthorisation ()
+ + + +

+Additional Inherited Members

Protected Attributes inherited from MotherModel
$_db
+

Detailed Description

+

Traitement des requêtes pour le status de l'utilisateur

Author
: Laura
+

Constructor & Destructor Documentation

+ +

◆ __construct()

+ +
+
+ + + + + + + +
__construct ()
+
+ +

Reimplemented from MotherModel.

+ +
+
+

Member Function Documentation

+ +

◆ findAllAuthorisation()

+ +
+
+ + + + + + + +
findAllAuthorisation ()
+
+

fonction de récupération des infos d'authorisation

Returns
array
+ +
+
+
The documentation for this class was generated from the following file:
    +
  • C:/Users/Guill/projet_php/models/AuthorisationModel.php
  • +
+
+
+ +
+ + + + diff --git a/html/class_models_1_1_authorisation_model.js b/html/class_models_1_1_authorisation_model.js new file mode 100644 index 0000000..a29620d --- /dev/null +++ b/html/class_models_1_1_authorisation_model.js @@ -0,0 +1,4 @@ +var class_models_1_1_authorisation_model = +[ + [ "findAllAuthorisation", "class_models_1_1_authorisation_model.html#af7bd93cc2fd6ac548707d3a66a8380df", null ] +]; \ No newline at end of file diff --git a/html/class_models_1_1_authorisation_model.png b/html/class_models_1_1_authorisation_model.png new file mode 100644 index 0000000000000000000000000000000000000000..500892db7ef2d17e3dbf217aa229c11f1ffebcb6 GIT binary patch literal 538 zcmeAS@N?(olHy`uVBq!ia0vp^l|UT8!3-q1+O=ANlyrbki0l9V|AEXGZ@!lHA6jl< zpjjX>{mhF84;}!;P0xlc0m^Zf1o;Is0Qq2G&NTZ90|VnyPZ!6K3dXl{8T(!<@VFdr z4*B^{{hokAfy&eH6Y|4x3n7CytyM{m{hd4I}Ur_O9&e)sd=$C=_&MP8p|(^zuVJ!`hg z|K(;gRnjvjdlpTbHfe5gUMs_cTw8{O&S?|n`$J!(K4IR&vA6G!dUo|>#)MgBk_>5? zK*ltzjJSy%CxjeBLd7#ChlZxVv_6r>e|*8_mgn|gTR6z8I{ zTb#v;y&JvPS$TguFZ`tD*7hgd(Y`U+JeG0igrEGr{IB=U`VB_Q_da-M+H-R5-aGTZ zx%RcrIJI%j+gDqh4R0@6TmH)@clD}sSJZ&SB`^`RspACKUk0nj + + + + + + +Folliow: CategoryModel Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
CategoryModel Class Reference
+
+
+
+Inheritance diagram for CategoryModel:
+
+
+ + +MotherModel + +
+ + + + + + +

+Public Member Functions

 findAllCategory (int $intLimit=0)
 insertCategory (object $objCategory)
 deleteCategory (object $objCategory)
 editCategory (object $objCategory)
+ + + +

+Additional Inherited Members

Protected Attributes inherited from MotherModel
$_db
+

Detailed Description

+

Traitement des requêtes pour les catégories

Author
: Laura
+

Member Function Documentation

+ +

◆ deleteCategory()

+ +
+
+ + + + + + + +
deleteCategory (object $objCategory)
+
+

fonction de suppression d'une catégorie dans la bdd

Parameters
+ + +
object$objCategoryl'objet catégorie
+
+
+
Returns
bool Est-ce que la requête s'est bien passée
+ +
+
+ +

◆ editCategory()

+ +
+
+ + + + + + + +
editCategory (object $objCategory)
+
+

fonction de modification d'une catégorie dans la bdd

Parameters
+ + +
object$objCategoryl'objet catégorie
+
+
+
Returns
bool Est-ce que la requête s'est bien passée
+ +
+
+ +

◆ findAllCategory()

+ +
+
+ + + + + + + +
findAllCategory (int $intLimit = 0)
+
+

Fonction de récupération des catégories

Parameters
+ + +
int$intLimit
+
+
+
Returns
array
+ +
+
+ +

◆ insertCategory()

+ +
+
+ + + + + + + +
insertCategory (object $objCategory)
+
+

fonction d'insertion d'une nouvelle catégorie dans la bdd

Parameters
+ + +
object$objCategoryl'objet catégorie
+
+
+
Returns
bool Est-ce que la requête s'est bien passée
+ +
+
+
The documentation for this class was generated from the following file:
    +
  • C:/Users/Guill/projet_php/models/CategoryModel.php
  • +
+
+
+ +
+ + + + diff --git a/html/class_models_1_1_category_model.js b/html/class_models_1_1_category_model.js new file mode 100644 index 0000000..9146048 --- /dev/null +++ b/html/class_models_1_1_category_model.js @@ -0,0 +1,7 @@ +var class_models_1_1_category_model = +[ + [ "deleteCategory", "class_models_1_1_category_model.html#ae60105b7a6e453f9a50d773fd2eac086", null ], + [ "editCategory", "class_models_1_1_category_model.html#a476ef8e7a52a51528ca22af9b7b220f6", null ], + [ "findAllCategory", "class_models_1_1_category_model.html#a4e6d48b9130d9cb4cc08a88cef84e8f9", null ], + [ "insertCategory", "class_models_1_1_category_model.html#a1102f9228de8f7938a1f35a3abbc2dc7", null ] +]; \ No newline at end of file diff --git a/html/class_models_1_1_category_model.png b/html/class_models_1_1_category_model.png new file mode 100644 index 0000000000000000000000000000000000000000..784ff68b8e4726009714435d6e2455db5fb011cf GIT binary patch literal 505 zcmVvTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0004m zNklyGOn41~udSA3n zGyl4R!OZMaFqoNrx`~leN_zzW*Yp5@&ANf{c0Z?p z)z*MvG5zG4>Da4o(pnp9#z|eBo=3yzCtsY0{y%bfUh}$YDqTzAyskt<=ITsWz77tC vS#inq00000NkvXXu0mjfm(}iu literal 0 HcmV?d00001 diff --git a/html/class_models_1_1_image_model.html b/html/class_models_1_1_image_model.html new file mode 100644 index 0000000..5da3c94 --- /dev/null +++ b/html/class_models_1_1_image_model.html @@ -0,0 +1,163 @@ + + + + + + + +Folliow: ImageModel Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ImageModel Class Reference
+
+
+
+Inheritance diagram for ImageModel:
+
+
+ + +MotherModel + +
+ + + +

+Public Member Functions

 findAllImage (int $intLimit=0)
+ + + +

+Additional Inherited Members

Protected Attributes inherited from MotherModel
$_db
+

Detailed Description

+

Traitement de la requête pour les images

Author
Laura
+

Member Function Documentation

+ +

◆ findAllImage()

+ +
+
+ + + + + + + +
findAllImage (int $intLimit = 0)
+
+

Fonction de récupération des images

Parameters
+ + +
int$intLimit
+
+
+
Returns
array
+ +
+
+
The documentation for this class was generated from the following file:
    +
  • C:/Users/Guill/projet_php/models/ImageModel.php
  • +
+
+
+ +
+ + + + diff --git a/html/class_models_1_1_image_model.js b/html/class_models_1_1_image_model.js new file mode 100644 index 0000000..31eb5ee --- /dev/null +++ b/html/class_models_1_1_image_model.js @@ -0,0 +1,4 @@ +var class_models_1_1_image_model = +[ + [ "findAllImage", "class_models_1_1_image_model.html#aaf9e88eb8d1aff57a085e1d38de15060", null ] +]; \ No newline at end of file diff --git a/html/class_models_1_1_image_model.png b/html/class_models_1_1_image_model.png new file mode 100644 index 0000000000000000000000000000000000000000..229212a9d450515ac7e3fa6397ea47eb41fdb504 GIT binary patch literal 447 zcmV;w0YLtVP)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0003> zNkl#l?#420W~n7;oLAGzNJPQb)$cO5Hb`Ylr3-=LII2Ly_UXuE{_5*J;< zM{^YiX}0iHRXNutTzKGCzIiU{vp(HllQs!m;}eO`T*pzxwR3)zHW+?LxMAOy+~R;6 zy-^Kc5sJQfbIsMC$gX{fX^ETkq|fd2Ev`-1odF->-q<7HQ{2xz55g5L0K`MM!WAw6KrZ15_h-0>hzA77 z%)DK~eUCf*1#ifWO~4x0I$T)cqCJ^n7tGL(Qf_m;&%JGdZG)}|BYV-G@2@wR&kK6o zB8<5DU5o``#Hx(D3mLi*fs->SM||0>|({^}cZjm-KTH2*v>GdJ|F7jnQYR>90X pr_p-d?J_ejN&Y84%SA-ouRn?iN0?mphj;)0002ovPDHLkV1j2j&Z+ + + + + + + +Folliow: MotherModel Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
MotherModel Class Reference
+
+
+
+Inheritance diagram for MotherModel:
+
+
+ + +AuthorisationModel +CategoryModel +ImageModel +ProjectModel +UserModel + +
+ + + +

+Protected Attributes

$_db
+
The documentation for this class was generated from the following file:
    +
  • C:/Users/Guill/projet_php/models/MotherModel.php
  • +
+
+
+ +
+ +
+ + diff --git a/html/class_models_1_1_mother_model.png b/html/class_models_1_1_mother_model.png new file mode 100644 index 0000000000000000000000000000000000000000..27547b8e3ed2c32cc3cbf878d30ebc4eaeb0b50b GIT binary patch literal 1285 zcmeAS@N?(olHy`uVBq!ia0y~yU}^=j12~w0WW?3f*F8(FfeDDeT9L6WrC-RV@L(#+qrKiEzuHS zy=-*o!Qc5mwr%6$=yUjH}-{N>w)S0^6tTypoDWgSTB!MxwHKi^*1$F%Rhne=(#-`9VanV((`G~uwA+h(Py zWz)9{IPFm4W;`;vb$Qg%*4ObS8*`?cOakjvm6npqx=U-E(gW$jKf+6*;6I#0#aID&|bi&CsfaPkuV9G)zjV87A91cZ5YwblG z#h899;@Bi`Kpd!&VV?%jVIN!tff1$OrNGTt6WDTI`OIgV{!Jia5l2^n+l;ekWIWXK z)1Eab{h0+ZSaSi#rU0P9uhw(yYz?k@_*M0HTxQYbR~8fFJMMq;=bt=3uKxSuSu8o(x%Cr?0wODG4J6u=dH8-y(UCkq~^XBn-y7hW!4+j-688P zA3EJKTPH{QJAcFt+k*M6x{B9sn@T*^7OM+rTGjgc^y|l~4}UGKm*{_e`)I|dyRR}f zZub|KwLd%C*5B@AeNXUP?Y1nr@*{`V&R!!HdHgPOf8-Cp!m>)f(mNdoC78vg#nl8f zojFuo^xSEOufC<_%%$zVV*P7sb#885pVFDT*+6>v8}0YoGw&#JZ@0Q%e#iR5g4XN1 z;`5J0^we=@$MsBqaPm;jywrA4)%?|kmD%y!?^nmMWlNRk==xYm%-t|E(y_bs_5G)O zqI2s7l214p&o(;dJt2CB|F@HecF5e1syMbY#-jf6c4c}0Yd>HAT71#sUAova#Ysvf zym$7Ch3TBJ`mb>8MPCeuaYWOVLzmyXbH6WtvOFs#RQBdX?zer1{={^i`el{zF!uOd z=K7vMJZ3f6xy(c;-#?jtwHCH`SnA! z2mc?_m0VvhdFV_|!$yw#Qv$?x`Nu)h6)b%LX<(NBY;#^tW%B&zmERl$>pWZjGvvHD WZz0}xZws)%V(@hJb6Mw<&;$VP9ZIhN literal 0 HcmV?d00001 diff --git a/html/class_models_1_1_project_model.html b/html/class_models_1_1_project_model.html new file mode 100644 index 0000000..efaf2a4 --- /dev/null +++ b/html/class_models_1_1_project_model.html @@ -0,0 +1,492 @@ + + + + + + + +Folliow: ProjectModel Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ProjectModel Class Reference
+
+
+
+Inheritance diagram for ProjectModel:
+
+
+ + +MotherModel + +
+ + + + + + + + + + + + + + +

+Public Member Functions

 findAll (int $intLimit=0, string $strKeywords='', int $intAuthor=0, int $intPeriod=0, string $strDate='', string $strStartDate='', string $strEndDate='', int $intCategory=0, bool $boolOlderThan6Months=false)
 insert (object $objProject)
 findOne (int $intId)
 accept (int $id)
 refuse (int $id)
 delete_soft_project (int $intId)
 updateProject (object $objProject)
 getImagesByProjectId (int $projectId)
 deleteImage (int $id)
 updateImageStatus (int $id, string $status)
 findImage (int $id)
 addImageInProject (string $fileName, int $projectId, string $alt="Image projet")
+ + + +

+Additional Inherited Members

Protected Attributes inherited from MotherModel
$_db
+

Detailed Description

+

Traitement des requêtes pour les projets

Author
Laura & Guillaume
+

Member Function Documentation

+ +

◆ accept()

+ +
+
+ + + + + + + +
accept (int $id)
+
+

Fonction de changement de status (accepter) d'un projet en BDD

Parameters
+ + +
int$idl'id du projet
+
+
+
Returns
bool Est-ce que la requête s'est bien passée
+ +
+
+ +

◆ addImageInProject()

+ +
+
+ + + + + + + + + + + + + + + + +
addImageInProject (string $fileName,
int $projectId,
string $alt = "Image projet" )
+
+

Ajoute une image liée à un projet dans la table 'image'

Parameters
+ + + + +
string$fileNameNom du fichier image
int$projectIdID du projet parent
string$altTexte alternatif
+
+
+
Returns
bool
+ +
+
+ +

◆ delete_soft_project()

+ +
+
+ + + + + + + +
delete_soft_project (int $intId)
+
+

Fonction de suppression d'un projet en BDD

Parameters
+ + +
int$idl'id du projet
+
+
+
Returns
bool Est-ce que la requête s'est bien passée
+ +
+
+ +

◆ deleteImage()

+ +
+
+ + + + + + + +
deleteImage (int $id)
+
+

Fonction de récupération d'image d'un projet en BDD

Parameters
+ + +
int$idL'Id de l'image choisit
+
+
+
Returns
array Un tableau avec les informations de la bdd
+ +
+
+ +

◆ findAll()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
findAll (int $intLimit = 0,
string $strKeywords = '',
int $intAuthor = 0,
int $intPeriod = 0,
string $strDate = '',
string $strStartDate = '',
string $strEndDate = '',
int $intCategory = 0,
bool $boolOlderThan6Months = false )
+
+

Fonction de recherche des projets

Parameters
+ + +
typestring, int et bool
+
+
+
Returns
array
+ +
+
+ +

◆ findImage()

+ +
+
+ + + + + + + +
findImage (int $id)
+
+

Fonction de récupération d'image d'un projet en BDD

Parameters
+ + +
int$idL'Id de l'image choisit
+
+
+
Returns
array Un tableau avec les informations de la bdd
+ +
+
+ +

◆ findOne()

+ +
+
+ + + + + + + +
findOne (int $intId)
+
+

Fonction de recherche d'un seul projet

Parameters
+ + +
int$intId
+
+
+
Returns
array|bool
+ +
+
+ +

◆ getImagesByProjectId()

+ +
+
+ + + + + + + +
getImagesByProjectId (int $projectId)
+
+

Fonction de récupération d'image d'un projet en BDD

Parameters
+ + +
int$objProjectL'Id du projet choisit
+
+
+
Returns
array Un tableau avec les informations de la bdd
+ +
+
+ +

◆ insert()

+ +
+
+ + + + + + + +
insert (object $objProject)
+
+

Fonction d'insertion d'un nouveau projet dans la bdd

Parameters
+ + +
object$objProjectl'objet projet
+
+
+
Returns
bool Est-ce que la requête s'est bien passée
+ +
+
+ +

◆ refuse()

+ +
+
+ + + + + + + +
refuse (int $id)
+
+

Fonction de changement de status (refusé) d'un projet en BDD

Parameters
+ + +
int$idl'id du projet
+
+
+
Returns
bool Est-ce que la requête s'est bien passée
+ +
+
+ +

◆ updateImageStatus()

+ +
+
+ + + + + + + + + + + +
updateImageStatus (int $id,
string $status )
+
+

Fonction de modifications de status de l'image d'un projet en BDD

Parameters
+ + +
int$idL'Id de l'image choisit, string $status le status choisit
+
+
+
Returns
array Un tableau avec les informations de la bdd
+ +
+
+ +

◆ updateProject()

+ +
+
+ + + + + + + +
updateProject (object $objProject)
+
+

Fonction de mise à jour d'un projet en BDD

Parameters
+ + +
object$objProjectL'objet utilisateur
+
+
+
Returns
bool Est-ce que la requête s'est bien passée
+ +
+
+
The documentation for this class was generated from the following file:
    +
  • C:/Users/Guill/projet_php/models/ProjectModel.php
  • +
+
+
+ +
+ + + + diff --git a/html/class_models_1_1_project_model.js b/html/class_models_1_1_project_model.js new file mode 100644 index 0000000..912637d --- /dev/null +++ b/html/class_models_1_1_project_model.js @@ -0,0 +1,15 @@ +var class_models_1_1_project_model = +[ + [ "accept", "class_models_1_1_project_model.html#a6eec03d4631323b0def749422841ff87", null ], + [ "addImageInProject", "class_models_1_1_project_model.html#a678596604777cf46091b90eafa0d26c5", null ], + [ "delete_soft_project", "class_models_1_1_project_model.html#a95d50e099b1627df15e6f1e82e9b1448", null ], + [ "deleteImage", "class_models_1_1_project_model.html#ad75b97b0374168f70769e8dd235157f3", null ], + [ "findAll", "class_models_1_1_project_model.html#acbfa7e289b7712cf5200f398cff05c43", null ], + [ "findImage", "class_models_1_1_project_model.html#a0a8e47e6d6b839638ab85addfda45e3b", null ], + [ "findOne", "class_models_1_1_project_model.html#ae0fabc6b177cda25efeee083f904c207", null ], + [ "getImagesByProjectId", "class_models_1_1_project_model.html#ad587665f8aff5eedac96881cb604ccd7", null ], + [ "insert", "class_models_1_1_project_model.html#ad2a2f3e436d06db0fc4af3c44c867805", null ], + [ "refuse", "class_models_1_1_project_model.html#a64714f38f74ab942d027f04e86e40d25", null ], + [ "updateImageStatus", "class_models_1_1_project_model.html#aeb942ee7cfbea8509e49a5114228f53b", null ], + [ "updateProject", "class_models_1_1_project_model.html#a1736ff58fc8fadf358ddb510b4c8d3f7", null ] +]; \ No newline at end of file diff --git a/html/class_models_1_1_project_model.png b/html/class_models_1_1_project_model.png new file mode 100644 index 0000000000000000000000000000000000000000..99469de0aed752ac7b94d652ddfc6a3bd43ba901 GIT binary patch literal 457 zcmV;)0XF`LP)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~00040 zNklC*2t@&thX4QK9kmLmb-EetX0mjo>h*eR#pyGI5WI^WRZgzC7kSh3ru#7RP4_|N=gg872#IXmI1fZb3&Xk2 zeTW-E2OwHzkpob?F}Y5{hQWq*rj2I|MPaE|Hr(%^GfSG0)D;(#lo5X>J`;&TH=Z zvbmC073AR}TIXq1*@X$`mor&;fSn;)mS71{u;^Bvb_W5%82ZMqLexWB*Vpp4H$ z&3rpHIS + + + + + + +Folliow: UserModel Class Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
UserModel Class Reference
+
+
+
+Inheritance diagram for UserModel:
+
+
+ + +MotherModel + +
+ + + + + + + + + + + + + + + +

+Public Member Functions

 findAllUsers ()
 verifUser (string $strMail, string $strPwd)
 insert (object $objUser)
 remember (int $userId, string $token)
 getTokenUser (string $hash)
 deleteToken (string $hash)
 update (object $objUser)
 mailExists (string $mail)
 editStatus (object $objUser)
 delete_soft (int $intId)
 findUserById (int $intId)
 findUserByPseudo (string $strPseudo)
 pseudoExists (string $pseudo)
+ + + +

+Additional Inherited Members

Protected Attributes inherited from MotherModel
$_db
+

Detailed Description

+

Traitement des requêtes pour les utilisateurs

Author
: Yasser, Guillaume & Besnik
+

Constructor & Destructor Documentation

+ +

◆ __construct()

+ +
+
+ + + + + + + +
__construct ()
+
+ +

Reimplemented from MotherModel.

+ +
+
+

Member Function Documentation

+ +

◆ delete_soft()

+ +
+
+ + + + + + + +
delete_soft (int $intId)
+
+

Fonction permettant de supprimer un utilisateur avec une date de suppression

Parameters
+ + +
int$intIdL'identifiant de l'utilisateur
+
+
+
Returns
bool Est-ce que la requête s'est bien passée
+ +
+
+ +

◆ deleteToken()

+ +
+
+ + + + + + + +
deleteToken (string $hash)
+
+

Méthode pour supprimer le token lors de la déconnexion

Parameters
+ + +
string$hashToken hashé unique lié à l'utilisateur
+
+
+
Returns
bool Est-ce que la requête s'est bien passée
+ +
+
+ +

◆ editStatus()

+ +
+
+ + + + + + + +
editStatus (object $objUser)
+
+

Fonction de changement de status d'un utilisateur

Parameters
+ + +
object$objUserL'objet utilisateur
+
+
+
Returns
bool Est-ce que la requête s'est bien passée
+ +
+
+ +

◆ findAllUsers()

+ +
+
+ + + + + + + +
findAllUsers ()
+
+

Fonction de recherche des utilisateurs et leur niveau d'autorisation

Returns
array
+ +
+
+ +

◆ findUserById()

+ +
+
+ + + + + + + +
findUserById (int $intId)
+
+

Récupère les informations d'un utilisateur par son ID

Parameters
+ + +
int$intIdL'identifiant de l'utilisateur
+
+
+
Returns
array Tableau associatif (ou false si pas trouvé)
+ +
+
+ +

◆ findUserByPseudo()

+ +
+
+ + + + + + + +
findUserByPseudo (string $strPseudo)
+
+

Récupère les informations d'un utilisateur par son ID

Parameters
+ + +
string$strPseudoPseudo de l'utilisateur
+
+
+
Returns
array Tableau associatif (ou false si pas trouvé)
+ +
+
+ +

◆ getTokenUser()

+ +
+
+ + + + + + + +
getTokenUser (string $hash)
+
+

Méthode pour récupperer l'utilisateur par rapport au cookie enregistrer

Parameters
+ + +
string$hashToken hashé unique lié à l'utilisateur
+
+
+
Returns
bool Est-ce que la requête s'est bien passée
+ +
+
+ +

◆ insert()

+ +
+
+ + + + + + + +
insert (object $objUser)
+
+

Fonction d'insertion d'un utilisateur en BDD

Parameters
+ + +
object$objUserL'objet utilisateur
+
+
+
Returns
bool Est-ce que la requête s'est bien passée
+ +
+
+ +

◆ mailExists()

+ +
+
+ + + + + + + +
mailExists (string $mail)
+
+

Fonction de vérification de mail

Parameters
+ + +
string$mail
+
+
+
Returns
bool Est-ce que la requête s'est bien passée
+ +
+
+ +

◆ pseudoExists()

+ +
+
+ + + + + + + +
pseudoExists (string $pseudo)
+
+

Verifie sur le pseudo entré n'est pas déjà utilisé

Parameters
+ + +
string$pseudoPseudo a verifié
+
+
+
Returns
bool Le pseudo existe ou pas
+ +
+
+ +

◆ remember()

+ +
+
+ + + + + + + + + + + +
remember (int $userId,
string $token )
+
+

Méthode pour sauvegarder l'utilisateur lorsqu'il veut être souvenue

Parameters
+ + + +
int$userIdl'id de l'utilisateur a se rappeler
string$tokenToken hashé unique lié à l'utilisateur à se rappeler
+
+
+
Returns
bool Est-ce que la requête s'est bien passée
+ +
+
+ +

◆ update()

+ +
+
+ + + + + + + +
update (object $objUser)
+
+

Méthode pour mettre a jour l'utilisateur

Parameters
+ + +
object$objUserL'objet user a mettre à jour
+
+
+
+
Returns
bool Est-ce que la requête s'est bien passée
+ +
+
+ +

◆ verifUser()

+ +
+
+ + + + + + + + + + + +
verifUser (string $strMail,
string $strPwd )
+
+

Fonction de vérification des utilisateurs

Parameters
+ + + +
string$strMail
string$strPwd
+
+
+
Returns
array|bool
+ +
+
+
The documentation for this class was generated from the following file:
    +
  • C:/Users/Guill/projet_php/models/UserModel.php
  • +
+
+
+ +
+ + + + diff --git a/html/class_models_1_1_user_model.js b/html/class_models_1_1_user_model.js new file mode 100644 index 0000000..ab43b5b --- /dev/null +++ b/html/class_models_1_1_user_model.js @@ -0,0 +1,16 @@ +var class_models_1_1_user_model = +[ + [ "delete_soft", "class_models_1_1_user_model.html#a90a9354ef5f60f5e3e9f9b5bc049a462", null ], + [ "deleteToken", "class_models_1_1_user_model.html#a6dc3075e5dd68e7324731e45c8b3678d", null ], + [ "editStatus", "class_models_1_1_user_model.html#a3870209d53759874009f6c744a685ab9", null ], + [ "findAllUsers", "class_models_1_1_user_model.html#a404b6b890d58bfa7220da4a08a60f445", null ], + [ "findUserById", "class_models_1_1_user_model.html#a6620c458b01ecbb1ed76083a4ac2345e", null ], + [ "findUserByPseudo", "class_models_1_1_user_model.html#a9f95476e8b07dbc01f711f36672684ad", null ], + [ "getTokenUser", "class_models_1_1_user_model.html#ad83e4adc529c6c0a4925e4d74c7c7ae7", null ], + [ "insert", "class_models_1_1_user_model.html#ab0eb29a478a1230d479aee1046b0f1dc", null ], + [ "mailExists", "class_models_1_1_user_model.html#add0b4b63ca02cb8b73ad136b93ccf52f", null ], + [ "pseudoExists", "class_models_1_1_user_model.html#aaf42cd7de4bddf6d3a075aa9bc252b8f", null ], + [ "remember", "class_models_1_1_user_model.html#a30563e7cabc0c9aa2bf4157b241ad55a", null ], + [ "update", "class_models_1_1_user_model.html#a4f2888d0004092a367fa2d1b2620818f", null ], + [ "verifUser", "class_models_1_1_user_model.html#a04e007855c8aa842068779d8a871bb42", null ] +]; \ No newline at end of file diff --git a/html/class_models_1_1_user_model.png b/html/class_models_1_1_user_model.png new file mode 100644 index 0000000000000000000000000000000000000000..f72386d0bd93eaafaf775d4514ef6d94ec7ad4d3 GIT binary patch literal 428 zcmV;d0aN~oP)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0003u zNklH9poLe9`X6ETK?nhio zMy}zm47A(iPP1xmG*Y?Yo^s<{@>hS^k6;JG&&h_$h5Ir(apQOSSH=?fhmnTYIrWOa za7(tRlWR)Tw;Vom{im?cITd=uRXw@pUi3}RyIqG~?sgqie^QrfgNeD;zLKaa+^$9X&?F_i7kYBa_b5vtVT zHf3}j!auUGGqeH5&~V>W_MZEsZ_WDFda=IYt;&8n_Cuq``$0rxhKy_6kGMoc^YsG~ WV@Q7(F_@SD0000 + + + + + + +Folliow: Data Structure Index + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Data Structure Index
+
+
+
A | C | E | I | M | P | U
+
+
+
A
+
AdminCtrl (Controllers)
Authorisation (Entities)
AuthorisationModel (Models)
+
+
C
+
Category (Entities)
CategoryModel (Models)
+
+
E
+
ErrorCtrl (Controllers)
+
+
I
+
Image (Entities)
ImageModel (Models)
+
+
M
+
Mother (Entities)
MotherCtrl (Controllers)
MotherModel (Models)
+
+
P
+
PageCtrl (Controllers)
Project (Entities)
ProjectCtrl (Controllers)
ProjectModel (Models)
+
+
U
+
User (Entities)
UserCtrl (Controllers)
UserModel (Models)
+
+
+
+
+ + + + diff --git a/html/clipboard.js b/html/clipboard.js new file mode 100644 index 0000000..9da9f3c --- /dev/null +++ b/html/clipboard.js @@ -0,0 +1,61 @@ +/** + +The code below is based on the Doxygen Awesome project, see +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2021 - 2022 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +let clipboard_title = "Copy to clipboard" +let clipboard_icon = `` +let clipboard_successIcon = `` +let clipboard_successDuration = 1000 + +$(function() { + if(navigator.clipboard) { + const fragments = document.getElementsByClassName("fragment") + for(const fragment of fragments) { + const clipboard_div = document.createElement("div") + clipboard_div.classList.add("clipboard") + clipboard_div.innerHTML = clipboard_icon + clipboard_div.title = clipboard_title + $(clipboard_div).click(function() { + const content = this.parentNode.cloneNode(true) + // filter out line number and folded fragments from file listings + content.querySelectorAll(".lineno, .ttc, .foldclosed").forEach((node) => { node.remove() }) + let text = content.textContent + // remove trailing newlines and trailing spaces from empty lines + text = text.replace(/^\s*\n/gm,'\n').replace(/\n*$/,'') + navigator.clipboard.writeText(text); + this.classList.add("success") + this.innerHTML = clipboard_successIcon + window.setTimeout(() => { // switch back to normal icon after timeout + this.classList.remove("success") + this.innerHTML = clipboard_icon + }, clipboard_successDuration); + }) + fragment.insertBefore(clipboard_div, fragment.firstChild) + } + } +}) diff --git a/html/cookie.js b/html/cookie.js new file mode 100644 index 0000000..53ad21d --- /dev/null +++ b/html/cookie.js @@ -0,0 +1,58 @@ +/*! + Cookie helper functions + Copyright (c) 2023 Dimitri van Heesch + Released under MIT license. +*/ +let Cookie = { + cookie_namespace: 'doxygen_', + + readSetting(cookie,defVal) { + if (window.chrome) { + const val = localStorage.getItem(this.cookie_namespace+cookie) || + sessionStorage.getItem(this.cookie_namespace+cookie); + if (val) return val; + } else { + let myCookie = this.cookie_namespace+cookie+"="; + if (document.cookie) { + const index = document.cookie.indexOf(myCookie); + if (index != -1) { + const valStart = index + myCookie.length; + let valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + return document.cookie.substring(valStart, valEnd); + } + } + } + return defVal; + }, + + writeSetting(cookie,val,days=10*365) { // default days='forever', 0=session cookie, -1=delete + if (window.chrome) { + if (days==0) { + sessionStorage.setItem(this.cookie_namespace+cookie,val); + } else { + localStorage.setItem(this.cookie_namespace+cookie,val); + } + } else { + let date = new Date(); + date.setTime(date.getTime()+(days*24*60*60*1000)); + const expiration = days!=0 ? "expires="+date.toGMTString()+";" : ""; + document.cookie = this.cookie_namespace + cookie + "=" + + val + "; SameSite=Lax;" + expiration + "path=/"; + } + }, + + eraseSetting(cookie) { + if (window.chrome) { + if (localStorage.getItem(this.cookie_namespace+cookie)) { + localStorage.removeItem(this.cookie_namespace+cookie); + } else if (sessionStorage.getItem(this.cookie_namespace+cookie)) { + sessionStorage.removeItem(this.cookie_namespace+cookie); + } + } else { + this.writeSetting(cookie,'',-1); + } + }, +} diff --git a/html/dir_1c617d677ef58765205e8a044aafa06e.html b/html/dir_1c617d677ef58765205e8a044aafa06e.html new file mode 100644 index 0000000..0431c3a --- /dev/null +++ b/html/dir_1c617d677ef58765205e8a044aafa06e.html @@ -0,0 +1,113 @@ + + + + + + + +Folliow: C:/Users/Guill/projet_php/models Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
models Directory Reference
+
+
+
+
+ +
+ + + + diff --git a/html/dir_2756e6070b02be5d362619ded783829c.html b/html/dir_2756e6070b02be5d362619ded783829c.html new file mode 100644 index 0000000..4ec760a --- /dev/null +++ b/html/dir_2756e6070b02be5d362619ded783829c.html @@ -0,0 +1,118 @@ + + + + + + + +Folliow: C:/Users/Guill/projet_php/controllers Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
controllers Directory Reference
+
+
+ + + +

+Directories

 
templates_c
+
+
+ +
+ + + + diff --git a/html/dir_2c23dcab3ba0e8633898b60485787967.html b/html/dir_2c23dcab3ba0e8633898b60485787967.html new file mode 100644 index 0000000..49553a7 --- /dev/null +++ b/html/dir_2c23dcab3ba0e8633898b60485787967.html @@ -0,0 +1,201 @@ + + + + + + + +Folliow: C:/Users/Guill/projet_php Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
projet_php Directory Reference
+
+
+ + + + + +

+Directories

 
controllers
 
entities
 
models
+

Detailed Description

+

+Folliow – Projet PHP

+

A platform for sharing portfolios and projects, designed as a mix between Behance and LinkedIn. Folliow focuses on highlighting real projects while making it easy to connect with other users.

+

This project was developed as part of the DWWM (Développeur Web et Web Mobile) training.

+
+

+Features

+
    +
  • User authentication and profile management
  • +
  • Portfolio and project creation
  • +
  • Project showcase with descriptions and technologies
  • +
  • User connections / follow system
  • +
  • Project feed and discovery
  • +
  • Profile and project search
  • +
+
+

+Tech Stack

+

Client: HTML, CSS, JavaScript
+ Server: PHP (MVC architecture)
+ Database: MySQL
+ Web Server: Apache

+
+

+Project Structure

+
folliow/
+
├── app/
+
│ ├── controllers/
+
│ ├── models/
+
│ └── views/
+
├── public/
+
│ ├── assets/
+
│ └── index.php
+
├── config/
+
│ └── database.php
+
├── sql/
+
│ └── folliow.sql
+
└── README.md
+

+

+Installation

+

Clone the project

+
git clone https://github.com/Yasder5/projet_php.git
+

Go to the project directory

+
cd projet_php
+

Import the database

+
    +
  • Use the SQL file located in the sql/ directory
  • +
+

Configure database access

+
    +
  • Update credentials in config/database.php
  • +
+

Run the project

+
    +
  • Use a local server (XAMPP, WAMP, or Apache on Linux)
  • +
+
+

+Learning Objectives

+
    +
  • Build a complete PHP web application
  • +
  • Apply MVC architecture
  • +
  • Manage a relational database
  • +
  • Design a user-oriented portfolio platform
  • +
+
+

+Future Improvements

+
    +
  • Private messaging
  • +
  • Likes and comments on projects
  • +
  • Tags and categories
  • +
  • Improved responsive design
  • +
  • Advanced authentication and roles
  • +
+
+

+License

+

This project is for educational purposes.

+
+
+ +
+ + + + diff --git a/html/dir_3a74e34fc6fa82edd10e4beee4ded801.html b/html/dir_3a74e34fc6fa82edd10e4beee4ded801.html new file mode 100644 index 0000000..382c5f0 --- /dev/null +++ b/html/dir_3a74e34fc6fa82edd10e4beee4ded801.html @@ -0,0 +1,201 @@ + + + + + + + +Folliow: C:/Users/Guill/projet_php Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
projet_php Directory Reference
+
+
+ + + + + +

+Directories

 
controllers
 
entities
 
models
+

Detailed Description

+

+Folliow – Projet PHP

+

A platform for sharing portfolios and projects, designed as a mix between Behance and LinkedIn. Folliow focuses on highlighting real projects while making it easy to connect with other users.

+

This project was developed as part of the DWWM (Développeur Web et Web Mobile) training.

+
+

+Features

+
    +
  • User authentication and profile management
  • +
  • Portfolio and project creation
  • +
  • Project showcase with descriptions and technologies
  • +
  • User connections / follow system
  • +
  • Project feed and discovery
  • +
  • Profile and project search
  • +
+
+

+Tech Stack

+

Client: HTML, CSS, JavaScript
+ Server: PHP (MVC architecture)
+ Database: MySQL
+ Web Server: Apache

+
+

+Project Structure

+
folliow/
+
├── app/
+
│ ├── controllers/
+
│ ├── models/
+
│ └── views/
+
├── public/
+
│ ├── assets/
+
│ └── index.php
+
├── config/
+
│ └── database.php
+
├── sql/
+
│ └── folliow.sql
+
└── README.md
+

+

+Installation

+

Clone the project

+
git clone https://github.com/Yasder5/projet_php.git
+

Go to the project directory

+
cd projet_php
+

Import the database

+
    +
  • Use the SQL file located in the sql/ directory
  • +
+

Configure database access

+
    +
  • Update credentials in config/database.php
  • +
+

Run the project

+
    +
  • Use a local server (XAMPP, WAMP, or Apache on Linux)
  • +
+
+

+Learning Objectives

+
    +
  • Build a complete PHP web application
  • +
  • Apply MVC architecture
  • +
  • Manage a relational database
  • +
  • Design a user-oriented portfolio platform
  • +
+
+

+Future Improvements

+
    +
  • Private messaging
  • +
  • Likes and comments on projects
  • +
  • Tags and categories
  • +
  • Improved responsive design
  • +
  • Advanced authentication and roles
  • +
+
+

+License

+

This project is for educational purposes.

+
+
+ +
+ + + + diff --git a/html/dir_5498806e52ccd7d2d905ac8baf67301b.html b/html/dir_5498806e52ccd7d2d905ac8baf67301b.html new file mode 100644 index 0000000..3d5d1c1 --- /dev/null +++ b/html/dir_5498806e52ccd7d2d905ac8baf67301b.html @@ -0,0 +1,113 @@ + + + + + + + +Folliow: C:/Users/Guill/projet_php/controllers/templates_c Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
templates_c Directory Reference
+
+
+
+
+ +
+ + + + diff --git a/html/dir_6a59aaef8e4f4bee39467ed807742262.html b/html/dir_6a59aaef8e4f4bee39467ed807742262.html new file mode 100644 index 0000000..c7d7fad --- /dev/null +++ b/html/dir_6a59aaef8e4f4bee39467ed807742262.html @@ -0,0 +1,113 @@ + + + + + + + +Folliow: C:/Users/Guill/projet_php/entities Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
entities Directory Reference
+
+
+
+
+ +
+ + + + diff --git a/html/dir_91977dd5ba3542af9d4aecff9e888690.html b/html/dir_91977dd5ba3542af9d4aecff9e888690.html new file mode 100644 index 0000000..ce5c2e0 --- /dev/null +++ b/html/dir_91977dd5ba3542af9d4aecff9e888690.html @@ -0,0 +1,113 @@ + + + + + + + +Folliow: C:/Users/Guill/projet_php/entities Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
entities Directory Reference
+
+
+
+
+ +
+ + + + diff --git a/html/dir_a64c5c967bbc6a18c5d8eb713e8e97ff.html b/html/dir_a64c5c967bbc6a18c5d8eb713e8e97ff.html new file mode 100644 index 0000000..9fe4f9e --- /dev/null +++ b/html/dir_a64c5c967bbc6a18c5d8eb713e8e97ff.html @@ -0,0 +1,113 @@ + + + + + + + +Folliow: C:/Users/Guill/projet_php/controllers/templates_c Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
templates_c Directory Reference
+
+
+
+
+ +
+ + + + diff --git a/html/dir_bfcb6842af0098861ea59b43701e0022.html b/html/dir_bfcb6842af0098861ea59b43701e0022.html new file mode 100644 index 0000000..523aea6 --- /dev/null +++ b/html/dir_bfcb6842af0098861ea59b43701e0022.html @@ -0,0 +1,118 @@ + + + + + + + +Folliow: C:/Users/Guill/projet_php/controllers Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
controllers Directory Reference
+
+
+ + + +

+Directories

 
templates_c
+
+
+ +
+ + + + diff --git a/html/dir_d522931ffa1371640980b621734a4381.html b/html/dir_d522931ffa1371640980b621734a4381.html new file mode 100644 index 0000000..b86beaf --- /dev/null +++ b/html/dir_d522931ffa1371640980b621734a4381.html @@ -0,0 +1,113 @@ + + + + + + + +Folliow: C:/Users Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Users Directory Reference
+
+
+
+
+ +
+ + + + diff --git a/html/dir_d6b6a3db1c3a00708b1a36123c6a63cc.html b/html/dir_d6b6a3db1c3a00708b1a36123c6a63cc.html new file mode 100644 index 0000000..d9b5324 --- /dev/null +++ b/html/dir_d6b6a3db1c3a00708b1a36123c6a63cc.html @@ -0,0 +1,118 @@ + + + + + + + +Folliow: C:/Users/Guill Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Guill Directory Reference
+
+
+ + + +

+Directories

 
projet_php
+
+
+ +
+ + + + diff --git a/html/dir_f880fbcdfabe64616040b95a4e03089d.html b/html/dir_f880fbcdfabe64616040b95a4e03089d.html new file mode 100644 index 0000000..7ba12b4 --- /dev/null +++ b/html/dir_f880fbcdfabe64616040b95a4e03089d.html @@ -0,0 +1,113 @@ + + + + + + + +Folliow: C:/Users/Guill/projet_php/models Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
models Directory Reference
+
+
+
+
+ +
+ + + + diff --git a/html/doxygen.css b/html/doxygen.css new file mode 100644 index 0000000..788923a --- /dev/null +++ b/html/doxygen.css @@ -0,0 +1,2540 @@ +/* The standard CSS for doxygen 1.16.1*/ + +html { +/* page base colors */ +--page-background-color: white; +--page-foreground-color: black; +--page-link-color: #3D578C; +--page-visited-link-color: #3D578C; +--page-external-link-color: #334975; + +/* index */ +--index-odd-item-bg-color: #F8F9FC; +--index-even-item-bg-color: white; +--index-header-color: black; +--index-separator-color: #A0A0A0; + +/* header */ +--header-background-color: #F9FAFC; +--header-separator-color: #C4CFE5; +--group-header-separator-color: #D9E0EE; +--group-header-color: #354C7B; + +--footer-foreground-color: #2A3D61; +--footer-logo-width: 75px; +--citation-label-color: #334975; +--glow-color: cyan; + +--title-background-color: white; +--title-separator-color: #C4CFE5; + +--blockquote-background-color: #F7F8FB; +--blockquote-border-color: #9CAFD4; + +--scrollbar-thumb-color: #C4CFE5; +--scrollbar-background-color: #F9FAFC; + +--icon-background-color: #728DC1; +--icon-foreground-color: white; +--icon-folder-open-fill-color: #C4CFE5; +--icon-folder-fill-color: #D8DFEE; +--icon-folder-border-color: #4665A2; +--icon-doc-fill-color: #D8DFEE; +--icon-doc-border-color: #4665A2; + +/* brief member declaration list */ +--memdecl-background-color: #F9FAFC; +--memdecl-foreground-color: #555; +--memdecl-template-color: #4665A2; +--memdecl-border-color: #D5DDEC; + +/* detailed member list */ +--memdef-border-color: #A8B8D9; +--memdef-title-background-color: #E2E8F2; +--memdef-proto-background-color: #EEF1F7; +--memdef-proto-text-color: #253555; +--memdef-param-name-color: #602020; +--memdef-template-color: #4665A2; + +/* tables */ +--table-cell-border-color: #2D4068; +--table-header-background-color: #374F7F; +--table-header-foreground-color: #FFFFFF; + +/* labels */ +--label-background-color: #728DC1; +--label-left-top-border-color: #5373B4; +--label-right-bottom-border-color: #C4CFE5; +--label-foreground-color: white; + +/** navigation bar/tree/menu */ +--nav-background-color: #F9FAFC; +--nav-foreground-color: #364D7C; +--nav-border-color: #C4CFE5; +--nav-breadcrumb-separator-color: #C4CFE5; +--nav-breadcrumb-active-bg: #EEF1F7; +--nav-breadcrumb-color: #354C7B; +--nav-splitbar-bg-color: #DCE2EF; +--nav-splitbar-handle-color: #9CAFD4; +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #283A5D; +--nav-menu-button-color: #364D7C; +--nav-menu-background-color: white; +--nav-menu-foreground-color: #555555; +--nav-menu-active-bg: #DCE2EF; +--nav-menu-active-color: #9CAFD4; +--nav-arrow-color: #B6C4DF; +--nav-arrow-selected-color: #90A5CE; + +/* sync icon */ +--sync-icon-border-color: #C4CFE5; +--sync-icon-background-color: #F9FAFC; +--sync-icon-selected-background-color: #EEF1F7; +--sync-icon-color: #C4CFE5; +--sync-icon-selected-color: #6884BD; + +/* table of contents */ +--toc-background-color: #F4F6FA; +--toc-border-color: #D8DFEE; +--toc-header-color: #4665A2; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: white; +--search-foreground-color: #909090; +--search-active-color: black; +--search-filter-background-color: rgba(255,255,255,.7); +--search-filter-backdrop-filter: blur(4px); +--search-filter-foreground-color: black; +--search-filter-border-color: rgba(150,150,150,.4); +--search-filter-highlight-text-color: white; +--search-filter-highlight-bg-color: #3D578C; +--search-results-foreground-color: #425E97; +--search-results-background-color: rgba(255,255,255,.8); +--search-results-backdrop-filter: blur(4px); +--search-results-border-color: rgba(150,150,150,.4); +--search-box-border-color: #B6C4DF; +--search-close-icon-bg-color: #A0A0A0; +--search-close-icon-fg-color: white; + +/** code fragments */ +--code-keyword-color: #008000; +--code-type-keyword-color: #604020; +--code-flow-keyword-color: #E08000; +--code-comment-color: #800000; +--code-preprocessor-color: #806020; +--code-string-literal-color: #002080; +--code-char-literal-color: #008080; +--code-xml-cdata-color: black; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--fragment-foreground-color: black; +--fragment-background-color: #FBFCFD; +--fragment-border-color: #C4CFE5; +--fragment-lineno-border-color: #00FF00; +--fragment-lineno-background-color: #E8E8E8; +--fragment-lineno-foreground-color: black; +--fragment-lineno-link-fg-color: #4665A2; +--fragment-lineno-link-bg-color: #D8D8D8; +--fragment-lineno-link-hover-fg-color: #4665A2; +--fragment-lineno-link-hover-bg-color: #C8C8C8; +--fragment-copy-ok-color: #2EC82E; +--fragment-highlight-filter: -3; +--tooltip-foreground-color: black; +--tooltip-background-color: rgba(255,255,255,0.8); +--tooltip-arrow-background-color: white; +--tooltip-border-color: rgba(150,150,150,0.7); +--tooltip-backdrop-filter: blur(3px); +--tooltip-doc-color: grey; +--tooltip-declaration-color: #006318; +--tooltip-link-color: #4665A2; +--tooltip-shadow: 0 4px 8px 0 rgba(0,0,0,.25); +--fold-line-color: #808080; + +/** font-family */ +--font-family-normal: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +/** special sections */ +--warning-color-bg: #f8d1cc; +--warning-color-hl: #b61825; +--warning-color-text: #75070f; +--note-color-bg: #faf3d8; +--note-color-hl: #f3a600; +--note-color-text: #5f4204; +--todo-color-bg: #e4f3ff; +--todo-color-hl: #1879C4; +--todo-color-text: #274a5c; +--test-color-bg: #e8e8ff; +--test-color-hl: #3939C4; +--test-color-text: #1a1a5c; +--deprecated-color-bg: #ecf0f3; +--deprecated-color-hl: #5b6269; +--deprecated-color-text: #43454a; +--bug-color-bg: #e4dafd; +--bug-color-hl: #5b2bdd; +--bug-color-text: #2a0d72; +--invariant-color-bg: #d8f1e3; +--invariant-color-hl: #44b86f; +--invariant-color-text: #265532; +--satisfies-color-hl: #b61825; +--satisfies-color-bg: #f8d1cc; +--verifies-color-hl: #b61825; +--verifies-color-bg: #f8d1cc; + +} + +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + color-scheme: dark; + +/* page base colors */ +--page-background-color: black; +--page-foreground-color: #C9D1D9; +--page-link-color: #90A5CE; +--page-visited-link-color: #90A5CE; +--page-external-link-color: #A3B4D7; + +/* index */ +--index-odd-item-bg-color: #0B101A; +--index-even-item-bg-color: black; +--index-header-color: #C4CFE5; +--index-separator-color: #334975; + +/* header */ +--header-background-color: #070B11; +--header-separator-color: #141C2E; +--group-header-separator-color: #1D2A43; +--group-header-color: #90A5CE; + +--footer-foreground-color: #5B7AB7; +--footer-logo-width: 60px; +--citation-label-color: #90A5CE; +--glow-color: cyan; + +--title-background-color: #090D16; +--title-separator-color: #212F4B; + +--blockquote-background-color: #101826; +--blockquote-border-color: #283A5D; + +--scrollbar-thumb-color: #2C3F65; +--scrollbar-background-color: #070B11; + +--icon-background-color: #334975; +--icon-foreground-color: #C4CFE5; +--icon-folder-open-fill-color: #4665A2; +--icon-folder-fill-color: #5373B4; +--icon-folder-border-color: #C4CFE5; +--icon-doc-fill-color: #6884BD; +--icon-doc-border-color: #C4CFE5; + +/* brief member declaration list */ +--memdecl-background-color: #0B101A; +--memdecl-foreground-color: #BBB; +--memdecl-template-color: #7C95C6; +--memdecl-border-color: #233250; + +/* detailed member list */ +--memdef-border-color: #233250; +--memdef-title-background-color: #1B2840; +--memdef-proto-background-color: #19243A; +--memdef-proto-text-color: #9DB0D4; +--memdef-param-name-color: #D28757; +--memdef-template-color: #7C95C6; + +/* tables */ +--table-cell-border-color: #283A5D; +--table-header-background-color: #283A5D; +--table-header-foreground-color: #C4CFE5; + +/* labels */ +--label-background-color: #354C7B; +--label-left-top-border-color: #4665A2; +--label-right-bottom-border-color: #283A5D; +--label-foreground-color: #CCCCCC; + +/** navigation bar/tree/menu */ +--nav-background-color: #101826; +--nav-foreground-color: #364D7C; +--nav-border-color: #212F4B; +--nav-breadcrumb-separator-color: #212F4B; +--nav-breadcrumb-active-bg: #1D2A43; +--nav-breadcrumb-color: #90A5CE; +--nav-splitbar-bg-color: #283A5D; +--nav-splitbar-handle-color: #4665A2; +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #B6C4DF; +--nav-menu-button-color: #B6C4DF; +--nav-menu-background-color: #05070C; +--nav-menu-foreground-color: #BBBBBB; +--nav-menu-active-bg: #1D2A43; +--nav-menu-active-color: #C9D3E7; +--nav-arrow-color: #4665A2; +--nav-arrow-selected-color: #6884BD; + +/* sync icon */ +--sync-icon-border-color: #212F4B; +--sync-icon-background-color: #101826; +--sync-icon-selected-background-color: #1D2A43; +--sync-icon-color: #4665A2; +--sync-icon-selected-color: #5373B4; + +/* table of contents */ +--toc-background-color: #151E30; +--toc-border-color: #202E4A; +--toc-header-color: #A3B4D7; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: black; +--search-foreground-color: #C5C5C5; +--search-active-color: #F5F5F5; +--search-filter-background-color: #101826; +--search-filter-foreground-color: #90A5CE; +--search-filter-backdrop-filter: none; +--search-filter-border-color: #7C95C6; +--search-filter-highlight-text-color: #BCC9E2; +--search-filter-highlight-bg-color: #283A5D; +--search-results-background-color: black; +--search-results-foreground-color: #90A5CE; +--search-results-backdrop-filter: none; +--search-results-border-color: #334975; +--search-box-border-color: #334975; +--search-close-icon-bg-color: #909090; +--search-close-icon-fg-color: black; + +/** code fragments */ +--code-keyword-color: #CC99CD; +--code-type-keyword-color: #AB99CD; +--code-flow-keyword-color: #E08000; +--code-comment-color: #717790; +--code-preprocessor-color: #65CABE; +--code-string-literal-color: #7EC699; +--code-char-literal-color: #00E0F0; +--code-xml-cdata-color: #C9D1D9; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #C0C0C0; +--code-vhdl-keyword-color: #CF53C9; +--code-vhdl-logic-color: #FF0000; +--fragment-foreground-color: #C9D1D9; +--fragment-background-color: #090D16; +--fragment-border-color: #30363D; +--fragment-lineno-border-color: #30363D; +--fragment-lineno-background-color: black; +--fragment-lineno-foreground-color: #6E7681; +--fragment-lineno-link-fg-color: #6E7681; +--fragment-lineno-link-bg-color: #303030; +--fragment-lineno-link-hover-fg-color: #8E96A1; +--fragment-lineno-link-hover-bg-color: #505050; +--fragment-copy-ok-color: #0EA80E; +--fragment-highlight-filter: 5; +--tooltip-foreground-color: #C9D1D9; +--tooltip-background-color: #202020; +--tooltip-arrow-background-color: #202020; +--tooltip-backdrop-filter: none; +--tooltip-border-color: #C9D1D9; +--tooltip-doc-color: #D9E1E9; +--tooltip-declaration-color: #20C348; +--tooltip-link-color: #79C0FF; +--tooltip-shadow: none; +--fold-line-color: #808080; + +/** font-family */ +--font-family-normal: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +/** special sections */ +--warning-color-bg: #2e1917; +--warning-color-hl: #ad2617; +--warning-color-text: #f5b1aa; +--note-color-bg: #3b2e04; +--note-color-hl: #f1b602; +--note-color-text: #ceb670; +--todo-color-bg: #163750; +--todo-color-hl: #1982D2; +--todo-color-text: #dcf0fa; +--test-color-bg: #121258; +--test-color-hl: #4242cf; +--test-color-text: #c0c0da; +--deprecated-color-bg: #2e323b; +--deprecated-color-hl: #738396; +--deprecated-color-text: #abb0bd; +--bug-color-bg: #2a2536; +--bug-color-hl: #7661b3; +--bug-color-text: #ae9ed6; +--invariant-color-bg: #303a35; +--invariant-color-hl: #76ce96; +--invariant-color-text: #cceed5; +--satisfies-color-hl: #ad2617; +--satisfies-color-bg: #2e1917; +--verifies-color-hl: #ad2617; +--verifies-color-bg: #2e1917; + +}} +body { + background-color: var(--page-background-color); + color: var(--page-foreground-color); +} + +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 22px; +} + +body.resizing { + user-select: none; + -webkit-user-select: none; +} + +#doc-content { + scrollbar-width: thin; +} + +/* @group Heading Levels */ + +.title { + font-family: var(--font-family-normal); + line-height: 28px; + font-size: 160%; + font-weight: 400; + margin: 10px 2px; +} + +h1.groupheader { + font-size: 150%; +} + +h2.groupheader { + box-shadow: 12px 0 var(--page-background-color), + -12px 0 var(--page-background-color), + 12px 1px var(--group-header-separator-color), + -12px 1px var(--group-header-separator-color); + color: var(--group-header-color); + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +td h2.groupheader { + box-shadow: 13px 0 var(--page-background-color), + -13px 0 var(--page-background-color), + 13px 1px var(--group-header-separator-color), + -13px 1px var(--group-header-separator-color); +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--glow-color); +} + +dt { + font-weight: bold; +} + +p.startli, p.startdd { + margin-top: 2px; + margin-bottom: 0px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + margin-right: 6px; + padding-right: 6px; + text-align: right; + line-height: 110%; + background-color: var(--nav-background-color); +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL { + padding-right: 6px; + padding-left: 6px; + border-radius: 0 6px 6px 0; + background-color: var(--nav-menu-active-bg); +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: var(--index-separator-color); +} + +#main-menu a:focus { + outline: auto; + z-index: 10; + position: relative; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: var(--index-header-color); +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.even { + background-color: var(--index-even-item-bg-color); +} + +.classindex dl.odd { + background-color: var(--index-odd-item-bg-color); +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: var(--page-link-color); + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: var(--page-visited-link-color); +} + +span.label a:hover { + text-decoration: none; + background: linear-gradient(to bottom, transparent 0,transparent calc(100% - 1px), currentColor 100%); +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.el, a.el:visited, a.code, a.code:visited, a.line, a.line:visited { + color: var(--page-link-color); +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: var(--page-external-link-color); +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +div.embeddoc { + font-family: var(--font-family-monospace); + padding-left: 10px; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul.check { + list-style: none; + padding-left: 40px; + margin: 0; +} + +ul.check li { + position: relative; +} + +li.unchecked::before, li.checked::before { + position: absolute; + left: -18px; + top: 0; +} + +li.unchecked::before { + content: "☐"; +} + +li.checked::before { + content: "☑"; +} + +ul.check li > p { + display: inline; +} + +ul.check li > p:not(:first-child) { + display: block; +} + +ol { + text-indent: 0px; +} + +ul { + text-indent: 0px; + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; + overflow-y: hidden; + position: relative; + min-height: 12px; + margin: 10px 0px; + padding: 10px 10px; + border: 1px solid var(--fragment-border-color); + border-radius: 4px; + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); +} + +pre.fragment { + word-wrap: break-word; + font-size: 10pt; + line-height: 125%; + font-family: var(--font-family-monospace); +} + +span.tt { + white-space: pre; + font-family: var(--font-family-monospace); + background-color: var(--fragment-background-color); +} + +.clipboard { + width: 24px; + height: 24px; + right: 5px; + top: 5px; + opacity: 0; + position: absolute; + display: inline; + overflow: hidden; + justify-content: center; + align-items: center; + cursor: pointer; +} + +.clipboard.success { + border: 1px solid var(--fragment-foreground-color); + border-radius: 4px; +} + +.fragment:hover .clipboard, .clipboard.success { + opacity: .4; +} + +.clipboard:hover, .clipboard.success { + opacity: 1 !important; +} + +.clipboard:active:not([class~=success]) svg { + transform: scale(.91); +} + +.clipboard.success svg { + fill: var(--fragment-copy-ok-color); +} + +.clipboard.success { + border-color: var(--fragment-copy-ok-color); +} + +div.line { + font-family: var(--font-family-monospace); + font-size: 13px; + min-height: 13px; + line-height: 1.2; + text-wrap: wrap; + word-break: break-all; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -62px; + padding-left: 62px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: var(--glow-color); + box-shadow: 0 0 10px var(--glow-color); +} + +span.fold { + display: inline-block; + width: 12px; + height: 12px; + margin-left: 4px; + margin-right: 1px; +} + +span.foldnone { + display: inline-block; + position: relative; + cursor: pointer; + user-select: none; +} + +span.fold.plus, span.fold.minus { + width: 10px; + height: 10px; + background-color: var(--fragment-background-color); + position: relative; + border: 1px solid var(--fold-line-color); + margin-right: 1px; +} + +span.fold.plus::before, span.fold.minus::before { + content: ''; + position: absolute; + background-color: var(--fold-line-color); +} + +span.fold.plus::before { + width: 2px; + height: 6px; + top: 2px; + left: 4px; +} + +span.fold.plus::after { + content: ''; + position: absolute; + width: 6px; + height: 2px; + top: 4px; + left: 2px; + background-color: var(--fold-line-color); +} + +span.fold.minus::before { + width: 6px; + height: 2px; + top: 4px; + left: 2px; +} + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid var(--fragment-lineno-border-color); + color: var(--fragment-lineno-foreground-color); + background-color: var(--fragment-lineno-background-color); + white-space: pre; +} +span.lineno a, span.lineno a:visited { + color: var(--fragment-lineno-link-fg-color); + background-color: var(--fragment-lineno-link-bg-color); +} + +span.lineno a:hover { + color: var(--fragment-lineno-link-hover-fg-color); + background-color: var(--fragment-lineno-link-hover-bg-color); +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + box-shadow: 13px 0 var(--page-background-color), + -13px 0 var(--page-background-color), + 13px 1px var(--group-header-separator-color), + -13px 1px var(--group-header-separator-color); + color: var(--group-header-color); + font-size: 110%; + font-weight: 500; + margin-left: 0px; + margin-top: 0em; + margin-bottom: 6px; + padding-top: 8px; + padding-bottom: 4px; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + color: var(--page-foreground-color); + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 12px; +} + +p.formulaDsp { + text-align: center; +} + +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; + width: var(--footer-logo-width); +} + +.compoundTemplParams { + color: var(--memdecl-template-color); + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: var(--code-keyword-color); +} + +span.keywordtype { + color: var(--code-type-keyword-color); +} + +span.keywordflow { + color: var(--code-flow-keyword-color); +} + +span.comment { + color: var(--code-comment-color); +} + +span.preprocessor { + color: var(--code-preprocessor-color); +} + +span.stringliteral { + color: var(--code-string-literal-color); +} + +span.charliteral { + color: var(--code-char-literal-color); +} + +span.xmlcdata { + color: var(--code-xml-cdata-color); +} + +span.vhdldigit { + color: var(--code-vhdl-digit-color); +} + +span.vhdlchar { + color: var(--code-vhdl-char-color); +} + +span.vhdlkeyword { + color: var(--code-vhdl-keyword-color); +} + +span.vhdllogic { + color: var(--code-vhdl-logic-color); +} + +blockquote { + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid var(--table-cell-border-color); +} + +th.dirtab { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-weight: bold; +} + +hr { + border: none; + margin-top: 16px; + margin-bottom: 16px; + height: 1px; + box-shadow: 13px 0 var(--page-background-color), + -13px 0 var(--page-background-color), + 13px 1px var(--group-header-separator-color), + -13px 1px var(--group-header-separator-color); +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); +} + +.memberdecls tr[class^='memitem'] { + font-family: var(--font-family-monospace); +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight { + padding-top: 2px; + padding-bottom: 2px; +} + +.memTemplParams { + padding-left: 10px; + padding-top: 5px; +} + +.memItemLeft, .memItemRight, .memTemplParams { + background-color: var(--memdecl-background-color); +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: var(--memdecl-foreground-color); +} + +tr[class^='memdesc'] { + box-shadow: inset 0px 1px 3px 0px rgba(0,0,0,.075); +} + +.mdescLeft { + border-left: 1px solid var(--memdecl-border-color); + border-bottom: 1px solid var(--memdecl-border-color); +} + +.mdescRight { + border-right: 1px solid var(--memdecl-border-color); + border-bottom: 1px solid var(--memdecl-border-color); +} + +.memTemplParams { + color: var(--memdecl-template-color); + white-space: nowrap; + font-size: 80%; + border-left: 1px solid var(--memdecl-border-color); + border-right: 1px solid var(--memdecl-border-color); +} + +td.ititle { + border: 1px solid var(--memdecl-border-color); + border-top-left-radius: 4px; + border-top-right-radius: 4px; + padding-left: 10px; +} + +tr:not(:first-child) > td.ititle { + border-top: 0; + border-radius: 0; +} + +.memItemLeft { + white-space: nowrap; + border-left: 1px solid var(--memdecl-border-color); + border-bottom: 1px solid var(--memdecl-border-color); + padding-left: 10px; + transition: none; + vertical-align: top; + text-align: right; +} + +.memItemRight { + width: 100%; + border-right: 1px solid var(--memdecl-border-color); + border-bottom: 1px solid var(--memdecl-border-color); + padding-right: 10px; + transition: none; + vertical-align: bottom; +} + +tr.heading + tr[class^='memitem'] td.memItemLeft, +tr.groupHeader + tr[class^='memitem'] td.memItemLeft, +tr.inherit_header + tr[class^='memitem'] td.memItemLeft { + border-top: 1px solid var(--memdecl-border-color); + border-top-left-radius: 4px; +} + +tr.heading + tr[class^='memitem'] td.memItemRight, +tr.groupHeader + tr[class^='memitem'] td.memItemRight, +tr.inherit_header + tr[class^='memitem'] td.memItemRight { + border-top: 1px solid var(--memdecl-border-color); + border-top-right-radius: 4px; +} + +tr.heading + tr[class^='memitem'] td.memTemplParams, +tr.heading + tr td.ititle, +tr.groupHeader + tr[class^='memitem'] td.memTemplParams, +tr.groupHeader + tr td.ititle, +tr.inherit_header + tr[class^='memitem'] td.memTemplParams { + border-top: 1px solid var(--memdecl-border-color); + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +table.memberdecls tr:last-child td.memItemLeft, +table.memberdecls tr:last-child td.mdescLeft, +table.memberdecls tr[class^='memitem']:has(+ tr.groupHeader) td.memItemLeft, +table.memberdecls tr[class^='memitem']:has(+ tr.inherit_header) td.memItemLeft, +table.memberdecls tr[class^='memdesc']:has(+ tr.groupHeader) td.mdescLeft, +table.memberdecls tr[class^='memdesc']:has(+ tr.inherit_header) td.mdescLeft { + border-bottom-left-radius: 4px; +} + +table.memberdecls tr:last-child td.memItemRight, +table.memberdecls tr:last-child td.mdescRight, +table.memberdecls tr[class^='memitem']:has(+ tr.groupHeader) td.memItemRight, +table.memberdecls tr[class^='memitem']:has(+ tr.inherit_header) td.memItemRight, +table.memberdecls tr[class^='memdesc']:has(+ tr.groupHeader) td.mdescRight, +table.memberdecls tr[class^='memdesc']:has(+ tr.inherit_header) td.mdescRight { + border-bottom-right-radius: 4px; +} + +tr.template .memItemLeft, tr.template .memItemRight { + border-top: none; + padding-top: 0; +} + + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-color: var(--memdef-proto-background-color); + line-height: 1.25; + font-family: var(--font-family-monospace); + font-weight: 500; + font-size: 16px; + float:left; + box-shadow: 0 10px 0 -1px var(--memdef-proto-background-color), + 0 2px 8px 0 rgba(0,0,0,.075); + position: relative; +} + +.memtitle:after { + content: ''; + display: block; + background: var(--memdef-proto-background-color); + height: 10px; + bottom: -10px; + left: 0px; + right: -14px; + position: absolute; + border-top-right-radius: 6px; +} + +.permalink +{ + font-family: var(--font-family-monospace); + font-weight: 500; + line-height: 1.25; + font-size: 16px; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: var(--memdef-template-color); + font-family: var(--font-family-monospace); + font-weight: normal; + margin-left: 9px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + display: table !important; + width: 100%; + box-shadow: 0 2px 8px 0 rgba(0,0,0,.075); + border-radius: 4px; +} + +.memitem.glow { + box-shadow: 0 0 15px var(--glow-color); +} + +.memname { + font-family: var(--font-family-monospace); + font-size: 13px; + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 0px 6px 0px; + color: var(--memdef-proto-text-color); + font-weight: bold; + background-color: var(--memdef-proto-background-color); + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); +} + +.overload { + font-family: var(--font-family-monospace); + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 10px 2px 10px; + border-top-width: 0; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; + padding: 0px; + padding-bottom: 1px; +} + +.paramname { + white-space: nowrap; + padding: 0px; + padding-bottom: 1px; + margin-left: 2px; +} + +.paramname em { + color: var(--memdef-param-name-color); + font-style: normal; + margin-right: 1px; +} + +.paramname .paramdefval { + font-family: var(--font-family-monospace); +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: var(--font-family-monospace); + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); + text-shadow: none; + color: var(--label-foreground-color); + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.odd { + padding-left: 6px; + background-color: var(--index-odd-item-bg-color); +} + +.directory tr.even { + padding-left: 6px; + background-color: var(--index-even-item-bg-color); +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: var(--page-link-color); +} + +.arrow { + color: var(--nav-background-color); + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 14px; + transition: opacity 0.3s ease; +} + +span.arrowhead { + position: relative; + padding: 0; + margin: 0 0 0 2px; + display: inline-block; + width: 5px; + height: 5px; + border-right: 2px solid var(--nav-arrow-color); + border-bottom: 2px solid var(--nav-arrow-color); + transform: rotate(-45deg); + transition: transform 0.3s ease; +} + +span.arrowhead.opened { + transform: rotate(45deg); +} + +.selected span.arrowhead { + border-right: 2px solid var(--nav-arrow-selected-color); + border-bottom: 2px solid var(--nav-arrow-selected-color); +} + +.icon { + font-family: var(--font-family-icon); + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfolder { + width: 24px; + height: 18px; + margin-top: 6px; + vertical-align:top; + display: inline-block; + position: relative; +} + +.icondoc { + width: 24px; + height: 18px; + margin-top: 3px; + vertical-align:top; + display: inline-block; + position: relative; +} + +.folder-icon { + width: 16px; + height: 11px; + background-color: var(--icon-folder-fill-color); + border: 1px solid var(--icon-folder-border-color); + border-radius: 0 2px 2px 2px; + position: relative; + box-sizing: content-box; +} + +.folder-icon::after { + content: ''; + position: absolute; + top: 2px; + left: -1px; + width: 16px; + height: 7px; + background-color: var(--icon-folder-open-fill-color); + border: 1px solid var(--icon-folder-border-color); + border-radius: 7px 7px 2px 2px; + transform-origin: top left; + opacity: 0; + transition: all 0.3s linear; +} + +.folder-icon::before { + content: ''; + position: absolute; + top: -3px; + left: -1px; + width: 6px; + height: 2px; + background-color: var(--icon-folder-fill-color); + border-top: 1px solid var(--icon-folder-border-color); + border-left: 1px solid var(--icon-folder-border-color); + border-right: 1px solid var(--icon-folder-border-color); + border-radius: 2px 2px 0 0; +} + +.folder-icon.open::after { + top: 3px; + opacity: 1; +} + +.doc-icon { + left: 6px; + width: 12px; + height: 16px; + background-color: var(--icon-doc-border-color); + clip-path: polygon(0 0, 66% 0, 100% 25%, 100% 100%, 0 100%); + position: relative; + display: inline-block; +} +.doc-icon::before { + content: ""; + left: 1px; + top: 1px; + width: 10px; + height: 14px; + background-color: var(--icon-doc-fill-color); + clip-path: polygon(0 0, 66% 0, 100% 25%, 100% 100%, 0 100%); + position: absolute; + box-sizing: border-box; +} +.doc-icon::after { + content: ""; + left: 7px; + top: 0px; + width: 3px; + height: 3px; + background-color: transparent; + position: absolute; + border: 1px solid var(--icon-doc-border-color); +} + + + + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +span.dynarrow { + position: relative; + display: inline-block; + width: 12px; + bottom: 1px; +} + +address { + font-style: normal; + color: var(--footer-foreground-color); +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + margin-bottom: 10px; + border: 1px solid var(--memdef-border-color); + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fieldinit { + white-space: nowrap; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fieldinit { + padding-top: 3px; + text-align: right; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid var(--memdef-border-color); +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-color: var(--memdef-title-background-color); + font-size: 90%; + color: var(--memdef-proto-text-color); + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); +} + +/* style requirements page */ + +div.req_title { + text-decoration-line: underline; + text-decoration-style: solid; + text-decoration-color: var(--table-cell-border-color); + text-decoration-thickness: 1px; + font-weight: bold; +} + +table.reqlist tr > td:first-child { + text-align: right; + font-weight: bold; +} + +div.missing_satisfies { + border-left: 8px solid var(--satisfies-color-hl); + border-radius: 4px; + background: var(--satisfies-color-bg); + padding: 10px; + margin: 10px 0px; + overflow: hidden; + margin-left: 0; +} + +div.missing_verifies { + border-left: 8px solid var(--verifies-color-hl); + border-radius: 4px; + background: var(--verifies-color-bg); + padding: 10px; + margin: 10px 0px; + overflow: hidden; + margin-left: 0; +} + +/* ----------- navigation breadcrumb styling ----------- */ + +#nav-path ul { + height: 30px; + line-height: 30px; + color: var(--nav-text-normal-color); + overflow: hidden; + margin: 0px; + padding-left: 4px; + background-image: none; + background: var(--page-background-color); + border-bottom: 1px solid var(--nav-breadcrumb-separator-color); + font-size: var(--nav-font-size-level1); + font-family: var(--font-family-nav); + position: relative; + z-index: 100; +} + +#main-nav { + border-bottom: 1px solid var(--nav-border-color); +} + +.navpath li { + list-style-type:none; + float:left; + color: var(--nav-foreground-color); +} + +.navpath li.footer { + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + font-size: 8pt; + color: var(--footer-foreground-color); +} + +#nav-path li.navelem { + background-image: none; + display: flex; + align-items: center; + padding-left: 15px; +} + +.navpath li.navelem a { + text-shadow: none; + display: inline-block; + color: var(--nav-breadcrumb-color); + position: relative; + top: 0px; + height: 30px; + margin-right: -20px; +} + +#nav-path li.navelem:after { + content: ''; + display: inline-block; + position: relative; + top: 0; + right: -15px; + width: 30px; + height: 30px; + transform: scaleX(0.5) scale(0.707) rotate(45deg); + z-index: 10; + background: var(--page-background-color); + box-shadow: 2px -2px 0 2px var(--nav-breadcrumb-separator-color); + border-radius: 0 5px 0 50px; +} + +#nav-path li.navelem:first-child { + margin-left: -6px; +} + +#nav-path li.navelem:hover, +#nav-path li.navelem:hover:after { + background-color: var(--nav-breadcrumb-active-bg); +} + +/* ---------------------- */ + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + margin: 0px; + background-color: var(--header-background-color); + border-bottom: 1px solid var(--header-separator-color); +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl { + padding: 0 0 0 0; +} + +dl.bug dt a, dl.deprecated dt a, dl.todo dt a, dl.test a { + font-weight: bold !important; +} + +dl.warning, dl.attention, dl.important, dl.note, dl.deprecated, dl.bug, +dl.invariant, dl.pre, dl.post, dl.todo, dl.test, dl.remark { + padding: 10px; + margin: 10px 0px; + overflow: hidden; + margin-left: 0; + border-radius: 4px; +} + +dl.section dd { + margin-bottom: 2px; +} + +dl.warning, dl.attention, dl.important { + background: var(--warning-color-bg); + border-left: 8px solid var(--warning-color-hl); + color: var(--warning-color-text); +} + +dl.warning dt, dl.attention dt, dl.important dt { + color: var(--warning-color-hl); +} + +dl.warning .tt, dl.attention .tt, dl.important .tt { + background-color: hsl(from var(--warning-color-bg) h s calc(l + var(--fragment-highlight-filter))); +} + +dl.note, dl.remark { + background: var(--note-color-bg); + border-left: 8px solid var(--note-color-hl); + color: var(--note-color-text); +} + +dl.note dt, dl.remark dt { + color: var(--note-color-hl); +} + +dl.note .tt, dl.remark .tt { + background-color: hsl(from var(--note-color-bg) h s calc(l + var(--fragment-highlight-filter))); +} + +dl.todo { + background: var(--todo-color-bg); + border-left: 8px solid var(--todo-color-hl); + color: var(--todo-color-text); +} + +dl.todo dt { + color: var(--todo-color-hl); +} + +dl.todo .tt { + background-color: hsl(from var(--todo-color-bg) h s calc(l + var(--fragment-highlight-filter))); +} + +dl.test { + background: var(--test-color-bg); + border-left: 8px solid var(--test-color-hl); + color: var(--test-color-text); +} + +dl.test dt { + color: var(--test-color-hl); +} + +dl.test .tt { + background-color: hsl(from var(--test-color-bg) h s calc(l + var(--fragment-highlight-filter))); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.bug { + background: var(--bug-color-bg); + border-left: 8px solid var(--bug-color-hl); + color: var(--bug-color-text); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.bug .tt { + background-color: hsl(from var(--bug-color-bg) h s calc(l + var(--fragment-highlight-filter))); +} + +dl.deprecated { + background: var(--deprecated-color-bg); + border-left: 8px solid var(--deprecated-color-hl); + color: var(--deprecated-color-text); +} + +dl.deprecated dt a { + color: var(--deprecated-color-hl) !important; +} + +dl.deprecated .tt { + background-color: hsl(from var(--deprecated-color-bg) h s calc(l + var(--fragment-highlight-filter))); +} + + +dl.invariant, dl.pre, dl.post { + background: var(--invariant-color-bg); + border-left: 8px solid var(--invariant-color-hl); + color: var(--invariant-color-text); +} + +dl.invariant dt, dl.pre dt, dl.post dt { + color: var(--invariant-color-hl); +} + +dl.invariant .tt, dl.pre .tt, dl.post .tt { + background-color: hsl(from var(--invariant-color-bg) h s calc(l + var(--fragment-highlight-filter))); +} + +dl.note dd, dl.warning dd, dl.pre dd, dl.post dd, +dl.remark dd, dl.attention dd, dl.important dd, dl.invariant dd, +dl.bug dd, dl.deprecated dd, dl.todo dd, dl.test dd { + margin-inline-start: 0px; +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font-size: 200%; + font-family: var(--font-family-title); + margin: 0; + padding: 0; +} + +#side-nav #projectname +{ + font-size: 130%; +} + +#projectbrief +{ + font-size: 90%; + font-family: var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font-size: 50%; + font-family: var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0 0 0 5px; + margin: 0px; + border-bottom: 1px solid var(--title-separator-color); + background-color: var(--title-background-color); +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:var(--citation-label-color); + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent; + font: 10px/1.2 var(--font-family-toc); + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 var(--font-family-toc); + color: var(--toc-header-color); + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li[class^='level'] { + margin-left: 15px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.empty { + background-image: none; + margin-top: 0px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.inherit_header { + font-weight: 400; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0 2px 0; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 12px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + color: var(--tooltip-foreground-color); + background-color: var(--tooltip-background-color); + backdrop-filter: var(--tooltip-backdrop-filter); + -webkit-backdrop-filter: var(--tooltip-backdrop-filter); + border: 1px solid var(--tooltip-border-color); + border-radius: 4px; + box-shadow: var(--tooltip-shadow); + display: none; + font-size: smaller; + max-width: 80%; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: var(--tooltip-doc-color); + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip a { + color: var(--tooltip-link-color); +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: var(--tooltip-declaration-color); +} + +#powerTip div { + margin: 0px; + padding: 0px; + font-size: 12px; + font-family: var(--font-family-tooltip); + line-height: 16px; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: var(--tooltip-arrow-background-color); + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: var(--tooltip-arrow-background-color); + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +tt, code, kbd +{ + display: inline-block; +} +tt, code, kbd +{ + vertical-align: top; +} +/* @end */ + +u { + text-decoration: underline; +} + +details>summary { + list-style-type: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; +} + +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; +} + +:root { + scrollbar-width: thin; + scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); +} + +::-webkit-scrollbar { + background-color: var(--scrollbar-background-color); + height: 12px; + width: 12px; +} +::-webkit-scrollbar-thumb { + border-radius: 6px; + box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color); + border: solid 2px transparent; +} +::-webkit-scrollbar-corner { + background-color: var(--scrollbar-background-color); +} + diff --git a/html/doxygen.svg b/html/doxygen.svg new file mode 100644 index 0000000..79a7635 --- /dev/null +++ b/html/doxygen.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/html/doxygen_crawl.html b/html/doxygen_crawl.html new file mode 100644 index 0000000..e20d408 --- /dev/null +++ b/html/doxygen_crawl.html @@ -0,0 +1,171 @@ + + + +Validator / crawler helper + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/html/dynsections.js b/html/dynsections.js new file mode 100644 index 0000000..0e15bd4 --- /dev/null +++ b/html/dynsections.js @@ -0,0 +1,191 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ + +function toggleVisibility(linkObj) { + return dynsection.toggleVisibility(linkObj); +} + +let dynsection = { + // helper function + updateStripes : function() { + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); + }, + + toggleVisibility : function(linkObj) { + const base = $(linkObj).attr('id'); + const summary = $('#'+base+'-summary'); + const content = $('#'+base+'-content'); + const trigger = $('#'+base+'-trigger'); + const src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.slideUp('fast'); + summary.show(); + $(linkObj).find('.arrowhead').addClass('closed').removeClass('opened'); + } else { + content.slideDown('fast'); + summary.hide(); + $(linkObj).find('.arrowhead').removeClass('closed').addClass('opened'); + } + return false; + }, + + toggleLevel : function(level) { + $('table.directory tr').each(function() { + const l = this.id.split('_').length-1; + const i = $('#img'+this.id.substring(3)); + const a = $('#arr'+this.id.substring(3)); + if (l'); + // add vertical lines to other rows + $('span[class=lineno]').not(':eq(0)').append(''); + // add toggle controls to lines with fold divs + $('div[class=foldopen]').each(function() { + // extract specific id to use + const id = $(this).attr('id').replace('foldopen',''); + // extract start and end foldable fragment attributes + const start = $(this).attr('data-start'); + const end = $(this).attr('data-end'); + // replace normal fold span with controls for the first line of a foldable fragment + $(this).find('span[class=fold]:first').replaceWith(''); + // append div for folded (closed) representation + $(this).after(''); + // extract the first line from the "open" section to represent closed content + const line = $(this).children().first().clone(); + // remove any glow that might still be active on the original line + $(line).removeClass('glow'); + if (start) { + // if line already ends with a start marker (e.g. trailing {), remove it + $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); + } + // replace minus with plus symbol + $(line).find('span[class=fold]').addClass('plus').removeClass('minus'); + // append ellipsis + $(line).append(' '+start+''+end); + // insert constructed line into closed div + $('#foldclosed'+id).html(line); + }); + }, +}; +/* @license-end */ diff --git a/html/functions.html b/html/functions.html new file mode 100644 index 0000000..5faf08f --- /dev/null +++ b/html/functions.html @@ -0,0 +1,268 @@ + + + + + + + +Folliow: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
+ +

- _ -

+ + +

- a -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- u -

+ + +

- v -

+
+
+
+ + + + diff --git a/html/functions_func.html b/html/functions_func.html new file mode 100644 index 0000000..643e105 --- /dev/null +++ b/html/functions_func.html @@ -0,0 +1,268 @@ + + + + + + + +Folliow: Data Fields - Functions + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all documented functions with links to the struct/union documentation for each field:
+ +

- _ -

+ + +

- a -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- l -

+ + +

- m -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- u -

+ + +

- v -

+
+
+
+ + + + diff --git a/html/hierarchy.html b/html/hierarchy.html new file mode 100644 index 0000000..908ebcb --- /dev/null +++ b/html/hierarchy.html @@ -0,0 +1,127 @@ + + + + + + + +Folliow: Class Hierarchy + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
+
+
+ + + + diff --git a/html/hierarchy.js b/html/hierarchy.js new file mode 100644 index 0000000..75a4dc7 --- /dev/null +++ b/html/hierarchy.js @@ -0,0 +1,24 @@ +var hierarchy = +[ + [ "Mother", "class_entities_1_1_mother.html", [ + [ "Authorisation", "class_entities_1_1_authorisation.html", null ], + [ "Category", "class_entities_1_1_category.html", null ], + [ "Image", "class_entities_1_1_image.html", null ], + [ "Project", "class_entities_1_1_project.html", null ], + [ "User", "class_entities_1_1_user.html", null ] + ] ], + [ "MotherCtrl", "class_controllers_1_1_mother_ctrl.html", [ + [ "AdminCtrl", "class_controllers_1_1_admin_ctrl.html", null ], + [ "ErrorCtrl", "class_controllers_1_1_error_ctrl.html", null ], + [ "PageCtrl", "class_controllers_1_1_page_ctrl.html", null ], + [ "ProjectCtrl", "class_controllers_1_1_project_ctrl.html", null ], + [ "UserCtrl", "class_controllers_1_1_user_ctrl.html", null ] + ] ], + [ "MotherModel", "class_models_1_1_mother_model.html", [ + [ "AuthorisationModel", "class_models_1_1_authorisation_model.html", null ], + [ "CategoryModel", "class_models_1_1_category_model.html", null ], + [ "ImageModel", "class_models_1_1_image_model.html", null ], + [ "ProjectModel", "class_models_1_1_project_model.html", null ], + [ "UserModel", "class_models_1_1_user_model.html", null ] + ] ] +]; \ No newline at end of file diff --git a/html/index.html b/html/index.html new file mode 100644 index 0000000..48abdd8 --- /dev/null +++ b/html/index.html @@ -0,0 +1,106 @@ + + + + + + + +Folliow: Main Page + + + + + + + + + + + + + + +
+
+ + + + + + +
+
Folliow +
+
Un projet de site web réaliser en PHP
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Folliow Documentation
+
+
+ +
+
+
+ + + + diff --git a/html/jquery.js b/html/jquery.js new file mode 100644 index 0000000..875ada7 --- /dev/null +++ b/html/jquery.js @@ -0,0 +1,204 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e} +var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp( +"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType +}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c +)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){ +return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll( +":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id") +)&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push( +"\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test( +a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null, +null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne +).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for( +var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n; +return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0, +r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r] +,C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each( +function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r, +"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})} +),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each( +"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t +){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t +]=y.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i}, +getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within, +s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})), +this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t +).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split( +","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add( +this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{ +width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(), +!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){ +this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height +,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e, +i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left +)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e +){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0), +i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth( +)-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e, +function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0 +]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){ +targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se", +"n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if( +session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)} +closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if( +session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE, +function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset); +tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList, +finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight())); +return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")} +function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(), +elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight, +viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b, +"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery); +/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)), +mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend( +$.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy( +this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData( +"smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id" +).indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?( +this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for( +var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){ +return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if(( +!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&( +this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0 +]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass( +"highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){ +t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]" +)||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){ +t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"), +a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i, +downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2) +)&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t +)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0), +canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}}, +rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})} +return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1, +bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); diff --git a/html/menu.js b/html/menu.js new file mode 100644 index 0000000..15f9c52 --- /dev/null +++ b/html/menu.js @@ -0,0 +1,131 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search,treeview) { + function makeTree(data,relPath) { + let result=''; + if ('children' in data) { + result+='
    '; + for (let i in data.children) { + let url; + const link = data.children[i].url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + } else { + url = relPath+link; + } + result+='
  • '+ + data.children[i].text+''+ + makeTree(data.children[i],relPath)+'
  • '; + } + result+='
'; + } + return result; + } + let searchBoxHtml; + if (searchEnabled) { + if (serverSide) { + searchBoxHtml='
'+ + '
'+ + '
'+ + ''+ + '
'+ + '
'+ + '
'+ + '
'; + } else { + searchBoxHtml='
'+ + ''+ + ''+ + ''+ + ''+ + ''+ + '
'+ + '
'+ + '
'; + } + } + + $('#main-nav').before('
'+ + ''+ + ''+ + '
'); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + $('#main-menu').append('
  • '); + const $mainMenuState = $('#main-menu-state'); + let prevWidth = 0; + if ($mainMenuState.length) { + const initResizableIfExists = function() { + if (typeof initResizable==='function') initResizable(treeview); + } + // animate mobile menu + $mainMenuState.change(function() { + const $menu = $('#main-menu'); + let options = { duration: 250, step: initResizableIfExists }; + if (this.checked) { + options['complete'] = () => $menu.css('display', 'block'); + $menu.hide().slideDown(options); + } else { + options['complete'] = () => $menu.css('display', 'none'); + $menu.show().slideUp(options); + } + }); + // set default menu visibility + const resetState = function() { + const $menu = $('#main-menu'); + const newWidth = $(window).outerWidth(); + if (newWidth!=prevWidth) { + if ($(window).outerWidth()<768) { + $mainMenuState.prop('checked',false); $menu.hide(); + $('#searchBoxPos1').html(searchBoxHtml); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBoxHtml); + $('#searchBoxPos2').show(); + } + if (typeof searchBox!=='undefined') { + searchBox.CloseResultsWindow(); + } + prevWidth = newWidth; + } + } + $(window).ready(function() { resetState(); initResizableIfExists(); }); + $(window).resize(resetState); + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/html/menudata.js b/html/menudata.js new file mode 100644 index 0000000..06df0ed --- /dev/null +++ b/html/menudata.js @@ -0,0 +1,65 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Data Structures",url:"annotated.html",children:[ +{text:"Data Structures",url:"annotated.html"}, +{text:"Data Structure Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"hierarchy.html"}, +{text:"Data Fields",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"_",url:"functions.html#index__5F"}, +{text:"a",url:"functions.html#index_a"}, +{text:"c",url:"functions.html#index_c"}, +{text:"d",url:"functions.html#index_d"}, +{text:"e",url:"functions.html#index_e"}, +{text:"f",url:"functions.html#index_f"}, +{text:"g",url:"functions.html#index_g"}, +{text:"h",url:"functions.html#index_h"}, +{text:"i",url:"functions.html#index_i"}, +{text:"l",url:"functions.html#index_l"}, +{text:"m",url:"functions.html#index_m"}, +{text:"p",url:"functions.html#index_p"}, +{text:"r",url:"functions.html#index_r"}, +{text:"s",url:"functions.html#index_s"}, +{text:"u",url:"functions.html#index_u"}, +{text:"v",url:"functions.html#index_v"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"_",url:"functions_func.html#index__5F"}, +{text:"a",url:"functions_func.html#index_a"}, +{text:"c",url:"functions_func.html#index_c"}, +{text:"d",url:"functions_func.html#index_d"}, +{text:"e",url:"functions_func.html#index_e"}, +{text:"f",url:"functions_func.html#index_f"}, +{text:"g",url:"functions_func.html#index_g"}, +{text:"h",url:"functions_func.html#index_h"}, +{text:"i",url:"functions_func.html#index_i"}, +{text:"l",url:"functions_func.html#index_l"}, +{text:"m",url:"functions_func.html#index_m"}, +{text:"p",url:"functions_func.html#index_p"}, +{text:"r",url:"functions_func.html#index_r"}, +{text:"s",url:"functions_func.html#index_s"}, +{text:"u",url:"functions_func.html#index_u"}, +{text:"v",url:"functions_func.html#index_v"}]}]}]}]} diff --git a/html/navtree.css b/html/navtree.css new file mode 100644 index 0000000..0ea3a07 --- /dev/null +++ b/html/navtree.css @@ -0,0 +1,327 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0; + padding:0; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + position: relative; + background-color: var(--nav-menu-active-bg); + border-radius: 0 6px 6px 0; + /*margin-right: 5px;*/ +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px var(--font-family-nav); + line-height: 22px; +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:var(--page-link-color); +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin: 0 6px 0 -5px; + padding: 0 0 0 5px; + height: 22px; +} + +#nav-tree { + padding: 0px 0px; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + overflow : hidden; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + transition: opacity 0.5s ease; + background-color: var(--nav-splitbar-bg-color); + opacity:0; + cursor:col-resize; + height:100%; + right:0; + top:0; + width:6px; + position: relative; +} + +.ui-resizable-e:after { + content: ''; + display: block; + top: 50%; + left: 1px; + width: 2px; + height: 15px; + border-left: 1px solid var(--nav-splitbar-handle-color); + border-right: 1px solid var(--nav-splitbar-handle-color); + position: absolute; +} + +.ui-resizable-e:hover { + opacity: 1; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-color: var(--nav-background-color); + -webkit-overflow-scrolling : touch; /* iOS 5+ */ + scrollbar-width: thin; + border-right: 1px solid var(--nav-border-color); + padding-left: 5px; +} + +#nav-sync { + position:absolute; + top:0px; + right:0px; + z-index:1; +} + +#nav-sync img { + opacity:0.3; +} + +div.nav-sync-icon { + position: relative; + width: 24px; + height: 17px; + left: -6px; + top: -1px; + opacity: 0.7; + display: inline-block; + background-color: var(--sync-icon-background-color); + border: 1px solid var(--sync-icon-border-color); + box-sizing: content-box; +} + +div.nav-sync-icon:hover { + background-color: var(--sync-icon-selected-background-color); + opacity: 1.0; +} + +div.nav-sync-icon.active:after { + content: ''; + background-color: var(--sync-icon-background-color); + border-top: 2px solid var(--sync-icon-color); + position: absolute; + width: 16px; + height: 0px; + top: 7px; + left: 4px; +} + +div.nav-sync-icon.active:hover:after { + border-top: 2px solid var(--sync-icon-selected-color); +} + +span.sync-icon-left { + position: absolute; + padding: 0; + margin: 0; + top: 3px; + left: 4px; + display: inline-block; + width: 8px; + height: 8px; + border-left: 2px solid var(--sync-icon-color); + border-top: 2px solid var(--sync-icon-color); + transform: rotate(-45deg); +} + +span.sync-icon-right { + position: absolute; + padding: 0; + margin: 0; + top: 3px; + left: 10px; + display: inline-block; + width: 8px; + height: 8px; + border-right: 2px solid var(--sync-icon-color); + border-bottom: 2px solid var(--sync-icon-color); + transform: rotate(-45deg); +} + +div.nav-sync-icon:hover span.sync-icon-left { + border-left: 2px solid var(--sync-icon-selected-color); + border-top: 2px solid var(--sync-icon-selected-color); +} + +div.nav-sync-icon:hover span.sync-icon-right { + border-right: 2px solid var(--sync-icon-selected-color); + border-bottom: 2px solid var(--sync-icon-selected-color); +} + +#nav-path ul { + border-top: 1px solid var(--nav-breadcrumb-separator-color); +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + +/*---------------------------*/ +#container { + display: grid; + grid-template-columns: auto auto; + overflow: hidden; +} + +#page-nav { + background: var(--nav-background-color); + display: block; + width: 250px; + box-sizing: content-box; + position: relative; + border-left: 1px solid var(--nav-border-color); +} + +#page-nav-tree { + display: inline-block; +} + +#page-nav-resize-handle { + transition: opacity 0.5s ease; + background-color: var(--nav-splitbar-bg-color); + opacity:0; + cursor:col-resize; + height:100%; + right:0; + top:0; + width:6px; + position: relative; + z-index: 1; + user-select: none; +} + +#page-nav-resize-handle:after { + content: ''; + display: block; + top: 50%; + left: 1px; + width: 2px; + height: 15px; + border-left: 1px solid var(--nav-splitbar-handle-color); + border-right: 1px solid var(--nav-splitbar-handle-color); + position: absolute; +} + +#page-nav-resize-handle.dragging, +#page-nav-resize-handle:hover { + opacity: 1; +} + +#page-nav-contents { + padding: 0; + margin: 0; + display: block; + top: 0; + left: 0; + height: 100%; + width: 100%; + position: absolute; + overflow: auto; + scrollbar-width: thin; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +ul.page-outline, +ul.page-outline ul { + text-indent: 0; + list-style: none outside none; + padding: 0 0 0 4px; +} + +ul.page-outline { + margin: 0 4px 4px 6px; +} + +ul.page-outline div.item { + font: 12px var(--font-family-nav); + line-height: 22px; +} + +ul.page-outline li { + white-space: nowrap; +} + +ul.page-outline li.vis { + background-color: var(--nav-breadcrumb-active-bg); +} + +#container.resizing { + cursor: col-resize; + user-select: none; +} diff --git a/html/navtree.js b/html/navtree.js new file mode 100644 index 0000000..fac8d01 --- /dev/null +++ b/html/navtree.js @@ -0,0 +1,901 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ + +function initNavTree(toroot,relpath,allMembersFile) { + let navTreeSubIndices = []; + const ARROW_DOWN = ''; + const ARROW_RIGHT = ''; + const NAVPATH_COOKIE_NAME = ''+'navpath'; + const fullSidebar = typeof page_layout!=='undefined' && page_layout==1; + + function getScrollBarWidth () { + let outer = $('
    ').css({visibility: 'hidden', width: 100, overflow: 'scroll', scrollbarWidth: 'thin'}).appendTo('body'); + let widthWithScroll = $('
    ').css({width: '100%'}).appendTo(outer).outerWidth(); + outer.remove(); + return 100 - widthWithScroll; + } + const scrollbarWidth = getScrollBarWidth(); + + function adjustSyncIconPosition() { + if (!fullSidebar) { + const nt = document.getElementById("nav-tree"); + const hasVerticalScrollbar = nt.scrollHeight > nt.clientHeight; + $("#nav-sync").css({right:parseInt(hasVerticalScrollbar?scrollbarWidth:0)}); + } + } + + const getData = function(varName) { + const i = varName.lastIndexOf('/'); + const n = i>=0 ? varName.substring(i+1) : varName; + const e = n.replace(/-/g,'_'); + return window[e]; + } + + const stripPath = function(uri) { + return uri.substring(uri.lastIndexOf('/')+1); + } + + const stripPath2 = function(uri) { + const i = uri.lastIndexOf('/'); + const s = uri.substring(i+1); + const m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; + } + + const hashValue = function() { + return $(location).attr('hash').substring(1).replace(/[^\w-]/g,''); + } + + const hashUrl = function() { + return '#'+hashValue(); + } + + const pathName = function() { + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;()]/g, ''); + } + + const storeLink = function(link) { + if (!$("#nav-sync").hasClass('sync')) { + Cookie.writeSetting(NAVPATH_COOKIE_NAME,link,0); + } + } + + const deleteLink = function() { + Cookie.eraseSetting(NAVPATH_COOKIE_NAME); + } + + const cachedLink = function() { + return Cookie.readSetting(NAVPATH_COOKIE_NAME,''); + } + + const getScript = function(scriptName,func) { + const head = document.getElementsByTagName("head")[0]; + const script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = function() { func(); adjustSyncIconPosition(); } + script.src = scriptName+'.js'; + head.appendChild(script); + } + + const createIndent = function(o,domNode,node) { + let level=-1; + let n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + const imgNode = document.createElement("span"); + imgNode.className = 'arrow'; + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.innerHTML=ARROW_RIGHT; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast",adjustSyncIconPosition); + $(node.plus_img.childNodes[0]).removeClass('opened').addClass('closed'); + node.expanded = false; + } else { + expandNode(o, node, false, true); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + let span = document.createElement("span"); + span.className = 'arrow'; + span.style.width = 16*(level+1)+'px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } + } + + let animationInProgress = false; + + const gotoAnchor = function(anchor,aname) { + let pos, docContent = $('#doc-content'); + let ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || ancParent.hasClass('memtitle') || + ancParent.hasClass('fieldname') || ancParent.hasClass('fieldtype') || + ancParent.is(':header')) { + pos = ancParent.offset().top; + } else if (anchor.position()) { + pos = anchor.offset().top; + } + if (pos) { + const dcOffset = docContent.offset().top; + const dcHeight = docContent.height(); + const dcScrHeight = docContent[0].scrollHeight + const dcScrTop = docContent.scrollTop(); + let dist = Math.abs(Math.min(pos-dcOffset,dcScrHeight-dcHeight-dcScrTop)); + animationInProgress = true; + docContent.animate({ + scrollTop: pos + dcScrTop - dcOffset + },Math.max(50,Math.min(500,dist)),function() { + animationInProgress=false; + if (anchor.parent().attr('class')=='memItemLeft') { + let rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname') { + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype') { + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } + }); + } + } + + function htmlToNode(html) { + const template = document.createElement('template'); + template.innerHTML = html; + const nNodes = template.content.childNodes.length; + if (nNodes !== 1) { + throw new Error(`html parameter must represent a single node; got ${nNodes}. `); + } + return template.content.firstChild; + } + + const newNode = function(o, po, text, link, childrenData, lastNode) { + const node = { + children : [], + childrenData : childrenData, + depth : po.depth + 1, + relpath : po.relpath, + isLast : lastNode, + li : document.createElement("li"), + parentNode : po, + itemDiv : document.createElement("div"), + labelSpan : document.createElement("span"), + expanded : false, + childrenUL : null, + getChildrenUL : function() { + if (!this.childrenUL) { + this.childrenUL = document.createElement("ul"); + this.childrenUL.className = "children_ul"; + this.childrenUL.style.display = "none"; + this.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }, + }; + + node.itemDiv.className = "item"; + node.labelSpan.className = "label"; + createIndent(o,node.itemDiv,node); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + const a = document.createElement("a"); + node.labelSpan.appendChild(a); + po.getChildrenUL().appendChild(node.li); + a.appendChild(htmlToNode(''+text+'')); + if (link) { + let url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + const aname = '#'+link.split('#')[1]; + const srcPage = stripPath(pathName()); + const targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : aname; + a.onclick = function() { + storeLink(link); + aPPar = $(a).parent().parent(); + if (!aPPar.hasClass('selected')) { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + aPPar.addClass('selected'); + aPPar.attr('id','selected'); + } + const anchor = $(aname); + gotoAnchor(anchor,aname); + }; + } else { + a.href = url; + a.onclick = () => storeLink(link); + } + } else if (childrenData != null) { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + return node; + } + + const showRoot = function() { + const headerHeight = $("#top").height(); + const footerHeight = $("#nav-path").height(); + const windowHeight = $(window).height() - headerHeight - footerHeight; + (function() { // retry until we can scroll to the selected item + try { + const navtree=$('#nav-tree'); + navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); + } + + const expandNode = function(o, node, imm, setFocus) { + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + const varName = node.childrenData; + getScript(node.relpath+varName,function() { + node.childrenData = getData(varName); + expandNode(o, node, imm, setFocus); + }); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).slideDown("fast",adjustSyncIconPosition); + $(node.plus_img.childNodes[0]).addClass('opened').removeClass('closed'); + node.expanded = true; + if (setFocus) { + $(node.expandToggle).focus(); + } + } + } + } + + const glowEffect = function(n,duration) { + n.addClass('glow').delay(duration).queue(function(next) { + $(this).removeClass('glow');next(); + }); + } + + const highlightAnchor = function() { + const aname = hashUrl(); + const anchor = $(aname); + gotoAnchor(anchor,aname); + } + + const selectAndHighlight = function(hash,n) { + let a; + if (hash) { + const link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + let topOffset=5; + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + topOffset+=25; + } + showRoot(); + } + + const showNode = function(o, node, index, hash) { + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + const varName = node.childrenData; + getScript(node.relpath+varName,function() { + node.childrenData = getData(varName); + showNode(o,node,index,hash); + }); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + $(node.plus_img.childNodes[0]).removeClass('closed').addClass('opened'); + node.expanded = true; + const n = node.children[o.breadcrumbs[index]]; + if (index+10) { // try root page without hash as fallback + gotoUrl(o,root,'',relpath); + } else { + o.breadcrumbs = $.extend(true, [], nti); + if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index + navTo(o,NAVTREE[0][1],"",relpath); + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + } + if (o.breadcrumbs) { + o.breadcrumbs.unshift(0); // add 0 for root node + showNode(o, o.node, 0, hash); + } + } + } + + const gotoUrl = function(o,root,hash,relpath) { + const url=root+hash; + let i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function() { + navTreeSubIndices[i] = window['NAVTREEINDEX'+i]; + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + }); + } + } + + const navTo = function(o,root,hash,relpath) { + const link = cachedLink(); + if (link) { + const parts = link.split('#'); + root = parts[0]; + hash = parts.length>1 ? '#'+parts[1].replace(/[^\w-]/g,'') : ''; + } + if (hash.match(/^#l\d+$/)) { + const anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + gotoUrl(o,root,hash,relpath); + } + + const showSyncOff = function(n,relpath) { + n.html(''); + } + + const showSyncOn = function(n,relpath) { + n.html(''); + } + + const o = { + toroot : toroot, + node : { + childrenData : NAVTREE, + children : [], + childrenUL : document.createElement("ul"), + getChildrenUL : function() { return this.childrenUL }, + li : document.getElementById("nav-tree-contents"), + depth : 0, + relpath : relpath, + expanded : false, + isLast : true, + plus_img : document.createElement("span"), + }, + }; + o.node.li.appendChild(o.node.childrenUL); + o.node.plus_img.className = 'arrow'; + o.node.plus_img.innerHTML = ARROW_RIGHT; + + const navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + + navSync.click(() => { + const navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } + }); + + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + + $(window).bind('hashchange', () => { + if (!animationInProgress) { + if (window.location.hash && window.location.hash.length>1) { + let a; + if ($(location).attr('hash')) { + const clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/ try to keep right panel width + const shrinkLeft = Math.min(deficit, leftPanelWidth-minPanelWidth); + leftPanelWidth -= shrinkLeft; + const remainingDeficit = deficit - shrinkLeft; + const shrinkRight = Math.min(remainingDeficit, rightPanelWidth-minPanelWidth); + rightPanelWidth -= shrinkRight; + } else { // dragging right handle -> try to keep left panel width + const shrinkRight = Math.min(deficit, rightPanelWidth-minPanelWidth); + rightPanelWidth -= shrinkRight; + const remainingDeficit = deficit - shrinkRight; + const shrinkLeft = Math.min(remainingDeficit, leftPanelWidth-minPanelWidth); + leftPanelWidth -= shrinkLeft; + } + } else { + rightPanelWidth = pagenav.length ? Math.max(minPanelWidth,rightPanelWidth) : 0; + leftPanelWidth = Math.max(minPanelWidth,leftPanelWidth); + } + return { leftPanelWidth, rightPanelWidth } + } + + function updateWidths(sidenavWidth,pagenavWidth,dragLeft) + { + const widths = constrainPanelWidths(sidenavWidth,pagenavWidth,dragLeft); + const widthStr = parseFloat(widths.leftPanelWidth)+"px"; + content.css({marginLeft:widthStr}); + if (fullSidebar) { + footer.css({marginLeft:widthStr}); + if (mainnav) { + mainnav.css({marginLeft:widthStr}); + } + } + sidenav.css({width:widthStr}); + if (pagenav.length) { + container.css({gridTemplateColumns:'auto '+parseFloat(widths.rightPanelWidth)+'px'}); + if (!dragLeft) { + pagenav.css({width:parseFloat(widths.rightPanelWidth-1)+'px'}); + } + } + return widths; + } + + function resizeWidth(dragLeft) { + const sidenavWidth = $(sidenav).outerWidth()-barWidth; + let pagenavWidth = pagenav.length ? $(pagenav).outerWidth() : 0; + const widths = updateWidths(sidenavWidth,pagenavWidth,dragLeft); + Cookie.writeSetting(RESIZE_COOKIE_NAME,widths.leftPanelWidth-barWidth); + if (pagenav.length) { + Cookie.writeSetting(PAGENAV_COOKIE_NAME,widths.rightPanelWidth); + } + } + + function restoreWidth(sidenavWidth,pagenavWidth) { + updateWidths(sidenavWidth,pagenavWidth,false); + showHideNavBar(); + } + + function resizeHeight() { + const headerHeight = header.outerHeight(); + const windowHeight = $(window).height(); + let contentHeight; + const footerHeight = footer.outerHeight(); + let navtreeHeight,sideNavHeight; + if (!fullSidebar) { + contentHeight = windowHeight - headerHeight - footerHeight - 1; + navtreeHeight = contentHeight; + sideNavHeight = contentHeight; + } else if (fullSidebar) { + contentHeight = windowHeight - footerHeight - 1; + navtreeHeight = windowHeight - headerHeight - 1; + sideNavHeight = windowHeight - 1; + if (mainnav) { + contentHeight -= mainnav.outerHeight(); + } + } + navtree.css({height:navtreeHeight + "px"}); + sidenav.css({height:sideNavHeight + "px"}); + content.css({height:contentHeight + "px"}); + resizeWidth(false); + showHideNavBar(); + if (location.hash.slice(1)) { + (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView(); + } + } + + header = $("#top"); + content = $("#doc-content"); + footer = $("#nav-path"); + sidenav = $("#side-nav"); + if (document.getElementById('main-nav')) { + mainnav = $("#main-nav"); + } + navtree = $("#nav-tree"); + pagenav = $("#page-nav"); + container = $("#container"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(true); } }); + $(sidenav).resizable({ minWidth: 0 }); + if (pagenav.length) { + pagehandle = $("#page-nav-resize-handle"); + pagehandle.on('mousedown touchstart',function(e) { + $('body').addClass('resizing'); + pagehandle.addClass('dragging'); + $(document).on('mousemove touchmove',function(e) { + const clientX = e.clientX || e.originalEvent.touches[0].clientX; + let pagenavWidth = container[0].offsetWidth-clientX+barWidth/2; + const sidenavWidth = sidenav.width(); + const widths = constrainPanelWidths(sidenavWidth,pagenavWidth,false); + container.css({gridTemplateColumns:'auto '+parseFloat(widths.rightPanelWidth)+'px'}); + pagenav.css({width:parseFloat(widths.rightPanelWidth-1)+'px'}); + content.css({marginLeft:parseFloat(widths.leftPanelWidth)+'px'}); + Cookie.writeSetting(PAGENAV_COOKIE_NAME,pagenavWidth); + }); + $(document).on('mouseup touchend', function(e) { + $('body').removeClass('resizing'); + pagehandle.removeClass('dragging'); + $(document).off('mousemove mouseup touchmove touchend'); + }); + }); + } else { + container.css({gridTemplateColumns:'auto'}); + } + const width = parseInt(Cookie.readSetting(RESIZE_COOKIE_NAME,250)); + const pagenavWidth = parseInt(Cookie.readSetting(PAGENAV_COOKIE_NAME,250)); + if (width) { restoreWidth(width+barWidth,pagenavWidth); } else { resizeWidth(); } + const url = location.href; + const i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + const _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(window).ready(function() { + let lastWidth = -1; + let lastHeight = -1; + $(window).resize(function() { + const newWidth = $(this).width(), newHeight = $(this).height(); + if (newWidth!=lastWidth || newHeight!=lastHeight) { + resizeHeight(); + navtree_trampoline.updateContentTop(); + lastWidth = newWidth; + lastHeight = newHeight; + } + }); + resizeHeight(); + lastWidth = $(window).width(); + lastHeight = $(window).height(); + content.scroll(function() { + navtree_trampoline.updateContentTop(); + }); + }); + } + + + function initPageToc() { + const topMapping = []; + const toc_contents = $('#page-nav-contents'); + const content=$('
    diff --git a/views/useredit.tpl b/views/useredit.tpl index ee62c71..c3fd0df 100644 --- a/views/useredit.tpl +++ b/views/useredit.tpl @@ -132,18 +132,29 @@
    -
    - - -
    + +
    + +
    + + + +
    +
    @@ -176,4 +187,6 @@
    + +{include file="views/_partial/apigeo.tpl"} {/block} \ No newline at end of file From 334dd55deee5fd132800f15205321097ff4f49fc Mon Sep 17 00:00:00 2001 From: Yasder5 <102179445+Yasder5@users.noreply.github.com> Date: Mon, 2 Mar 2026 21:25:54 +0100 Subject: [PATCH 17/37] jolie beau --- controllers/UserCtrl.php | 4 +++ uploads/profiles/699d648ba35c3.webp | Bin 3220 -> 0 bytes uploads/profiles/69a5f0418103c.webp | Bin 0 -> 3574 bytes uploads/profiles/69a5f1e87275c.webp | Bin 0 -> 2784 bytes uploads/profiles/69a5f231cd969.webp | Bin 0 -> 2998 bytes uploads/profiles/69a5f23fe150e.webp | Bin 0 -> 3100 bytes uploads/profiles/images.jpg | Bin 1640 -> 0 bytes views/_partial/delphoto.tpl | 31 +++++++++++++++++ views/useredit.tpl | 51 +++++++++++++++++++--------- 9 files changed, 70 insertions(+), 16 deletions(-) delete mode 100644 uploads/profiles/699d648ba35c3.webp create mode 100644 uploads/profiles/69a5f0418103c.webp create mode 100644 uploads/profiles/69a5f1e87275c.webp create mode 100644 uploads/profiles/69a5f231cd969.webp create mode 100644 uploads/profiles/69a5f23fe150e.webp delete mode 100644 uploads/profiles/images.jpg create mode 100644 views/_partial/delphoto.tpl diff --git a/controllers/UserCtrl.php b/controllers/UserCtrl.php index c1f288a..a9fee94 100644 --- a/controllers/UserCtrl.php +++ b/controllers/UserCtrl.php @@ -243,6 +243,10 @@ class UserCtrl extends MotherCtrl { } } } + if ($_POST['delete_image'] === '1') { + $objUser->setImage('images.jpg'); + } + if (count($arrError) == 0 && isset($strImageName)) { $strDest = $_ENV['IMG_USER_PATH'] . $strImageName; diff --git a/uploads/profiles/699d648ba35c3.webp b/uploads/profiles/699d648ba35c3.webp deleted file mode 100644 index 3fa3f0a744fcaf4e00b76fcce16f446ecb80fc05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3220 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 literal 0 HcmV?d00001 diff --git a/uploads/profiles/69a5f231cd969.webp b/uploads/profiles/69a5f231cd969.webp new file mode 100644 index 0000000000000000000000000000000000000000..0605d6c30da8e04eb034a840bfa1bb44dcb81604 GIT binary patch literal 2998 zcmV;n3rX}+Nk&Gl3jhFDMM6+kP&go>3jhExH~^giD#!rH06uLpmqw%`BB3i4N&tWj ziDGWuU9-A>TJ9X+J`eKKoo9M{8Pn-Yd7AT2oe%DR>%EhHcmFHy0s4#5H_RXN&+s3y ze(N9KziWNV{?2|te1Lyb|AFY;>@nyI{JZ=I|4&_iWpC`C?Y%BP|LY8S-?LxwmFxeq z{=Mg?c{^Wjwtx?+AME@uwJcQHfS;T_4>S$+udr|HhgicKI}%;>V6hy`<@-Ff{>NyqHh81MN=l*-3mcl=AOQC{e>` zM0lxfC9vsASW3tsxwa}OLYv6P6gm$mcWo+Mw0rd@AQ26xGk`K}G8W&d7WJ}`~xbT>V3 znpOI@92*6?c%LR*Au@4XJP~Bm zv_(PJyJO(1)RjR2iXbE52YlyPEU|FbAWsWUZypj)T9LTc#hc*5bnee6woGo8Vz!B$*G)!Qe!8 z8^>FzNQ6&jeg`P~s_ObtIuXkYsshJ(_)uio+eND$dQaXmvX=m+ooV4mrZ&-16XaU7jA zq&HmR(drL#7G6R%54Bym`CjwAOa2U{&Z&NwD);!7ZBJ#&%4>aU^Rc;N(R-M~vsWNB zqZER(vY;KNnbxm&0fF^Zg07fqd!9Z`$-9jnbhy}vr~a4CoMdLqE^689z&s!ZBCcY- za#-h?h_$wNmX>)HEu(vb!&80Zb}wqLn+f6B zh)pS{tl?y4Pg>=j_Ex_NJarc>s`SUuT|y+i)sFl6@2Ka);t_224f^GUsF{55XYbN~ zqDlwF&gPy43Dv3KqVrqS?_i1KH;44jL`aa7dHp6Sbzc}9f^J|z4FMg7lp^L0oM*v1 zDu-J%4N9PLqiIN86(K}eq8&+weXjbVv1>J%k$OlPyD@>Mm51lU)i!haf$yPXXw8p? z|2|=>5hb4Sz}QKV5#EmLY0gRsDN7!}5Y&Yb`N{dE3Mv@Nrw^%~MAv51Ih*&5_8e9l17)3P_hW6hUtk-QtlQ2vRZb z6<$)3hNpU^1W5fvThN{9KRKhV|LKgx9JGlx;UC8K!hC$;y`7YS-hIAgqn(EL{+^la z4_*^TXd+dRVb*1Osd? zowjRbvUgznRn9|0^@z3VT=(n+i#4;DsulYaaOx&<7|L5QRz>R_oVZlD0XH8bC>Uoh z13uB1m8l=2!FY2(x24(KG z6qIpr8~jnPiA5xlYn#?^lojExfJ_fcqq%z7ls7!bf*4aZHWrXLYoq$2S78FrgmB_8 z@o`v)a!80;!~K26V?5K=f~jLsEB(`JP5I37^K@D%l|F9tE{r;7;IaSz7BQsEM%EdW z^{FK6n}4SG&AQTSsJ2*0G_d!3;uk`u&!S^BcOz4}ZRACKtc~w(s>3))*M*2^{PG0= zlVLR|a}#kyX^TjQG#pI*9#=2yVQt@;`5tv#cTcJEDjfdk+sy%hDgBjwCzXC%xDa2w zh0oF8+I?495U1PEOp;o(>CdPFAJ)cK{{G-h}{fex!@(f6+}x}fB~;Qb>XUAzyo8x_@nJ%;D*z-CrXeoMh9_ed#}N0V^J zXa4qRN9#NT$r_;Z#D9XVIZ5D^-Hb4WlKu@akUo89-P9W-eT>^=xG4ni9)A1UIZO1S zqG#RisA%fO;0zS0Qg;ZvdFOGHe(3C(%X#sSPk2q3RF_E`a}#b~f2LfwIwO{5fThyg%*wu3T>4n68RXSIgQe^S&Zl zEHU$>W5K78mH+B6V~>c2y+UvRK~O*MmbBqG_=Mn*@ZUsJ#XANZm;k+r*}Uf!)OBfHeaP=<#bhq?9N?7v!m)4u0PG zGWiwHLZ>0QAXF+6U-%~BZ2wTk5chRw#GYQnK2uzOpV6f`kZy5!+HHuoNf~soO}y+H zV^LY_>Wcwsm;a>j@W-|y|2&*G)pQI_@?MT;qa!ZcpZ{0eElfQCU@_?@ zSJtWoWv~1T_pW&9zD%gEnH^0eY1>-=e|zt@>(Hj|1;TumzcCr7m7tXAoFiFXqN9u> zEBw|Kqa;Q7-CAOOuD+GXQr|LVPEy^R0X)WlJviKL1-sUrrE^P_6|sih>;B=2QcFLb z&$4M=FPi!0VF=hHe@3ECIK_f;=0wF}cKfg0Y(jk38O^$Cj~c3T*8WWX?W*Z7#nJhU zxQs+hMYt4HDbSZTn)35+@2Tc@QS0d%ck6&T+2xW*Za3Sl%LiOKuY#P+nHx)Ska6}p zXis;t8WLZcw49GU8=JoU8gm3+p5beqAYAlz1K%NGW;jVshd?EK8JQ$B4(#)aeB;yS3f-R@253xm8t%T=WTN|}dp4L8>K1c0 zQ`62{)}Q{$p8vKo;2jPQ!89zPmJOqq^n&8{_?0Y!gL7=>V*eA8q5CKA?9 z?}$S*b#X9Obt0kTS7gSGBZzg4FQ&B!&88w=5!JVsUsLNvUpv+*{x=dSKe~WG0092~ zCSU*n9L?Y8||O!Ar4RSu3VQ+DKujy4U?nxJuihu;-moAs1gsy%=}ES9O>Ot zz^K!o4K;t~LuITL{(tjFy7n}K*_uu*2l=BW)lr~e00Tr+tBhJFN+6=-K;wPlI&R_= zC|Q@MJGQbM6YAj(Tqts#$t*Dy+XJ?x z!BUUs-mQtVHhuJI+Jj^EY;%4O_&2#DLz*k3Zm^%>!AkJ? zuG}Iq=NT+JV>|}?;g$}X;xc*8yZwYAQ|c< z(m&88wlP4c0O8JN0<0z&Uy)rQZi2jFkDw~0uD6jUNB#)1& z;CsVoBoUhd|81?Obp5MY9B{1bz*xs}pqi@c4F^&-FG+oH!RwIP6g_$N*AOmh+AWj! z7Y*vLbp8aEESF?0qAtE^&SG1#=T*O=cm%o4ekLk=5BeTIYFZl!2uBiTKK4>$!p*hK zp<_j6`4!h*VXfjq=HjJ&CKas<&8>_PA0kh*Z>xEh7e1}wVyPou$V4{^iEf}-^hkb zW;XkAE2gd%1BxSP$}h@^<6r6V*n~Pg@yPxD=6dNS2G}m_SX5#4Qo_wv|NS?5s z!r=ova^aw})!SIu9rzlsX&Z||;kJbXVy@sA?y|YWG8|W+n@+XWAodb#{^(eVwCM1X z%xj`m%aj_G89Q4)TP09(QBE?p{3*z(09NKWP+Xo@Y2WqVFK(sIV2rp0nF$lPQmvK} z9HT%F3}~F4cXo|WbA^H(+HTIR;tOy$4rhX$Wt-1~rhFumFs(O`7Bt&-Ps}oPwg*G{ zP#Zc+U%_(w3Fm!@1LLg(%GU@$UaT}6`LJ~l0}-FEJ5*ZA`1y4+Qy>2~!e?~I#+tQh z6vNy(PjUIvmFzZl{nB2M7Y-=?xsMlEMCDe+UK_1k%9Sb;xMMcQKkB8S+Vz(f_k*(f z>3_3?Du>*X)kiH2!Dk7>S14XfPxBnrPAG#Y2H%-e9vkJJFVGt1Y7_NCEwm4o5jtKQ z`xAbqzVzn0Ff@0sU>sK=-E(@unjm)^o*<8@M$aw;LY zCSCAFZ(`3DME~`N#F@<61EqiY;8>+XQ`q8yH?a zjYCy1Qte%|xMl`hMHu-KaQP#hD`@_yFu37y4D)S=8*h~!8Q89CkEgwoPyN*_@NJq) z*;Drq+e!)<+Yy*m$y0-#j%Nc2n3$}g82HK_4W%9BPl2nh4H?vHy)is5!O}ml0lO%9 zqDHjZrDka9-sd|<_h9~iaVsHJJa!g`g=+CCJig`c9UH*oTeChzcgpGSbVH?Nni<$5 zNYyL-4qU#EJ^UD@qz$|V-{PK#8H326@i1Ez1b?ny>h)$+IIjT-TIIc5q`jGkVQf-` z2(z1dCbRWvWB2Oz%s70D*wpt7j5$*%m~d+qq<$f*Zo7_%Bc{sY+l7rGWVhL?L+G6* z80xlBgxZfBc;Hacrh=X}Fg_2x<4qG+2b+5}h}P!X?NeTC5UD;BE+UX)Dn5ac;bB2Hl#L zS^8^=}(N^WFlA08C*K5Sk`(^c#-gf&p8T3VUNS+71QC*T;j+C1p(&E z^X)et4=-1FPxw($u5CwyV{PpPw@)iu@^z#7Z|diXbw`(2FBTYqQH+6pOLJmUUWyGK zEJX9F>CW^x^Jj(JlvNT;Jvh$jt1(fT5;HLHk}k{mMZGd3szCyF$!(wd3c;i%?6tgb|6{v#a#UjXBudasir$ z&k&(ja|6Qi^ZMJ?@zuq(pR@kZDvH$tWR;xXY|$@93sf;=jj_?;!OklUN}v!@c3x`2 z@=lpY`mm8YwYIjkq#WdKgL;YFt%1P;W;ZY;2GyWN%6?U3%jkBq@mnKn^%Rr_SNj}a z)uq(}pv-beAa_w^k{xvL~(}hRJzKxsW4tcE*=RS^#C2 z`8zUJ;`)+cxN!JrEqUc@!Z&LVofAflP|_)>iY_?bph=!s@LuPj$8FTRvSUS1>!a03bxv{`Ud~*iX}y}d$J2K12RCe zFVZ>*W6%H7;2N6F%Jv`4Ec^rvBmj31@)UWR)Kt$A?$^xn|11WBrj64$5wGM+iH2Nb zr8Im0<-UAi=mYFLqhXa+GAMl5pchyw2x?z4zO4yssmK`5C?kFQod6uu(780m0vacf zv|IBf{^A;zZ!U1@W)4I?=J4+9UJV<`6_MsCSR)V8mnCRF*ZG!qd*5#CtJQ~|n5n;m q^JifkQlFMKmeK_brYkW`h{M`PCuXTA7A8jK&?KVL%hJ#Q0002jVh$$& literal 0 HcmV?d00001 diff --git a/uploads/profiles/images.jpg b/uploads/profiles/images.jpg deleted file mode 100644 index 44949df140b35f999e137d7fe5e18eb4f8abe0c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1640 zcmZWn3sllq7{7l&@sSD|sS!zeN|Vr>CZz`0PISU%lq`EVTshNxQKpjlLQ88a>y)p` zB(srY>d4GTuELg&74xl8f)W~GshNqEDKf}9XPtfDz280e_dR~UbI;X2)jkI(I&BLL zKo9_s&Vg16P5@&=q=khA2Bq8ovqjc=$Oh+#w^_Ubhruj!UAAHs!P(i_+RkmA8$)&sP5acQXIhB<56Ap4Z7)~=hje1#Xg~p)Lk84&{7ZxY3WX?!{VciwfBFUc ze4-F2Kt)jz(3^R{f@~jz^X7n9SCssWfjAeHc#uWi5Q-L1$U#%WDDwH9s|BgMx*4o>e%FLv~pmlIqnaBWg1 z+NU)P_ie3{^d6;2d=F!l-G$jTJ#D~1Uj*gll|NjSN4mnPjY<%ld7Rj0GW}Ar`7mzl z)EjZG=6CY}BLhQs1hWX=dxS0Ak}hWp;2n5Why zmBtA=FOKn(%0$BMC2JPyGP=iw0FInF(l$r=v$%aIVTw2|S~bZoif-i4jTwEQjLyA| zt7midQ*eQvPi09VXShi%1wRO5NFVopTbj>`51E*o8wG%|iHZWc9jQ(^8MI#XlPWdL zT!<{`>1s+~C$mXaPE3==2$a)y$3+#zdrVyWeA;z0b(MB~G8g#LJkr9WnKDC<@-k|_7Q|Z}!mas43=R&f&+@$a z!$B@Du)Bj-_qM1q!Xnfx63?3L{7fC8>bx^1wsp7{8K%BrJ?49E7`iT~4#S=F;UwG&oFd`=(8Ib0& zV$ycx@nIEws%2gUj8CK+*WQ2b$<^zBtNZP-Dl(^zqgk4iYU}>8ix*HSZmqqfjOyk>*i2(}G{Jl#;M2j1tygip#GGWtACWL@qU26!*m?25)X1uxawJg$- z>G%-EtOr3wid(moR6Z3Wim3abVX$|u-PKN5%q)s-D&KE<3yb&C(OWnZSO*7V?sqla z3-rs842SjD1seFjzV; zVxTdA&VyF<7fUAt{ zQJr}w`a}Nk@=&a#zqxZ(_8h(42Ov-gJ{29#uqmffe}nC)fT}w3HQOR)cJiZQ*#n78 zT>RQ_21*8(Pg=>4kthU+ITkt={A%V->&dN}kz@*I9oU4hkoH + const defaultAvatar = "{$smarty.env.IMG_USER_PATH}images.jpg"; + + // Suppression du listener précédent avant d'en ajouter un nouveau + const inputImage = document.getElementById('image'); + const btnDelete = document.getElementById('btn-delete-image'); + const previewAvatar = document.getElementById('preview-avatar'); + const deleteInput = document.getElementById('delete_image'); + + inputImage?.addEventListener('change', function () { + const file = this.files[0]; + if (!file) return; + const reader = new FileReader(); + reader.onload = e => { + previewAvatar.src = e.target.result; + previewAvatar.style.opacity = '1'; + }; + reader.readAsDataURL(file); + deleteInput.value = '0'; + if (btnDelete) { + btnDelete.disabled = false; + } + }); + + btnDelete?.addEventListener('click', function () { + deleteInput.value = '1'; + previewAvatar.src = defaultAvatar; + previewAvatar.style.opacity = '0.5'; + this.disabled = true; + }); + \ No newline at end of file diff --git a/views/useredit.tpl b/views/useredit.tpl index c3fd0df..d8aecfb 100644 --- a/views/useredit.tpl +++ b/views/useredit.tpl @@ -72,23 +72,42 @@
    - - {if $objUser->getImage()} -
    - image actuel -
    - {/if} - Photo de profil + +
    + + Photo de profil -
    Formats acceptés : JPG, PNG, WEBP. Laisser vide pour ne pas changer.
    + + +
    + + {if $objUser->getImage() != "images.jpg"} + + {/if} +
    + + + + +
    Formats acceptés : JPG, PNG, WEBP. Laisser vide pour ne pas changer.
    +
    - +{include file="views/_partial/delphoto.tpl"} {include file="views/_partial/apigeo.tpl"} {/block} \ No newline at end of file From 31b2c0095679f47425aacd53d1ba9e189d8891e3 Mon Sep 17 00:00:00 2001 From: Yasder5 <102179445+Yasder5@users.noreply.github.com> Date: Mon, 2 Mar 2026 21:41:34 +0100 Subject: [PATCH 18/37] un peu de debuggage --- controllers/UserCtrl.php | 17 +++++++++++------ models/MotherModel.php | 4 ++-- uploads/profiles/69a5f23fe150e.webp | Bin 3100 -> 0 bytes uploads/profiles/images.jpg | Bin 0 -> 1640 bytes 4 files changed, 13 insertions(+), 8 deletions(-) delete mode 100644 uploads/profiles/69a5f23fe150e.webp create mode 100644 uploads/profiles/images.jpg diff --git a/controllers/UserCtrl.php b/controllers/UserCtrl.php index a9fee94..cd0b3e2 100644 --- a/controllers/UserCtrl.php +++ b/controllers/UserCtrl.php @@ -243,9 +243,6 @@ class UserCtrl extends MotherCtrl { } } } - if ($_POST['delete_image'] === '1') { - $objUser->setImage('images.jpg'); - } if (count($arrError) == 0 && isset($strImageName)) { @@ -283,12 +280,20 @@ class UserCtrl extends MotherCtrl { } + if ($_POST['delete_image'] === '1') { + $strOldImg = $objUser->getImage(); + if (!empty($strOldImg) && $strOldImg !== 'images.jpg') { + $strOldFile = $_ENV['IMG_USER_PATH'] . $strOldImg; + if (file_exists($strOldFile)) unlink($strOldFile); + } + $objUser->setImage('images.jpg'); + } $boolInsert = $objUserModel->update($objUser); if ($boolInsert === true) { - if (isset($strOldImg) && !empty($strOldImg) && isset($strImageName)) { - $strOldFile = $_ENV['IMG_USER_PATH'] . $strOldImg; - if (file_exists($strOldFile)) unlink($strOldFile); + if (isset($strOldImg) && !empty($strOldImg) && $strOldImg !== 'images.jpg' && isset($strImageName)) { + $strOldFile = $_ENV['IMG_USER_PATH'] . $strOldImg; + if (file_exists($strOldFile)) unlink($strOldFile); } $arrNewInfo = $objUserModel->findUserByPseudo($objUser->getPseudo()); $_SESSION['user'] = $arrNewInfo; diff --git a/models/MotherModel.php b/models/MotherModel.php index df9f2f7..d63bcfd 100644 --- a/models/MotherModel.php +++ b/models/MotherModel.php @@ -11,8 +11,8 @@ try{ $this->_db = new PDO( "mysql:host=localhost;dbname=projet_folliow", - "projet_user", - "F0lliowRules!", + "root", + "", array(PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC) ); $this->_db->exec("SET CHARACTER SET utf8"); diff --git a/uploads/profiles/69a5f23fe150e.webp b/uploads/profiles/69a5f23fe150e.webp deleted file mode 100644 index 2a2361e019599d869d77ac098b801ea8de5800c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3100 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 diff --git a/uploads/profiles/images.jpg b/uploads/profiles/images.jpg new file mode 100644 index 0000000000000000000000000000000000000000..44949df140b35f999e137d7fe5e18eb4f8abe0c5 GIT binary patch literal 1640 zcmZWn3sllq7{7l&@sSD|sS!zeN|Vr>CZz`0PISU%lq`EVTshNxQKpjlLQ88a>y)p` zB(srY>d4GTuELg&74xl8f)W~GshNqEDKf}9XPtfDz280e_dR~UbI;X2)jkI(I&BLL zKo9_s&Vg16P5@&=q=khA2Bq8ovqjc=$Oh+#w^_Ubhruj!UAAHs!P(i_+RkmA8$)&sP5acQXIhB<56Ap4Z7)~=hje1#Xg~p)Lk84&{7ZxY3WX?!{VciwfBFUc ze4-F2Kt)jz(3^R{f@~jz^X7n9SCssWfjAeHc#uWi5Q-L1$U#%WDDwH9s|BgMx*4o>e%FLv~pmlIqnaBWg1 z+NU)P_ie3{^d6;2d=F!l-G$jTJ#D~1Uj*gll|NjSN4mnPjY<%ld7Rj0GW}Ar`7mzl z)EjZG=6CY}BLhQs1hWX=dxS0Ak}hWp;2n5Why zmBtA=FOKn(%0$BMC2JPyGP=iw0FInF(l$r=v$%aIVTw2|S~bZoif-i4jTwEQjLyA| zt7midQ*eQvPi09VXShi%1wRO5NFVopTbj>`51E*o8wG%|iHZWc9jQ(^8MI#XlPWdL zT!<{`>1s+~C$mXaPE3==2$a)y$3+#zdrVyWeA;z0b(MB~G8g#LJkr9WnKDC<@-k|_7Q|Z}!mas43=R&f&+@$a z!$B@Du)Bj-_qM1q!Xnfx63?3L{7fC8>bx^1wsp7{8K%BrJ?49E7`iT~4#S=F;UwG&oFd`=(8Ib0& zV$ycx@nIEws%2gUj8CK+*WQ2b$<^zBtNZP-Dl(^zqgk4iYU}>8ix*HSZmqqfjOyk>*i2(}G{Jl#;M2j1tygip#GGWtACWL@qU26!*m?25)X1uxawJg$- z>G%-EtOr3wid(moR6Z3Wim3abVX$|u-PKN5%q)s-D&KE<3yb&C(OWnZSO*7V?sqla z3-rs842SjD1seFjzV; zVxTdA&VyF<7fUAt{ zQJr}w`a}Nk@=&a#zqxZ(_8h(42Ov-gJ{29#uqmffe}nC)fT}w3HQOR)cJiZQ*#n78 zT>RQ_21*8(Pg=>4kthU+ITkt={A%V->&dN}kz@*I9oU4hkoH Date: Mon, 2 Mar 2026 21:43:31 +0100 Subject: [PATCH 19/37] =?UTF-8?q?my=20bad=20j'ai=20oubli=C3=A9=20un=20truc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/MotherModel.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/models/MotherModel.php b/models/MotherModel.php index d63bcfd..df9f2f7 100644 --- a/models/MotherModel.php +++ b/models/MotherModel.php @@ -11,8 +11,8 @@ try{ $this->_db = new PDO( "mysql:host=localhost;dbname=projet_folliow", - "root", - "", + "projet_user", + "F0lliowRules!", array(PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC) ); $this->_db->exec("SET CHARACTER SET utf8"); From bc05f1e7bd940a0c15fd0a36975eb3b97c2ee8f0 Mon Sep 17 00:00:00 2001 From: Yass Date: Tue, 3 Mar 2026 09:19:16 +0100 Subject: [PATCH 20/37] htacc'hess --- .htaccess | 37 +++++++++++++++++++++++++++++++++++++ controllers/ErrorCtrl.php | 2 ++ 2 files changed, 39 insertions(+) create mode 100644 .htaccess diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..f7d5bec --- /dev/null +++ b/.htaccess @@ -0,0 +1,37 @@ +Options -Indexes + +# 1. On définit des URLs propres pour les erreurs +ErrorDocument 403 /error/error_403 +ErrorDocument 404 /error/error_404 + +# --- Sécurité --- + + Require all denied + + + + Require all denied + + +RewriteEngine On + +# 2. Bloquer l'accès direct au dossier vendor +RewriteRule ^vendor/ - [F,L] + +# 3. Autoriser l'accès aux fichiers/dossiers physiques (images, css, js) +RewriteCond %{REQUEST_FILENAME} !-f +RewriteCond %{REQUEST_FILENAME} !-d + +# 4. RACINE : accueil par défaut +RewriteRule ^$ index.php?ctrl=project&action=home [QSA,L] + +# 5. ID NUMÉRIQUE : /ctrl/action/42 +RewriteRule ^([a-zA-Z]+)/([a-zA-Z_]+)/([0-9]+)/?$ index.php?ctrl=$1&action=$2&id=$3 [QSA,L] + +# 6. PSEUDO : /user/profile/johndoe +RewriteRule ^([a-zA-Z]+)/([a-zA-Z_]+)/([a-zA-Z0-9_-]+)/?$ index.php?ctrl=$1&action=$2&pseudo=$3 [QSA,L] + +# 7. RÉÉCRITURE GÉNÉRALE (inclut tes erreurs) : /ctrl/action +# C'est cette règle qui va transformer "/error/error_404" +# en "index.php?ctrl=error&action=error_404" +RewriteRule ^([a-zA-Z]+)/([a-zA-Z_]+)/?$ index.php?ctrl=$1&action=$2 [QSA,L] \ No newline at end of file diff --git a/controllers/ErrorCtrl.php b/controllers/ErrorCtrl.php index 2e69e9e..25f3447 100644 --- a/controllers/ErrorCtrl.php +++ b/controllers/ErrorCtrl.php @@ -11,6 +11,7 @@ * Page erreur 404 */ public function error_404(){ + http_response_code(404); $this->_display("error_404"); } @@ -18,6 +19,7 @@ * Page erreur 403 */ public function error_403(){ + http_response_code(403); $this->_display("error_403"); } From 5638c0712d51892c16c7c3b148a0ed57a59316a8 Mon Sep 17 00:00:00 2001 From: Yass Date: Tue, 3 Mar 2026 09:21:33 +0100 Subject: [PATCH 21/37] htacc'hess --- .htaccess | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.htaccess b/.htaccess index f7d5bec..68ea5db 100644 --- a/.htaccess +++ b/.htaccess @@ -5,7 +5,7 @@ ErrorDocument 403 /error/error_403 ErrorDocument 404 /error/error_404 # --- Sécurité --- - + Require all denied From 04d7d564f1b06c94955f1c254bab4eff844de8a8 Mon Sep 17 00:00:00 2001 From: Yass Date: Tue, 3 Mar 2026 11:16:14 +0100 Subject: [PATCH 22/37] htaccess c'est vraiment de la merde --- .htaccess | 9 ++++----- controllers/AdminCtrl.php | 4 ++-- controllers/ErrorCtrl.php | 2 ++ controllers/ProjectCtrl.php | 8 ++++---- models/MotherModel.php | 6 +++--- 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/.htaccess b/.htaccess index 68ea5db..b0d792e 100644 --- a/.htaccess +++ b/.htaccess @@ -1,9 +1,8 @@ Options -Indexes - -# 1. On définit des URLs propres pour les erreurs -ErrorDocument 403 /error/error_403 -ErrorDocument 404 /error/error_404 - +# Rediriger les erreurs serveur vers ton contrôleur +# On force le passage par index.php pour que ton routeur reçoive les paramètres +ErrorDocument 404 /index.php?ctrl=error&action=error_404 +ErrorDocument 403 /index.php?ctrl=error&action=error_403 # --- Sécurité --- Require all denied diff --git a/controllers/AdminCtrl.php b/controllers/AdminCtrl.php index 88896dc..d84cebe 100644 --- a/controllers/AdminCtrl.php +++ b/controllers/AdminCtrl.php @@ -21,8 +21,8 @@ public function admin(){ if (!isset($_SESSION['user']) && ($_SESSION['user']['user_status'] != 1 )){ - header("Location:index.php?ctrl=error&action=error_403"); - exit; + $error = new \Controllers\ErrorCtrl(); + return $error->error_403(); } $objCategoryModel = new CategoryModel; diff --git a/controllers/ErrorCtrl.php b/controllers/ErrorCtrl.php index 25f3447..9a5e0ff 100644 --- a/controllers/ErrorCtrl.php +++ b/controllers/ErrorCtrl.php @@ -13,6 +13,7 @@ public function error_404(){ http_response_code(404); $this->_display("error_404"); + exit; } /** @@ -21,6 +22,7 @@ public function error_403(){ http_response_code(403); $this->_display("error_403"); + exit; } } \ No newline at end of file diff --git a/controllers/ProjectCtrl.php b/controllers/ProjectCtrl.php index c39e9f0..b92de5e 100644 --- a/controllers/ProjectCtrl.php +++ b/controllers/ProjectCtrl.php @@ -124,8 +124,8 @@ */ public function addedit_project() { if (!isset($_SESSION['user'])){ - header("Location:index.php?ctrl=error&action=error_403"); - exit; + $error = new \Controllers\ErrorCtrl(); + return $error->error_403(); } $objProject = new Project; @@ -135,8 +135,8 @@ if (isset($_GET['id'])){ $arrProject = $objProjectModel->findOne($_GET['id']); if($_SESSION['user']['user_id'] != $arrProject['project_user_id']){ - header("Location:index.php?ctrl=error&action=error_403"); - exit; + $error = new \Controllers\ErrorCtrl(); + return $error->error_403(); } $objProject->hydrate($arrProject); $this->_arrData['arrImages'] = $objProjectModel->getImagesByProjectId($objProject->getId()); diff --git a/models/MotherModel.php b/models/MotherModel.php index df9f2f7..631221e 100644 --- a/models/MotherModel.php +++ b/models/MotherModel.php @@ -11,13 +11,13 @@ try{ $this->_db = new PDO( "mysql:host=localhost;dbname=projet_folliow", - "projet_user", - "F0lliowRules!", + "root", + "", array(PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC) ); $this->_db->exec("SET CHARACTER SET utf8"); $this->_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); - } catch(PDOException$e) { + } catch(PDOException $e) { echo "Échec : " . $e->getMessage(); } } From 5d03bf936d5cfdf30548e30321182dcde3c7b2bf Mon Sep 17 00:00:00 2001 From: Yass Date: Tue, 3 Mar 2026 11:16:46 +0100 Subject: [PATCH 23/37] si j'oublie tout aussi --- models/MotherModel.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/models/MotherModel.php b/models/MotherModel.php index 631221e..df9f2f7 100644 --- a/models/MotherModel.php +++ b/models/MotherModel.php @@ -11,13 +11,13 @@ try{ $this->_db = new PDO( "mysql:host=localhost;dbname=projet_folliow", - "root", - "", + "projet_user", + "F0lliowRules!", array(PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC) ); $this->_db->exec("SET CHARACTER SET utf8"); $this->_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); - } catch(PDOException $e) { + } catch(PDOException$e) { echo "Échec : " . $e->getMessage(); } } From 4bddf0b409b2bc65e3499a1b8ea23225255b17f0 Mon Sep 17 00:00:00 2001 From: Yass Date: Tue, 3 Mar 2026 12:01:03 +0100 Subject: [PATCH 24/37] MINOOOOOOOOUUUUUUU --- assests/css/style.css | 48 ++++++++++++++++++++++++++++++++++ controllers/MotherCtrl.php | 1 + models/MotherModel.php | 4 +-- views/project_display.tpl | 53 +++++++++++++++++++++++++++++--------- views/user.tpl | 31 +++++++++++++++++----- 5 files changed, 117 insertions(+), 20 deletions(-) diff --git a/assests/css/style.css b/assests/css/style.css index 1ba981a..13d28fb 100644 --- a/assests/css/style.css +++ b/assests/css/style.css @@ -128,3 +128,51 @@ body { .txt_title { color: rgb(51, 152, 217); } + +/* On cible la card sans casser ses propriétés Bootstrap */ +.tiger-theme { + background-color: #ff8c00 !important; /* Orange tigre */ + background-image: repeating-linear-gradient( + 45deg, + transparent, + transparent 30px, + rgba(0, 0, 0, 0.15) 30px, + rgba(0, 0, 0, 0.15) 60px + ) !important; + border: 2px solid #000 !important; + color: #000 !important; + position: relative; + z-index: 1; +} + +/* Style du texte pour qu'il ressorte sur l'orange */ +.tiger-text { + font-weight: 800 !important; + text-transform: uppercase; + color: #000 !important; +} + +.tiger-date { + font-size: 0.8rem; + font-weight: bold; + color: rgba(0, 0, 0, 0.7); +} + +/* Bordure de l'image (n'affecte pas la taille de la card) */ +.tiger-border { + box-shadow: 0 0 0 4px #000; +} + +/* Bouton style tigre */ +.btn-tiger { + background-color: #000 !important; + color: #ff8c00 !important; + border: none !important; + font-weight: bold !important; + transition: transform 0.2s; +} + +.btn-tiger:hover { + transform: scale(1.05); + background-color: #222 !important; +} \ No newline at end of file diff --git a/controllers/MotherCtrl.php b/controllers/MotherCtrl.php index bea90b2..49ccbdf 100644 --- a/controllers/MotherCtrl.php +++ b/controllers/MotherCtrl.php @@ -23,6 +23,7 @@ $objSmarty = new Smarty(); $objSmarty->registerPlugin('modifier', 'vardump', 'var_dump'); $objSmarty->registerPlugin('modifier', 'file_exists', 'file_exists'); + $objSmarty->registerPlugin('modifier', 'stripos', 'stripos'); $objSmarty->caching = false; $objSmarty->force_compile = true; diff --git a/models/MotherModel.php b/models/MotherModel.php index df9f2f7..d63bcfd 100644 --- a/models/MotherModel.php +++ b/models/MotherModel.php @@ -11,8 +11,8 @@ try{ $this->_db = new PDO( "mysql:host=localhost;dbname=projet_folliow", - "projet_user", - "F0lliowRules!", + "root", + "", array(PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC) ); $this->_db->exec("SET CHARACTER SET utf8"); diff --git a/views/project_display.tpl b/views/project_display.tpl index f2ef4ba..0881b81 100644 --- a/views/project_display.tpl +++ b/views/project_display.tpl @@ -97,21 +97,50 @@
    -
    - - - -
    {$objProject->getCreatorName()}
    +
    getCreatorName()|stripos:'minou' !== false}style=" background-color: #ff8c00 !important; /* Orange tigre */ + background-image: repeating-linear-gradient( + 45deg, + transparent, + transparent 30px, + rgba(0, 0, 0, 0.15) 30px, + rgba(0, 0, 0, 0.15) 60px + ) !important; + border: 2px solid #000 !important; + color: #000 !important; + position: relative; + z-index: 1;"{/if}> + + + + + +
    getCreatorName()|stripos:'minou' !== false}style="font-weight: 800 !important; + text-transform: uppercase; + color: #000 !important;"{/if}"> + {$objProject->getCreatorName()} +
    -

    - Publié le {$objProject->getCreation_date()} -

    +

    + Publié le {$objProject->getCreation_date()} +

    - + -
    + {if $objProject->getCreatorName()|stripos:"minou" !== false} +
    MINOU NE MEURT JAMAIS ! 🐯
    + {/if} +
    +
    {*Controle de l'utilisateur ainsi que du status du projet + Suppression disponible pour l'utilisateur possédant le projet*} {if isset($smarty.session.user)} {if ($smarty.session.user.user_status == 2 || $smarty.session.user.user_id == $objProject->getUser_id())} diff --git a/views/user.tpl b/views/user.tpl index 71f95b4..48256ad 100644 --- a/views/user.tpl +++ b/views/user.tpl @@ -2,16 +2,30 @@ {block name="content"} -