diff --git a/.gitignore b/.gitignore index 702a6d25..fc7be1e4 100644 --- a/.gitignore +++ b/.gitignore @@ -22,5 +22,5 @@ site/file/thumb/* .idea/ # Trucs -.htaccess -.gitignore \ No newline at end of file +.gitignore +core/vendor/tinymce/link_list.json \ No newline at end of file diff --git a/CHANGES.md b/CHANGES.md index 08a981f7..dcbaa6ac 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,10 +1,27 @@ # ChangeLog +## Version 9.0.08 +- Modifications : + - Core : les données par défaut ne sont chargées qu'à installation afin d'alléger l'empreinte mémoire du noyau + - Prise en compte de la taille des petits écrans, suppression des marges + - Backup theme.json avant une mise à jour automatique + - Réorganisation des écrans de paramètrage du thème, ordre de saisie, bulles d'aide et nouveaux libellés + - SimpleLightBox : miniatures cliquables permettant de parcourir toutes les images d'une page (comme dans la galerie) + - Barre d'administration : pages inactives en orange. +- Ajouts : + - Thèmes : pied de page choix de police et de styles +- Corrections : + - Faille XSS : liens de connexion encadrés par STRIP_TAGS + - TinyMCE : désactivation du thème mobile ne fonctionnait pas sur ipad et iphone + - Blog 1.3 : image en tête d'article correctement affichée avec effet responsive. + - TinyMCE : taille des miniatures générées par défaut 480 x 320 en vue d'un affichage correct dans le module blog + - Pied de page : correction d'un problème d'affichage sur des écrans inférieurs à 992px + ## Version 9.0.07 - Correction : - Disparition du menu quand la bannière est masquée - Modifications : - - Barre d'administration, pages organisées + - Barre d'administration : pages organisées ## Version 9.0.06 - Correction : diff --git a/core/core.js.php b/core/core.js.php index e9415340..aaf44495 100755 --- a/core/core.js.php +++ b/core/core.js.php @@ -329,7 +329,16 @@ core.start = function() { }).trigger("resize"); // Ajouter l'attribut data-lity afin de faire la liaison avec lity - $("a[rel='data-lity']").attr("data-lity",""); + //$("a[rel='data-lity']").attr("data-lity",""); + + // Ajouter la classe Gallery afin de faire la liaison avec simplelightbox + $("a[rel='gallery']").addClass("gallery",""); + + /** + * Démarrer simplelightbox + **/ + + $('.gallery').simpleLightbox(); }; core.start(); diff --git a/core/core.php b/core/core.php index d395077a..fc8ce230 100644 --- a/core/core.php +++ b/core/core.php @@ -26,12 +26,9 @@ class common { const GROUP_MEMBER = 1; const GROUP_MODERATOR = 2; const GROUP_ADMIN = 3; - // Numéro de version de développement : - // Désactive l'update auto - // const ZWII_VERSION = '9.0.05.dev.d'; - // Numéro de version stable - const ZWII_VERSION = '9.0.07'; + // Numéro de version stable + const ZWII_VERSION = '9.0.08'; public static $actions = []; public static $coreModuleIds = [ @@ -44,417 +41,6 @@ class common { 'user' ]; private $data = []; - private $defaultData = [ - 'config' => [ - 'analyticsId' => '', - 'autoBackup' => true, - 'cookieConsent' => true, - 'favicon' => 'favicon.ico', - 'homePageId' => 'accueil', - 'maintenance' => false, - 'metaDescription' => 'Zwii est un CMS sans base de données qui permet à ses utilisateurs de créer et gérer facilement un site web sans aucune connaissance en programmation.', - 'social' => [ - 'facebookId' => 'ZwiiCMS', - 'instagramId' => '', - 'pinterestId' => '', - 'twitterId' => '', - 'youtubeId' => '' - ], - 'timezone' => 'Europe/Paris', - 'title' => 'Zwii, votre site en quelques clics !', - 'itemsperPage' => 10 - ], - 'core' => [ - 'dataVersion' => 0, - 'lastBackup' => 0, - 'lastClearTmp' => 0 - ], - 'page' => [ - 'accueil' => [ - 'typeMenu' => 'text', - 'iconUrl' => '', - 'disable' => false, - 'content' => '

Bienvenue sur votre nouveau site Zwii !

-

Un email contenant le récapitulatif de votre installation vient de vous être envoyé.

-

Connectez-vous dès maintenant à votre espace membre afin de créer un site à votre image ! Vous allez pouvoir personnaliser le thème, créer des pages, ajouter des utilisateurs et bien plus encore !

-

Si vous avez besoin d\'aide ou si vous cherchez des informations sur Zwii, n\'hésitez pas à jeter un œil à notre forum.

', - 'hideTitle' => false, - 'breadCrumb' => false, - 'metaDescription' => '', - 'metaTitle' => '', - 'moduleId' => '', - 'modulePosition' => 'bottom', - 'parentPageId' => '', - 'position' => 1, - 'group' => self::GROUP_VISITOR, - 'targetBlank' => false, - 'title' => 'Accueil', - 'block' => '12', - 'barLeft' => '', - 'barRight' => '' - ], - 'enfant' => [ - 'typeMenu' => 'text', - 'iconUrl' => '', - 'disable' => false, - 'content' => '

Vous pouvez assigner des parents à vos pages afin de mieux organiser votre menu !

-
-

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam interdum, neque non vulputate hendrerit, arcu turpis dapibus nisl, id scelerisque metus lectus vitae nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec feugiat dolor et turpis finibus condimentum. Cras sit amet ligula sagittis justo.

-

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam interdum, neque non vulputate hendrerit, arcu turpis dapibus nisl, id scelerisque metus lectus vitae nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec feugiat dolor et turpis finibus condimentum. Cras sit amet ligula sagittis justo.

-

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam interdum, neque non vulputate hendrerit, arcu turpis dapibus nisl, id scelerisque metus lectus vitae nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec feugiat dolor et turpis finibus condimentum. Cras sit amet ligula sagittis justo.

-
', - 'hideTitle' => false, - 'breadCrumb' => true, - 'metaDescription' => '', - 'metaTitle' => '', - 'moduleId' => '', - 'modulePosition' => 'bottom', - 'parentPageId' => 'accueil', - 'position' => 1, - 'group' => self::GROUP_VISITOR, - 'targetBlank' => false, - 'title' => 'Enfant', - 'block' => '12', - 'barLeft' => '', - 'barRight' => '' - ], - 'privee' => [ - 'typeMenu' => 'text', - 'iconUrl' => '', - 'disable' => false, - 'content' => '

Cette page n\'est visible que par les membres de votre site !

-
-

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam interdum, neque non vulputate hendrerit, arcu turpis dapibus nisl, id scelerisque metus lectus vitae nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec feugiat dolor et turpis finibus condimentum. Cras sit amet ligula sagittis justo.

-

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam interdum, neque non vulputate hendrerit, arcu turpis dapibus nisl, id scelerisque metus lectus vitae nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec feugiat dolor et turpis finibus condimentum. Cras sit amet ligula sagittis justo.

-
', - 'hideTitle' => false, - 'breadCrumb' => true, - 'metaDescription' => '', - 'metaTitle' => '', - 'moduleId' => '', - 'parentPageId' => '', - 'modulePosition' => 'bottom', - 'position' => 2, - 'group' => self::GROUP_MEMBER, - 'targetBlank' => false, - 'title' => 'Privée', - 'block' => '12', - 'barLeft' => '', - 'barRight' => '' - ], - 'mise-en-page' => [ - 'typeMenu' => 'text', - 'iconUrl' => '', - 'disable' => false, - 'content' => '

Vous pouvez ajouter une ou deux barres latérales aux pages de votre site. Cette mise en page se définit dans les paramètres de page et peut s\'appliquer à l\'ensemble du site ou à certaines pages en particulier, au gré de vos désirs.

-

Pour créer une barre latérale à partir d\'une "Nouvelle page" ou transformer une page existante en barre latérale, sélectionnez l\'option dans la liste des gabarits. On peut bien sûr définir autant de barres latérales qu\'on le souhaite.

-

Cette nouvelle fonctionnalité autorise toutes sortes d\'utilisations : texte, encadrés, images, vidéos... ou simple marge blanche. Seule restriction : on ne peut pas installer un module dans une barre latérale.

-

La liste des barres disponibles et leur emplacement s\'affichent en fonction du gabarit que vous aurez choisi.', - 'hideTitle' => false, - 'breadCrumb' => true, - 'metaDescription' => '', - 'metaTitle' => '', - 'moduleId' => '', - 'parentPageId' => 'accueil', - 'modulePosition' => 'bottom', - 'position' => 3, - 'group' => self::GROUP_VISITOR, - 'targetBlank' => false, - 'title' => 'Mise en page', - 'block' => '8-4', - 'barLeft' => '', - 'barRight' => 'barre' - - ], - 'blog' => [ - 'typeMenu' => 'text', - 'iconUrl' => '', - 'disable' => false, - 'content' => '

Cette page contient une instance du module de blog. Cliquez sur un article afin de le lire et de poster des commentaires.

', - 'hideTitle' => false, - 'breadCrumb' => false, - 'metaDescription' => '', - 'metaTitle' => '', - 'moduleId' => 'blog', - 'modulePosition' => 'bottom', - 'parentPageId' => '', - 'position' => 4, - 'group' => self::GROUP_VISITOR, - 'targetBlank' => false, - 'title' => 'Blog', - 'block' => '12', - 'barLeft' => '', - 'barRight' => '' - ], - 'galeries' => [ - 'typeMenu' => 'text', - 'iconUrl' => '', - 'disable' => false, - 'content' => '

Cette page contient une instance du module de galeries photos. Cliquez sur la galerie ci-dessous afin de voir les photos qu\'elle contient.

', - 'hideTitle' => false, - 'breadCrumb' => false, - 'metaDescription' => '', - 'metaTitle' => '', - 'moduleId' => 'gallery', - 'modulePosition' => 'bottom', - 'parentPageId' => '', - 'position' => 5, - 'group' => self::GROUP_VISITOR, - 'targetBlank' => false, - 'title' => 'Galeries', - 'block' => '12', - 'barLeft' => '', - 'barRight' => '' - ], - 'site-de-zwii' => [ - 'typeMenu' => 'text', - 'iconUrl' => '', - 'disable' => false, - 'content' => "", - 'hideTitle' => false, - 'breadCrumb' => false, - 'metaDescription' => '', - 'metaTitle' => '', - 'moduleId' => 'redirection', - 'modulePosition' => 'bottom', - 'parentPageId' => '', - 'position' => 6, - 'group' => self::GROUP_VISITOR, - 'targetBlank' => true, - 'title' => 'Site de Zwii', - 'block' => '12', - 'barLeft' => '', - 'barRight' => '' - ], - 'contact' => [ - 'typeMenu' => 'text', - 'iconUrl' => '', - 'disable' => false, - 'content' => '

Cette page contient un exemple de formulaire conçu à partir du module de génération de formulaires. Il est configuré pour envoyer les données saisies par mail aux administrateurs du site.

', - 'hideTitle' => false, - 'breadCrumb' => false, - 'metaDescription' => '', - 'metaTitle' => '', - 'moduleId' => 'form', - 'modulePosition' => 'bottom', - 'parentPageId' => '', - 'position' => 7, - 'group' => self::GROUP_VISITOR, - 'targetBlank' => false, - 'title' => 'Contact', - 'block' => '12', - 'barLeft' => '', - 'barRight' => '' - ], - 'barre' => [ - 'typeMenu' => 'text', - 'iconUrl' => '', - 'disable' => false, - 'content' => '

ZwiiCMS

Le CMS sans base de données à l\'installation simple et rapide

', - 'hideTitle' => false, - 'breadCrumb' => false, - 'metaDescription' => '', - 'metaTitle' => '', - 'moduleId' => '', - 'modulePosition' => 'bottom', - 'parentPageId' => '', - 'position' => 0 , - 'group' => self::GROUP_VISITOR, - 'targetBlank' => false, - 'title' => 'Barre latérale', - 'block' => 'bar', - 'barLeft' => '', - 'barRight' => '' - ], - ], - 'module' => [ - 'blog' => [ - 'mon-premier-article' => [ - 'closeComment' => false, - 'comment' => [ - '58e11d09e5aff' => [ - 'author' => 'Rémi', - 'content' => 'Article bien rédigé et très pertinent, bravo !', - 'createdOn' => 1421748000, - 'userId' => '' - ] - ], - 'content' => '

Lorem ipsum dolor sit amet, consectetur adipiscing elit. In a placerat metus. Morbi luctus laoreet dolor et euismod. Phasellus eget eros ac eros pretium tincidunt. Sed maximus magna lectus, non vestibulum sapien pretium maximus. Donec convallis leo tortor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras convallis lacus eu risus gravida varius. Etiam mattis massa vitae eros placerat bibendum.

\r\n

Vivamus tempus magna augue, in bibendum quam blandit at. Morbi felis tortor, suscipit ut ipsum ut, volutpat consectetur orci. Nulla tincidunt quis ligula non viverra. Sed pretium dictum blandit. Donec fringilla, nunc at dictum pretium, arcu massa viverra leo, et porta turpis ipsum eget risus. Quisque quis maximus purus, in elementum arcu. Donec nisi orci, aliquam non luctus non, congue volutpat massa. Curabitur sed risus congue, porta arcu vel, tincidunt nisi. Duis tincidunt quam ut velit maximus ornare. Nullam sagittis, ante quis pharetra hendrerit, lorem massa dapibus mi, a hendrerit dolor odio nec augue. Nunc sem nisl, tincidunt vitae nunc et, viverra tristique diam. In eget dignissim lectus. Nullam volutpat lacus id ex dapibus viverra. Pellentesque ultricies lorem ut nunc elementum volutpat. Cras id ultrices justo.

\r\n

Phasellus nec erat leo. Praesent at sem nunc. Vestibulum quis condimentum turpis. Cras semper diam vitae enim fringilla, ut fringilla mauris efficitur. In nec porttitor urna. Nam eros leo, vehicula eget lobortis sed, gravida id mauris. Nulla bibendum nunc tortor, non bibendum justo consectetur vel. Phasellus nec risus diam. In commodo tellus nec nulla fringilla, nec feugiat nunc consectetur. Etiam non eros sodales, sodales lacus vel, finibus leo. Quisque hendrerit tristique congue. Phasellus nec augue vitae libero elementum facilisis. Mauris pretium ornare nisi, non scelerisque velit consectetur sit amet.

', - 'picture' => 'galerie/landscape/meadow.jpg', - 'hidePicture' => false, - 'publishedOn' => 1548790902, - 'state' => true, - 'title' => 'Mon premier article', - 'userId' => '' // Géré au moment de l'installation - ], - 'mon-deuxieme-article' => [ - 'closeComment' => false, - 'comment' => [], - 'content' => '

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam lobortis eros pharetra metus rutrum pretium et sagittis mauris. Donec commodo venenatis sem nec suscipit. In tempor sollicitudin scelerisque. Etiam quis nibh eleifend, congue nisl quis, ultricies ipsum. Integer at est a eros vulputate pellentesque eu vitae tellus. Nullam suscipit quam nisl. Vivamus dui odio, luctus ac fringilla ultrices, eleifend vel sapien. Integer sem ex, lobortis eu mattis eu, condimentum non libero. Aliquam non porttitor elit, eu hendrerit neque. Praesent tortor urna, tincidunt sed dictum id, rutrum tempus sapien.

\r\n

Donec accumsan ante ac odio laoreet porttitor. Pellentesque et leo a leo scelerisque mattis id vel elit. Quisque egestas congue enim nec semper. Morbi mollis nibh sapien. Nunc quis fringilla lorem. Donec vel venenatis nunc. Donec lectus velit, tempor sit amet dui sed, consequat commodo enim. Nam porttitor neque semper, dapibus nunc bibendum, lobortis urna. Morbi ullamcorper molestie lectus a elementum. Curabitur eu cursus orci, sed tristique justo. In massa lacus, imperdiet eu elit quis, consectetur maximus magna. Integer suscipit varius ante vitae egestas. Morbi scelerisque fermentum ipsum, euismod faucibus mi tincidunt id. Sed at consectetur velit. Ut fermentum nunc nibh, at commodo felis lacinia nec.

\r\n

Nullam a justo quis lectus facilisis semper eget quis sem. Morbi suscipit erat sem, non fermentum nunc luctus vel. Proin venenatis quam ut arcu luctus efficitur. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nam sollicitudin tristique nunc nec convallis. Maecenas id tortor semper, tempus nisl laoreet, cursus lacus. Aliquam sagittis est in leo congue, a pharetra felis aliquet. Nulla gravida lobortis sapien, quis viverra enim ullamcorper sed. Donec ultrices sem eu volutpat dapibus. Nam euismod, tellus eu congue mollis, massa nisi finibus odio, vitae porta arcu urna ac lorem. Sed faucibus dignissim pretium. Pellentesque eget ante tellus. Pellentesque a elementum odio, sit amet vulputate diam. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In hendrerit consequat dolor, malesuada pellentesque tellus molestie non. Aenean quis purus a lectus pellentesque laoreet.

', - 'picture' => 'galerie/landscape/desert.jpg', - 'hidePicture' => false, - 'publishedOn' => 1550432502, - 'state' => true, - 'title' => 'Mon deuxième article', - 'userId' => '' // Géré au moment de l'installation - ], - 'mon-troisieme-article' => [ - 'closeComment' => true, - 'comment' => [], - 'content' => '

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut ut tempus nibh. Cras eget iaculis justo, ac laoreet lacus. Nunc tellus nulla, auctor id hendrerit eu, pellentesque in sapien. In hac habitasse platea dictumst. Aliquam leo urna, hendrerit id nunc eget, finibus maximus dolor. Sed rutrum sapien consectetur, tincidunt nulla at, blandit quam. Duis ex enim, vehicula vel nisi vitae, lobortis volutpat nisl. Vivamus enim libero, euismod nec risus vel, interdum placerat elit. In cursus sapien condimentum dui imperdiet, sed lobortis ante consectetur. Maecenas hendrerit eget felis non consequat.

\r\n

Nullam nec risus non velit efficitur tempus eget tincidunt mauris. Etiam venenatis leo id justo sagittis, commodo dignissim sapien tristique. Vivamus finibus augue malesuada sapien gravida rutrum. Integer mattis lectus ac pulvinar scelerisque. Integer suscipit feugiat metus, ac molestie odio suscipit eget. Fusce at elit in tellus venenatis finibus id sit amet magna. Integer sodales luctus neque blandit posuere. Cras pellentesque dictum lorem eget vestibulum. Quisque vitae metus non nisi efficitur rhoncus ut vitae ipsum. Donec accumsan massa at est faucibus lacinia. Quisque imperdiet luctus neque eu vestibulum. Phasellus pellentesque felis ligula, id imperdiet elit ultrices eu.

', - 'picture' => 'galerie/landscape/iceberg.jpg', - 'hidePicture' => false, - 'publishedOn' => 1550864502, - 'state' => true, - 'title' => 'Mon troisième article', - 'userId' => '' // Géré au moment de l'installation - ] - ], - 'galeries' => [ - 'beaux-paysages' => [ - 'config' => [ - 'name' => 'Beaux paysages', - 'directory' => 'site/file/source/galerie/landscape' - ], - 'legend' => [ - 'desert.jpg' => 'Un désert', - 'iceberg.jpg' => 'Un iceberg', - 'meadow.jpg' => 'Une prairie' - ] - ], - 'espace' => [ - 'config' => [ - 'name' => 'Espace', - 'directory' => 'site/file/source/galerie/space' - ], - 'legend' => [ - 'earth.jpg' => 'La Terre et la Lune', - 'cosmos.jpg' => 'Le cosmos', - 'nebula.jpg' => 'Une nébuleuse' - ] - ] - ], - 'site-de-zwii' => [ - 'url' => 'http://zwiicms.com/', - 'count' => 0 - ], - 'contact' => [ - 'config' => [ - 'button' => '', - 'capcha' => true, - 'group' => self::GROUP_ADMIN, - 'pageId' => '', - 'subject' => '' - ], - 'data' => [], - 'input' => [ - [ - 'name' => 'Adresse mail', - 'position' => 1, - 'required' => true, - 'type' => 'mail', - 'values' => '' - ], - [ - 'name' => 'Sujet', - 'position' => 2, - 'required' => true, - 'type' => 'text', - 'values' => '' - ], - [ - 'name' => 'Message', - 'position' => 3, - 'required' => true, - 'type' => 'textarea', - 'values' => '' - ] - ] - ] - ], - 'user' => [], - 'theme' => [ - 'body' => [ - 'backgroundColor' => 'rgba(236, 239, 241, 1)', - 'image' => '', - 'imageAttachment' => 'scroll', - 'imageRepeat' => 'no-repeat', - 'imagePosition' => 'top center', - 'imageSize' => 'auto' - ], - 'button' => [ - 'backgroundColor' => 'rgba(74, 105, 189, 1)' - ], - 'footer' => [ - 'backgroundColor' => 'rgba(255, 255, 255, 1)', - 'height' => '10px', - 'loginLink' => true, - 'margin' => false, - 'position' => 'site', - 'textColor' => 'rgba(33, 34, 35, 1)', - 'copyrightPosition' => 'center', - 'copyrightAlign' => 'center', - 'text' => 'Pied de page personnalisé', - 'textPosition' => 'left', - 'textAlign' => 'left', - 'socialsPosition' => 'right', - 'socialsAlign' => 'right' - ], - 'header' => [ - 'backgroundColor' => 'rgba(255, 255, 255, 1)', - 'font' => 'Oswald', - 'fontSize' => '2em', - 'fontWeight' => 'normal', - 'height' => '150px', - 'image' => '', - 'imagePosition' => 'center center', - 'imageRepeat' => 'no-repeat', - 'margin' => false, - 'position' => 'site', - 'textAlign' => 'center', - 'textColor' => 'rgba(33, 34, 35, 1)', - 'textHide' => false, - 'textTransform' => 'none', - 'linkHome' => 'false', - 'imageContainer' => 'auto' - ], - 'link' => [ - 'textColor' => 'rgba(74, 105, 189, 1)' - ], - 'menu' => [ - 'backgroundColor' => 'rgba(74, 105, 189, 1)', - 'font' => 'Open+Sans', - 'fontSize' => '1em', - 'fontWeight' => 'normal', - 'height' => '15px 10px', - 'loginLink' => true, - 'margin' => false, - 'position' => 'site-second', - 'textAlign' => 'left', - 'textColor' => 'rgba(255, 255, 255, 1)', - 'textTransform' => 'none', - 'fixed' => false - ], - 'site' => [ - 'backgroundColor' => 'rgba(255, 255, 255, 1)', - 'radius' => '0', - 'shadow' => '0', - 'width' => '960px' - ], - 'text' => [ - 'font' => 'Open+Sans', - 'fontSize' => '14px', - 'textColor' => 'rgba(33, 34, 35, 1)' - ], - 'title' => [ - 'font' => 'Oswald', - 'fontWeight' => 'normal', - 'textColor' => 'rgba(74, 105, 189, 1)', - 'textTransform' => 'none' - ], - 'version' => 0, - ] - ]; private $hierarchy = [ 'all' => [], 'visible' => [], @@ -492,7 +78,8 @@ class common { // 'codemirror', // Désactivé par défaut 'tippy', 'zwiico', - 'imagemap' + 'imagemap', + 'simplelightbox' ], 'view' => '' ]; @@ -542,7 +129,8 @@ class common { // Génère le fichier de données lorque les deux fichiers sont absents ou seulement le thème est - installation fraîche par défaut if(file_exists('site/data/core.json') === false OR file_exists('site/data/theme.json') === false) { - $this->setData([$this->defaultData]); + include_once('core/module/install/ressource/defaultdata.php'); + $this->setData([install::$defaultData]); $this->saveData(); chmod('site/data/core.json', 0755); chmod('site/data/theme.json', 0755); @@ -555,8 +143,8 @@ class common { // Mise à jour des données core // Fonction désactivée en dev - if (stripos(common::ZWII_VERSION, 'dev') === 0 ) - $this->update(); + // if (stripos(common::ZWII_VERSION, 'dev') === 0 ) + $this->update(); // Utilisateur connecté if($this->user === []) { @@ -1133,8 +721,7 @@ class common { } // Version 8.4.6 if($this->getData(['core', 'dataVersion']) < 846) { - echo $this->getData(['core', 'dataVersion']); - echo '
'; + $this->getData(['core', 'dataVersion']); $this->setData(['config','itemsperPage',10]); $this->setData(['core', 'dataVersion', 846]); $this->SaveData(); @@ -1147,8 +734,7 @@ class common { } // Version 8.5.1 if($this->getData(['core', 'dataVersion']) < 851) { - echo $this->getData(['core', 'dataVersion']); - echo '
'; + $this->getData(['core', 'dataVersion']); $this->setData(['config','itemsperPage',10]); $this->deleteData(['config','ItemsperPage']); $this->setData(['core', 'dataVersion', 851]); @@ -1169,8 +755,16 @@ class common { $this->deleteData(['config', 'social', 'googleplusId']); $this->setData(['core', 'dataVersion', 9001]); $this->SaveData(); - } - + } + // Version 9.0.08 + if($this->getData(['core', 'dataVersion']) < 9008) { + $this->setData(['theme', 'footer', 'textTransform','none']); + $this->setData(['theme', 'footer', 'fontWeight','normal']); + $this->setData(['theme', 'footer', 'fontSize','0.8em']); + $this->setData(['theme', 'footer', 'font','Open+Sans']); + $this->setData(['core', 'dataVersion', 9008]); + $this->SaveData(); + } } } @@ -1279,12 +873,7 @@ class core extends common { } } $css .= 'header{background-size:' . $this->getData(['theme','header','imageContainer']).'}'; - $css .= 'header{background-color:' . $colors['normal'] . ';height:' . $this->getData(['theme', 'header', 'height']) . ';line-height:' . $this->getData(['theme', 'header', 'height']) . ';text-align:' . $this->getData(['theme', 'header', 'textAlign']) . '}'; - $css .= '@media (max-width: 767px) {header{height:' . - str_replace("px","",$this->getData(['theme', 'header', 'height']))/2 . - 'px;line-height:' . - str_replace("px","",$this->getData(['theme', 'header', 'height']))/2 . - 'px;}}'; + $css .= 'header{background-color:' . $colors['normal'] . ';height:' . $this->getData(['theme', 'header', 'height']) . ';line-height:' . $this->getData(['theme', 'header', 'height']) . ';text-align:' . $this->getData(['theme', 'header', 'textAlign']) . '}'; if($themeHeaderImage = $this->getData(['theme', 'header', 'image'])) { $css .= 'header{background-image:url("../file/source/' . $themeHeaderImage . '");background-position:' . $this->getData(['theme', 'header', 'imagePosition']) . ';background-repeat:' . $this->getData(['theme', 'header', 'imageRepeat']) . '}'; } @@ -1314,6 +903,7 @@ class core extends common { if($this->getData(['theme', 'footer', 'margin'])) { $css .= 'footer{margin:0 20px 20px}'; } + $css .= 'footer span{color:' . $this->getData(['theme', 'footer', 'textColor']) . ';font-family:"' . str_replace('+', ' ', $this->getData(['theme', 'footer', 'font'])) . '",sans-serif;font-weight:' . $this->getData(['theme', 'footer', 'fontWeight']) . ';font-size:' . $this->getData(['theme', 'footer', 'fontSize']) . ';text-transform:' . $this->getData(['theme', 'footer', 'textTransform']) . '}'; $css .= 'footer{background-color:' . $colors['normal'] . ';color:' . $this->getData(['theme', 'footer', 'textColor']) . '}'; $css .= 'footer a{color:' . $this->getData(['theme', 'footer', 'textColor']) . '}'; $css .= 'footer .container > div{margin:' . $this->getData(['theme', 'footer', 'height']) . ' 0}'; @@ -1325,7 +915,6 @@ class core extends common { file_put_contents('site/data/theme.css', $css); } } - /** * Auto-chargement des classes * @param string $className Nom de la classe à charger @@ -1837,11 +1426,11 @@ class helper { break; case self::FILTER_ID: $text = mb_strtolower($text, 'UTF-8'); - $text = str_replace( + $text = strip_tags(str_replace( explode(',', 'á,à,â,ä,ã,å,ç,é,è,ê,ë,í,ì,î,ï,ñ,ó,ò,ô,ö,õ,ú,ù,û,ü,ý,ÿ,\',", '), explode(',', 'a,a,a,a,a,a,c,e,e,e,e,i,i,i,i,n,o,o,o,o,o,u,u,u,u,y,y,-,-,-'), $text - ); + )); $text = preg_replace('/([^a-z0-9-])/', '', $text); // Un ID ne peut pas être un entier, pour éviter les conflits avec le système de pagination if(intval($text) !== 0) { @@ -2111,8 +1700,8 @@ class layout extends common { */ public function showCopyright() { $items = '
'; - $items .= 'Motorisé par Zwii'; - $items .= ' | Plan du site'; + $items .= 'Motorisé par Zwii'; + $items .= ' | Plan du site'; if( ( $this->getData(['theme', 'footer', 'loginLink']) @@ -2120,7 +1709,11 @@ class layout extends common { ) OR $this->getUrl(0) === 'theme' ) { - $items .= 'getUrl(0) === 'theme' ? 'class="displayNone"' : '') . '> | Connexion'; + $items .= 'getUrl(0) === 'theme' ? 'class="displayNone"' : '') . + '> | Connexion'; } $items .= '
'; echo $items; @@ -2140,7 +1733,7 @@ class layout extends common { */ public function showFooterText() { if($footerText = $this->getData(['theme', 'footer', 'text']) OR $this->getUrl(0) === 'theme') { - echo '
' . nl2br($footerText) . '
'; + echo '
' . nl2br($footerText) . '
'; } } @@ -2261,7 +1854,11 @@ class layout extends common { ) OR $this->getUrl(0) === 'theme' ) { - $items .= ''; + $items .= ''; } // Retourne les items du menu echo ''; @@ -2352,12 +1949,19 @@ class layout extends common { helper::baseUrl() . $parentPageId . '"' . ($parentPageId === $currentPageId ? ' selected' : false) . - ($this->getData(['page', $parentPageId, 'disable']) === true ? ' class="inactive"' : false) . + ($this->getData(['page', $parentPageId, 'disable']) === true ? ' class="inactive"' : '') . '>' . $this->getData(['page', $parentPageId, 'title']) . ''; foreach($childrenPageIds as $childKey) { - $leftItems .= ''; + $leftItems .= ''; } } } @@ -2393,8 +1997,7 @@ class layout extends common { $rightItems .= '
  • ' . template::ico('brush') . '
  • '; $rightItems .= '
  • ' . template::ico('gear') . '
  • '; // Mise à jour automatique - // Désactivée en dev - if(helper::checkNewVersion() && stripos(common::ZWII_VERSION, 'dev') === FALSE ) { + if(helper::checkNewVersion() ) { $rightItems .= '
  • ' . template::ico('update colorRed') . '
  • '; } // Mise à jour automatique diff --git a/core/layout/common.css b/core/layout/common.css index f358ac12..046a5a73 100755 --- a/core/layout/common.css +++ b/core/layout/common.css @@ -25,10 +25,24 @@ body { min-height: 100%; } -body { - margin: 0px 10px; + +/** +* Petits écrans inférieurs à 768px de largeur, on supprime les marges +*/ +@media (max-width: 768px) { + body { + margin:0px 0px !important; + } + #site { + margin:0px auto !important; + } } +body { + margin:0px 10px; +} + + /** * Éléments spécifiques */ @@ -64,7 +78,7 @@ li ul { } option.inactive { - color: darkred; + color: darkorange; } /* Séparateur */ @@ -406,7 +420,7 @@ nav a:hover { width: auto; } nav a { - padding: 15px !important; + padding: 10px !important; } nav li ul a { padding-left: 40px !important; @@ -427,7 +441,10 @@ nav a:hover { position: sticky; } - +/* Taille du menu hamburger */ +nav .zwiico-menu { + font-size:1.5em !important; +} /* Corps */ @@ -456,25 +473,18 @@ body > footer { } footer { text-align: center; - font-size: .8em; - padding: 10px 20px; - vertical-align:middle; + /*padding: 10px 20px; deleted 9.0.08 */ + vertical-align:middle; } footer .col4 { vertical-align: middle; } - -footer #footerSocials { - font-size: 1.0em; -} - -footer #footerSocials { - font-size: 1.0em; -} - -footer #footerCopyright, #footerText { - font-size: 0.8em; +/* Conserve le pied de page sur une ligne */ +@media (max-width: 992px) { + footer .col4 { + width:33%; + } } footer #footerSocials span { diff --git a/core/module/install/install.php b/core/module/install/install.php index 2cdc1cd8..1f99b007 100755 --- a/core/module/install/install.php +++ b/core/module/install/install.php @@ -97,7 +97,8 @@ class install extends common { case 1: $success = true; // Copie du fichier de données - copy('site/data/core.json', 'site/backup/' . date('Y-m-d', time()) . '-update.json'); + copy('site/data/core.json', 'site/backup/' . date('Y-m-d', time()) . '-core-update.json'); + copy('site/data/theme.json', 'site/backup/' . date('Y-m-d', time()) . '-theme-update.json'); // Nettoyage des fichiers temporaires if(file_exists('site/tmp/update.tar.gz')) { $success = unlink('site/tmp/update.tar.gz'); diff --git a/core/module/install/ressource/defaultdata.php b/core/module/install/ressource/defaultdata.php new file mode 100644 index 00000000..478ff404 --- /dev/null +++ b/core/module/install/ressource/defaultdata.php @@ -0,0 +1,419 @@ + [ + 'analyticsId' => '', + 'autoBackup' => true, + 'cookieConsent' => true, + 'favicon' => 'favicon.ico', + 'homePageId' => 'accueil', + 'maintenance' => false, + 'metaDescription' => 'Zwii est un CMS sans base de données qui permet à ses utilisateurs de créer et gérer facilement un site web sans aucune connaissance en programmation.', + 'social' => [ + 'facebookId' => 'ZwiiCMS', + 'instagramId' => '', + 'pinterestId' => '', + 'twitterId' => '', + 'youtubeId' => '' + ], + 'timezone' => 'Europe/Paris', + 'title' => 'Zwii, votre site en quelques clics !', + 'itemsperPage' => 10 + ], + 'core' => [ + 'dataVersion' => 0, + 'lastBackup' => 0, + 'lastClearTmp' => 0 + ], + 'page' => [ + 'accueil' => [ + 'typeMenu' => 'text', + 'iconUrl' => '', + 'disable' => false, + 'content' => '

    Bienvenue sur votre nouveau site Zwii !

    +

    Un email contenant le récapitulatif de votre installation vient de vous être envoyé.

    +

    Connectez-vous dès maintenant à votre espace membre afin de créer un site à votre image ! Vous allez pouvoir personnaliser le thème, créer des pages, ajouter des utilisateurs et bien plus encore !

    +

    Si vous avez besoin d\'aide ou si vous cherchez des informations sur Zwii, n\'hésitez pas à jeter un œil à notre forum.

    ', + 'hideTitle' => false, + 'breadCrumb' => false, + 'metaDescription' => '', + 'metaTitle' => '', + 'moduleId' => '', + 'modulePosition' => 'bottom', + 'parentPageId' => '', + 'position' => 1, + 'group' => self::GROUP_VISITOR, + 'targetBlank' => false, + 'title' => 'Accueil', + 'block' => '12', + 'barLeft' => '', + 'barRight' => '' + ], + 'enfant' => [ + 'typeMenu' => 'text', + 'iconUrl' => '', + 'disable' => false, + 'content' => '

    Vous pouvez assigner des parents à vos pages afin de mieux organiser votre menu !

    +
    +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam interdum, neque non vulputate hendrerit, arcu turpis dapibus nisl, id scelerisque metus lectus vitae nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec feugiat dolor et turpis finibus condimentum. Cras sit amet ligula sagittis justo.

    +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam interdum, neque non vulputate hendrerit, arcu turpis dapibus nisl, id scelerisque metus lectus vitae nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec feugiat dolor et turpis finibus condimentum. Cras sit amet ligula sagittis justo.

    +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam interdum, neque non vulputate hendrerit, arcu turpis dapibus nisl, id scelerisque metus lectus vitae nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec feugiat dolor et turpis finibus condimentum. Cras sit amet ligula sagittis justo.

    +
    ', + 'hideTitle' => false, + 'breadCrumb' => true, + 'metaDescription' => '', + 'metaTitle' => '', + 'moduleId' => '', + 'modulePosition' => 'bottom', + 'parentPageId' => 'accueil', + 'position' => 1, + 'group' => self::GROUP_VISITOR, + 'targetBlank' => false, + 'title' => 'Enfant', + 'block' => '12', + 'barLeft' => '', + 'barRight' => '' + ], + 'privee' => [ + 'typeMenu' => 'text', + 'iconUrl' => '', + 'disable' => false, + 'content' => '

    Cette page n\'est visible que par les membres de votre site !

    +
    +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam interdum, neque non vulputate hendrerit, arcu turpis dapibus nisl, id scelerisque metus lectus vitae nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec feugiat dolor et turpis finibus condimentum. Cras sit amet ligula sagittis justo.

    +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam interdum, neque non vulputate hendrerit, arcu turpis dapibus nisl, id scelerisque metus lectus vitae nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec feugiat dolor et turpis finibus condimentum. Cras sit amet ligula sagittis justo.

    +
    ', + 'hideTitle' => false, + 'breadCrumb' => true, + 'metaDescription' => '', + 'metaTitle' => '', + 'moduleId' => '', + 'parentPageId' => '', + 'modulePosition' => 'bottom', + 'position' => 2, + 'group' => self::GROUP_MEMBER, + 'targetBlank' => false, + 'title' => 'Privée', + 'block' => '12', + 'barLeft' => '', + 'barRight' => '' + ], + 'mise-en-page' => [ + 'typeMenu' => 'text', + 'iconUrl' => '', + 'disable' => false, + 'content' => '

    Vous pouvez ajouter une ou deux barres latérales aux pages de votre site. Cette mise en page se définit dans les paramètres de page et peut s\'appliquer à l\'ensemble du site ou à certaines pages en particulier, au gré de vos désirs.

    +

    Pour créer une barre latérale à partir d\'une "Nouvelle page" ou transformer une page existante en barre latérale, sélectionnez l\'option dans la liste des gabarits. On peut bien sûr définir autant de barres latérales qu\'on le souhaite.

    +

    Cette nouvelle fonctionnalité autorise toutes sortes d\'utilisations : texte, encadrés, images, vidéos... ou simple marge blanche. Seule restriction : on ne peut pas installer un module dans une barre latérale.

    +

    La liste des barres disponibles et leur emplacement s\'affichent en fonction du gabarit que vous aurez choisi.', + 'hideTitle' => false, + 'breadCrumb' => true, + 'metaDescription' => '', + 'metaTitle' => '', + 'moduleId' => '', + 'parentPageId' => 'accueil', + 'modulePosition' => 'bottom', + 'position' => 3, + 'group' => self::GROUP_VISITOR, + 'targetBlank' => false, + 'title' => 'Mise en page', + 'block' => '8-4', + 'barLeft' => '', + 'barRight' => 'barre' + + ], + 'blog' => [ + 'typeMenu' => 'text', + 'iconUrl' => '', + 'disable' => false, + 'content' => '

    Cette page contient une instance du module de blog. Cliquez sur un article afin de le lire et de poster des commentaires.

    ', + 'hideTitle' => false, + 'breadCrumb' => false, + 'metaDescription' => '', + 'metaTitle' => '', + 'moduleId' => 'blog', + 'modulePosition' => 'bottom', + 'parentPageId' => '', + 'position' => 4, + 'group' => self::GROUP_VISITOR, + 'targetBlank' => false, + 'title' => 'Blog', + 'block' => '12', + 'barLeft' => '', + 'barRight' => '' + ], + 'galeries' => [ + 'typeMenu' => 'text', + 'iconUrl' => '', + 'disable' => false, + 'content' => '

    Cette page contient une instance du module de galeries photos. Cliquez sur la galerie ci-dessous afin de voir les photos qu\'elle contient.

    ', + 'hideTitle' => false, + 'breadCrumb' => false, + 'metaDescription' => '', + 'metaTitle' => '', + 'moduleId' => 'gallery', + 'modulePosition' => 'bottom', + 'parentPageId' => '', + 'position' => 5, + 'group' => self::GROUP_VISITOR, + 'targetBlank' => false, + 'title' => 'Galeries', + 'block' => '12', + 'barLeft' => '', + 'barRight' => '' + ], + 'site-de-zwii' => [ + 'typeMenu' => 'text', + 'iconUrl' => '', + 'disable' => false, + 'content' => "", + 'hideTitle' => false, + 'breadCrumb' => false, + 'metaDescription' => '', + 'metaTitle' => '', + 'moduleId' => 'redirection', + 'modulePosition' => 'bottom', + 'parentPageId' => '', + 'position' => 6, + 'group' => self::GROUP_VISITOR, + 'targetBlank' => true, + 'title' => 'Site de Zwii', + 'block' => '12', + 'barLeft' => '', + 'barRight' => '' + ], + 'contact' => [ + 'typeMenu' => 'text', + 'iconUrl' => '', + 'disable' => false, + 'content' => '

    Cette page contient un exemple de formulaire conçu à partir du module de génération de formulaires. Il est configuré pour envoyer les données saisies par mail aux administrateurs du site.

    ', + 'hideTitle' => false, + 'breadCrumb' => false, + 'metaDescription' => '', + 'metaTitle' => '', + 'moduleId' => 'form', + 'modulePosition' => 'bottom', + 'parentPageId' => '', + 'position' => 7, + 'group' => self::GROUP_VISITOR, + 'targetBlank' => false, + 'title' => 'Contact', + 'block' => '12', + 'barLeft' => '', + 'barRight' => '' + ], + 'barre' => [ + 'typeMenu' => 'text', + 'iconUrl' => '', + 'disable' => false, + 'content' => '

    ZwiiCMS

    Le CMS sans base de données à l\'installation simple et rapide

    ', + 'hideTitle' => false, + 'breadCrumb' => false, + 'metaDescription' => '', + 'metaTitle' => '', + 'moduleId' => '', + 'modulePosition' => 'bottom', + 'parentPageId' => '', + 'position' => 0 , + 'group' => self::GROUP_VISITOR, + 'targetBlank' => false, + 'title' => 'Barre latérale', + 'block' => 'bar', + 'barLeft' => '', + 'barRight' => '' + ], + ], + 'module' => [ + 'blog' => [ + 'mon-premier-article' => [ + 'closeComment' => false, + 'comment' => [ + '58e11d09e5aff' => [ + 'author' => 'Rémi', + 'content' => 'Article bien rédigé et très pertinent, bravo !', + 'createdOn' => 1421748000, + 'userId' => '' + ] + ], + 'content' => '

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. In a placerat metus. Morbi luctus laoreet dolor et euismod. Phasellus eget eros ac eros pretium tincidunt. Sed maximus magna lectus, non vestibulum sapien pretium maximus. Donec convallis leo tortor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras convallis lacus eu risus gravida varius. Etiam mattis massa vitae eros placerat bibendum.

    Vivamus tempus magna augue, in bibendum quam blandit at. Morbi felis tortor, suscipit ut ipsum ut, volutpat consectetur orci. Nulla tincidunt quis ligula non viverra. Sed pretium dictum blandit. Donec fringilla, nunc at dictum pretium, arcu massa viverra leo, et porta turpis ipsum eget risus. Quisque quis maximus purus, in elementum arcu. Donec nisi orci, aliquam non luctus non, congue volutpat massa. Curabitur sed risus congue, porta arcu vel, tincidunt nisi. Duis tincidunt quam ut velit maximus ornare. Nullam sagittis, ante quis pharetra hendrerit, lorem massa dapibus mi, a hendrerit dolor odio nec augue. Nunc sem nisl, tincidunt vitae nunc et, viverra tristique diam. In eget dignissim lectus. Nullam volutpat lacus id ex dapibus viverra. Pellentesque ultricies lorem ut nunc elementum volutpat. Cras id ultrices justo.

    Phasellus nec erat leo. Praesent at sem nunc. Vestibulum quis condimentum turpis. Cras semper diam vitae enim fringilla, ut fringilla mauris efficitur. In nec porttitor urna. Nam eros leo, vehicula eget lobortis sed, gravida id mauris. Nulla bibendum nunc tortor, non bibendum justo consectetur vel. Phasellus nec risus diam. In commodo tellus nec nulla fringilla, nec feugiat nunc consectetur. Etiam non eros sodales, sodales lacus vel, finibus leo. Quisque hendrerit tristique congue. Phasellus nec augue vitae libero elementum facilisis. Mauris pretium ornare nisi, non scelerisque velit consectetur sit amet.

    ', + 'picture' => 'galerie/landscape/meadow.jpg', + 'hidePicture' => false, + 'publishedOn' => 1548790902, + 'state' => true, + 'title' => 'Mon premier article', + 'userId' => '' // Géré au moment de l'installation + ], + 'mon-deuxieme-article' => [ + 'closeComment' => false, + 'comment' => [], + 'content' => '

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam lobortis eros pharetra metus rutrum pretium et sagittis mauris. Donec commodo venenatis sem nec suscipit. In tempor sollicitudin scelerisque. Etiam quis nibh eleifend, congue nisl quis, ultricies ipsum. Integer at est a eros vulputate pellentesque eu vitae tellus. Nullam suscipit quam nisl. Vivamus dui odio, luctus ac fringilla ultrices, eleifend vel sapien. Integer sem ex, lobortis eu mattis eu, condimentum non libero. Aliquam non porttitor elit, eu hendrerit neque. Praesent tortor urna, tincidunt sed dictum id, rutrum tempus sapien.

    Donec accumsan ante ac odio laoreet porttitor. Pellentesque et leo a leo scelerisque mattis id vel elit. Quisque egestas congue enim nec semper. Morbi mollis nibh sapien. Nunc quis fringilla lorem. Donec vel venenatis nunc. Donec lectus velit, tempor sit amet dui sed, consequat commodo enim. Nam porttitor neque semper, dapibus nunc bibendum, lobortis urna. Morbi ullamcorper molestie lectus a elementum. Curabitur eu cursus orci, sed tristique justo. In massa lacus, imperdiet eu elit quis, consectetur maximus magna. Integer suscipit varius ante vitae egestas. Morbi scelerisque fermentum ipsum, euismod faucibus mi tincidunt id. Sed at consectetur velit. Ut fermentum nunc nibh, at commodo felis lacinia nec.

    Nullam a justo quis lectus facilisis semper eget quis sem. Morbi suscipit erat sem, non fermentum nunc luctus vel. Proin venenatis quam ut arcu luctus efficitur. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nam sollicitudin tristique nunc nec convallis. Maecenas id tortor semper, tempus nisl laoreet, cursus lacus. Aliquam sagittis est in leo congue, a pharetra felis aliquet. Nulla gravida lobortis sapien, quis viverra enim ullamcorper sed. Donec ultrices sem eu volutpat dapibus. Nam euismod, tellus eu congue mollis, massa nisi finibus odio, vitae porta arcu urna ac lorem. Sed faucibus dignissim pretium. Pellentesque eget ante tellus. Pellentesque a elementum odio, sit amet vulputate diam. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In hendrerit consequat dolor, malesuada pellentesque tellus molestie non. Aenean quis purus a lectus pellentesque laoreet.

    ', + 'picture' => 'galerie/landscape/desert.jpg', + 'hidePicture' => false, + 'publishedOn' => 1550432502, + 'state' => true, + 'title' => 'Mon deuxième article', + 'userId' => '' // Géré au moment de l'installation + ], + 'mon-troisieme-article' => [ + 'closeComment' => true, + 'comment' => [], + 'content' => '

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut ut tempus nibh. Cras eget iaculis justo, ac laoreet lacus. Nunc tellus nulla, auctor id hendrerit eu, pellentesque in sapien. In hac habitasse platea dictumst. Aliquam leo urna, hendrerit id nunc eget, finibus maximus dolor. Sed rutrum sapien consectetur, tincidunt nulla at, blandit quam. Duis ex enim, vehicula vel nisi vitae, lobortis volutpat nisl. Vivamus enim libero, euismod nec risus vel, interdum placerat elit. In cursus sapien condimentum dui imperdiet, sed lobortis ante consectetur. Maecenas hendrerit eget felis non consequat.

    Nullam nec risus non velit efficitur tempus eget tincidunt mauris. Etiam venenatis leo id justo sagittis, commodo dignissim sapien tristique. Vivamus finibus augue malesuada sapien gravida rutrum. Integer mattis lectus ac pulvinar scelerisque. Integer suscipit feugiat metus, ac molestie odio suscipit eget. Fusce at elit in tellus venenatis finibus id sit amet magna. Integer sodales luctus neque blandit posuere. Cras pellentesque dictum lorem eget vestibulum. Quisque vitae metus non nisi efficitur rhoncus ut vitae ipsum. Donec accumsan massa at est faucibus lacinia. Quisque imperdiet luctus neque eu vestibulum. Phasellus pellentesque felis ligula, id imperdiet elit ultrices eu.

    ', + 'picture' => 'galerie/landscape/iceberg.jpg', + 'hidePicture' => false, + 'publishedOn' => 1550864502, + 'state' => true, + 'title' => 'Mon troisième article', + 'userId' => '' // Géré au moment de l'installation + ] + ], + 'galeries' => [ + 'beaux-paysages' => [ + 'config' => [ + 'name' => 'Beaux paysages', + 'directory' => 'site/file/source/galerie/landscape' + ], + 'legend' => [ + 'desert.jpg' => 'Un désert', + 'iceberg.jpg' => 'Un iceberg', + 'meadow.jpg' => 'Une prairie' + ] + ], + 'espace' => [ + 'config' => [ + 'name' => 'Espace', + 'directory' => 'site/file/source/galerie/space' + ], + 'legend' => [ + 'earth.jpg' => 'La Terre et la Lune', + 'cosmos.jpg' => 'Le cosmos', + 'nebula.jpg' => 'Une nébuleuse' + ] + ] + ], + 'site-de-zwii' => [ + 'url' => 'http://zwiicms.com/', + 'count' => 0 + ], + 'contact' => [ + 'config' => [ + 'button' => '', + 'capcha' => true, + 'group' => self::GROUP_ADMIN, + 'pageId' => '', + 'subject' => '' + ], + 'data' => [], + 'input' => [ + [ + 'name' => 'Adresse mail', + 'position' => 1, + 'required' => true, + 'type' => 'mail', + 'values' => '' + ], + [ + 'name' => 'Sujet', + 'position' => 2, + 'required' => true, + 'type' => 'text', + 'values' => '' + ], + [ + 'name' => 'Message', + 'position' => 3, + 'required' => true, + 'type' => 'textarea', + 'values' => '' + ] + ] + ] + ], + 'user' => [], + 'theme' => [ + 'body' => [ + 'backgroundColor' => 'rgba(236, 239, 241, 1)', + 'image' => '', + 'imageAttachment' => 'scroll', + 'imageRepeat' => 'no-repeat', + 'imagePosition' => 'top center', + 'imageSize' => 'auto' + ], + 'button' => [ + 'backgroundColor' => 'rgba(74, 105, 189, 1)' + ], + 'footer' => [ + 'backgroundColor' => 'rgba(255, 255, 255, 1)', + 'font' => 'Open+Sans', + 'fontSize' => '0.8em', + 'fontWeight' => 'normal', + 'height' => '10px', + 'loginLink' => true, + 'margin' => false, + 'position' => 'site', + 'textColor' => 'rgba(33, 34, 35, 1)', + 'copyrightPosition' => 'right', + 'copyrightAlign' => 'right', + 'text' => 'Pied de page personnalisé', + 'textPosition' => 'left', + 'textAlign' => 'left', + 'textTransform' => 'none', + 'socialsPosition' => 'center', + 'socialsAlign' => 'center' + ], + 'header' => [ + 'backgroundColor' => 'rgba(255, 255, 255, 1)', + 'font' => 'Oswald', + 'fontSize' => '2em', + 'fontWeight' => 'normal', + 'height' => '150px', + 'image' => '', + 'imagePosition' => 'center center', + 'imageRepeat' => 'no-repeat', + 'margin' => false, + 'position' => 'site', + 'textAlign' => 'center', + 'textColor' => 'rgba(33, 34, 35, 1)', + 'textHide' => false, + 'textTransform' => 'none', + 'linkHome' => 'false', + 'imageContainer' => 'auto' + ], + 'link' => [ + 'textColor' => 'rgba(74, 105, 189, 1)' + ], + 'menu' => [ + 'backgroundColor' => 'rgba(74, 105, 189, 1)', + 'font' => 'Open+Sans', + 'fontSize' => '1em', + 'fontWeight' => 'normal', + 'height' => '15px 10px', + 'loginLink' => true, + 'margin' => false, + 'position' => 'site-second', + 'textAlign' => 'left', + 'textColor' => 'rgba(255, 255, 255, 1)', + 'textTransform' => 'none', + 'fixed' => false + ], + 'site' => [ + 'backgroundColor' => 'rgba(255, 255, 255, 1)', + 'radius' => '0', + 'shadow' => '0', + 'width' => '960px' + ], + 'text' => [ + 'font' => 'Open+Sans', + 'fontSize' => '14px', + 'textColor' => 'rgba(33, 34, 35, 1)' + ], + 'title' => [ + 'font' => 'Oswald', + 'fontWeight' => 'normal', + 'textColor' => 'rgba(74, 105, 189, 1)', + 'textTransform' => 'none' + ], + 'version' => 0, + ] + ]; +} \ No newline at end of file diff --git a/core/module/theme/resource/custom.css b/core/module/theme/resource/custom.css index 4f292980..e9ab5288 100755 --- a/core/module/theme/resource/custom.css +++ b/core/module/theme/resource/custom.css @@ -8,7 +8,10 @@ */ -/* Grille du site */ +/* +* Grille du site +* Barres et page +*/ #contentleft { } #contentright { @@ -63,13 +66,6 @@ footer #footersiteCenter, #footerbodyCenter { footer #footersiteRight, #footerbodyRight { } -/* footer bloc de chaque élément */ -#footerText { -} -#footerSocials { -} -#footerCopyright { -} /** diff --git a/core/module/theme/theme.php b/core/module/theme/theme.php index bf6b2fba..921ef714 100755 --- a/core/module/theme/theme.php +++ b/core/module/theme/theme.php @@ -35,7 +35,7 @@ class theme extends common { 'right' => 'À droite' ]; public static $attachments = [ - 'scroll' => 'Normale', + 'scroll' => 'Standard', 'fixed' => 'Fixe' ]; public static $fonts = [ @@ -74,27 +74,35 @@ class theme extends common { 'right' => 'Bloc Droite' ]; public static $fontWeights = [ - 'normal' => 'Normal', + 'normal' => 'Maigre', 'bold' => 'Gras' ]; public static $footerHeights = [ - '0px' => 'Très petite', - '10px' => 'Petite', - '20px' => 'Moyenne', - '35px' => 'Grande', - '40px' => 'Très grande' + '5px' => 'Très petite (5 pixels)', + '10px' => 'Petite (10 pixels)', + '20px' => 'Moyenne (20 pixels)', + '35px' => 'Grande (35 pixels)', + '40px' => 'Très grande (40 pixels)' ]; public static $footerPositions = [ 'hide' => 'Cachée', 'site' => 'Dans le site', 'body' => 'En dessous du site' ]; + public static $footerFontSizes = [ + '.5em' => 'Microscopique (50%)', + '.6em' => 'Minuscule (60%)', + '.7em' => 'Infime (70%)', + '.8em' => 'Très petite (80%)', + '.9em' => 'Petite (90%)', + '1em' => 'Standard (100%)', + ]; public static $headerFontSizes = [ - '1.6em' => 'Très petite', - '1.8em' => 'Petite', - '2em' => 'Moyenne', - '2.2em' => 'Grande', - '2.4vmax' => 'Très grande' + '1.6em' => 'Très petite (160%)', + '1.8em' => 'Petite (180%)', + '2em' => 'Moyenne (200%)', + '2.2em' => 'Grande (220%)', + '2.4vmax' => 'Très grande (240%)' ]; public static $headerHeights = [ '100px' => 'Très petite (100 pixels)', @@ -120,19 +128,19 @@ class theme extends common { 'bottom right' => 'En bas à droite' ]; public static $menuFontSizes = [ - '.8em' => 'Très petite', - '.9em' => 'Petite', - '1em' => 'Normale', - '1.1em' => 'Moyenne', - '1.2em' => 'Grande', - '1.3em' => 'Très grande' + '.8em' => 'Très petite (80%)', + '.9em' => 'Petite (90%)', + '1em' => 'Standard (100%)', + '1.1em' => 'Moyenne (110%)', + '1.2em' => 'Grande (120%)', + '1.3em' => 'Très grande (130%)' ]; public static $menuHeights = [ - '5px 10px' => 'Très petite', - '10px' => 'Petite', - '15px 10px' => 'Moyenne', - '20px 15px' => 'Grande', - '25px 15px' => 'Très grande' + '5px 10px' => 'Très petite (5 pixels)', + '10px' => 'Petite (10 pixels)', + '15px 10px' => 'Moyenne (15 pixels)', + '20px 15px' => 'Grande (20 pixels)', + '25px 15px' => 'Très grande (25 pixels)' ]; public static $menuPositionsSite = [ 'top' => 'En-dehors du site', @@ -170,19 +178,22 @@ class theme extends common { '1px 1px 50px' => 'Très importante' ]; public static $siteFontSizes = [ - '12px' => '12', - '13px' => '13', - '14px' => '14', - '15px' => '15', - '16px' => '16' + '12px' => '12 pixels', + '13px' => '13 pixels', + '14px' => '14 pixels', + '15px' => '15 pixels', + '16px' => '16 pixels' ]; public static $sizes = [ 'auto' => 'Automatique', - 'cover' => 'Largeur adaptée au fond' + 'cover' => 'Responsive', + '100% 100%' => 'Image étirée' ]; public static $textTransforms = [ - 'none' => 'Normaux', - 'uppercase' => 'Majuscules' + 'none' => 'Standard', + 'lowercase' => 'Minuscules', + 'uppercase' => 'Majuscules', + 'capitalize' => 'Majuscule à chaque mot' ]; public static $widths = [ '750px' => 'Petite (750 pixels)', @@ -190,11 +201,11 @@ class theme extends common { '1170px' => 'Grande (1170 pixels)', '100%' => 'Fluide (100%)' ]; - public static $headerWide = [ - 'auto' => 'Automatique', - 'contain' => 'Image entière', - 'cover' => 'Largeur adaptée au fond', - '100% 100%' => 'Taille adaptée au fond' + public static $headerWide = [ + 'auto auto' => 'Automatique', + //'contain' => 'Responsive (contain)', + 'cover' => 'Responsive', + '100% 100%' => 'Image étirée', ]; @@ -273,7 +284,11 @@ class theme extends common { 'textColor' => $this->getInput('themeFooterTextColor'), 'copyrightPosition' => $this->getInput('themeFooterCopyrightPosition'), 'textPosition' => $this->getInput('themeFooterTextPosition'), - 'socialsPosition' => $this->getInput('themeFooterSocialsPosition') + 'socialsPosition' => $this->getInput('themeFooterSocialsPosition'), + 'textTransform' => $this->getInput('themeFooterTextTransform'), + 'font' => $this->getInput('themeFooterFont'), + 'fontSize' => $this->getInput('themeFooterFontSize'), + 'fontWeight' => $this->getInput('themeFooterFontWeight') ]]); // Valeurs en sortie $this->addOutput([ @@ -301,6 +316,7 @@ class theme extends common { // Si une image est positionnée, l'arrière en transparent. $this->setData(['theme', 'header', [ 'backgroundColor' => $this->getInput('themeHeaderBackgroundColor'), + 'textTransform' => $this->getInput('themeHeaderTextTransform'), 'font' => $this->getInput('themeHeaderFont'), 'fontSize' => $this->getInput('themeHeaderFontSize'), 'fontWeight' => $this->getInput('themeHeaderFontWeight'), @@ -312,8 +328,7 @@ class theme extends common { 'position' => $this->getInput('themeHeaderPosition'), 'textAlign' => $this->getInput('themeHeaderTextAlign'), 'textColor' => $this->getInput('themeHeaderTextColor'), - 'textHide' => $this->getInput('themeHeaderTextHide', helper::FILTER_BOOLEAN), - 'textTransform' => $this->getInput('themeHeaderTextTransform'), + 'textHide' => $this->getInput('themeHeaderTextHide', helper::FILTER_BOOLEAN), 'linkHome' => $this->getInput('themeHeaderlinkHome',helper::FILTER_BOOLEAN), 'imageContainer' => $this->getInput('themeHeaderImageContainer') ]]); diff --git a/core/module/theme/view/body/body.js.php b/core/module/theme/view/body/body.js.php index 65654510..b6429b7e 100755 --- a/core/module/theme/view/body/body.js.php +++ b/core/module/theme/view/body/body.js.php @@ -19,7 +19,7 @@ $("input, select").on("change", function() { // Image du fond var themeBodyImage = $("#themeBodyImage").val(); if(themeBodyImage) { - css += "body{background-image:url('site/file/source/" + themeBodyImage + "');background-repeat:" + $("#themeBodyImageRepeat").val() + ";background-position:" + $("#themeBodyImagePosition").val() + ";background-attachment:" + $("#themeBodyImageAttachment").val() + ";background-size:" + $("#themeBodyImageSize").val() + "]"; + css += "body{background-image:url('site/file/source/" + themeBodyImage + "');background-repeat:" + $("#themeBodyImageRepeat").val() + ";background-position:" + $("#themeBodyImagePosition").val() + ";background-attachment:" + $("#themeBodyImageAttachment").val() + ";background-size:" + $("#themeBodyImageSize").val() + "}"; } else { css += "body{background-image:none}"; diff --git a/core/module/theme/view/body/body.php b/core/module/theme/view/body/body.php index 375d99cc..6ab43b1d 100755 --- a/core/module/theme/view/body/body.php +++ b/core/module/theme/view/body/body.php @@ -18,6 +18,7 @@

    Couleur

    'colorPicker', + 'help' => 'Le curseur horizontal règle le niveau de transparence', 'label' => 'Fond', 'value' => $this->getData(['theme', 'body', 'backgroundColor']) ]); ?> @@ -51,7 +52,7 @@
    'Fixation', + 'label' => 'Défilement', 'selected' => $this->getData(['theme', 'body', 'imageAttachment']) ]); ?>
    diff --git a/core/module/theme/view/footer/footer.js.php b/core/module/theme/view/footer/footer.js.php index 4b837cbf..8f13fe2b 100755 --- a/core/module/theme/view/footer/footer.js.php +++ b/core/module/theme/view/footer/footer.js.php @@ -15,6 +15,9 @@ * Aperçu en direct */ $("input, select").on("change", function() { + // Import des polices de caractères + var footerFont = $("#themeFooterFont").val(); + var css = "@import url('https://fonts.googleapis.com/css?family=" + footerFont + "');"; // Couleurs du pied de page var colors = core.colorVariants($("#themeFooterBackgroundColor").val()); var textColor = $("#themeFooterTextColor").val(); @@ -29,6 +32,8 @@ $("input, select").on("change", function() { css += "#footerSocials{text-align:" + $("#themeFooterSocialsAlign").val() + "}"; css += "#footerText{text-align:" + $("#themeFooterTextAlign").val() + "}"; css += "#footerCopyright{text-align:" + $("#themeFooterCopyrightAlign").val() + "}"; + // Taille, couleur, épaisseur et capitalisation du titre de la bannière + css += "footer span{color:" + $("#themeFooterTextColor").val() + ";font-family:'" + footerFont.replace(/\+/g, " ") + "',sans-serif;font-weight:" + $("#themeFooterFontWeight").val() + ";font-size:" + $("#themeFooterFontSize").val() + ";text-transform:" + $("#themeFooterTextTransform").val() + "}"; // Marge if($("#themeFooterMargin").is(":checked")) { css += 'footer{margin:0 20px 20px}'; @@ -42,7 +47,7 @@ $("input, select").on("change", function() { .attr("type", "text/css") .attr("id", "themePreview") .text(css) - .appendTo("head"); + .appendTo("footer"); // Position du pied de page switch($("#themeFooterPosition").val()) { case 'hide': @@ -90,7 +95,6 @@ $("#themeFooterForm").on("change",function() { $("#footerSocials").show().appendTo("#footersiteCenter"); break; case 'right': - console.log("right"); $("#footerSocials").show().appendTo("#footerbodyRight"); $("#footerSocials").show().appendTo("#footersiteRight"); break; diff --git a/core/module/theme/view/footer/footer.php b/core/module/theme/view/footer/footer.php index f072a0ff..c4726904 100755 --- a/core/module/theme/view/footer/footer.php +++ b/core/module/theme/view/footer/footer.php @@ -59,7 +59,40 @@
    - +
    +
    +
    +

    Mise en forme du texte

    +
    +
    + 'Police', + 'selected' => $this->getData(['theme', 'footer', 'font']) + ]); ?> +
    +
    + 'Taille', + 'help' => 'Proportionnelle à celle définie dans le site', + 'selected' => $this->getData(['theme', 'footer', 'fontSize']) + ]); ?> +
    +
    + 'Style', + 'selected' => $this->getData(['theme', 'footer', 'fontWeight']) + ]); ?> +
    +
    + 'Casse', + 'selected' => $this->getData(['theme', 'footer', 'textTransform']) + ]); ?> +
    +
    +
    +
    +
    @@ -75,7 +108,6 @@
    -
    diff --git a/core/module/theme/view/header/header.js.php b/core/module/theme/view/header/header.js.php index a63a1c68..c5e40cdb 100755 --- a/core/module/theme/view/header/header.js.php +++ b/core/module/theme/view/header/header.js.php @@ -16,7 +16,6 @@ $("input, select").on("change", function() { // Import des polices de caractères var headerFont = $("#themeHeaderFont").val(); - var css = "@import url('https://fonts.googleapis.com/css?family=" + headerFont + "');"; // Adaptation aux média css += "@media (max-width: 767px) {header{height:" + $("#themeHeaderHeight").val() + "/2;line-height:" + $("#themeHeaderHeight").val() + "/2;}}"; diff --git a/core/module/theme/view/header/header.php b/core/module/theme/view/header/header.php index c010575b..3ea3f5db 100755 --- a/core/module/theme/view/header/header.php +++ b/core/module/theme/view/header/header.php @@ -20,6 +20,7 @@
    'colorPicker', + 'help' => 'Le curseur horizontal règle le niveau de transparence', 'label' => 'Fond', 'value' => $this->getData(['theme', 'header', 'backgroundColor']) ]); ?> @@ -27,6 +28,7 @@
    'colorPicker', + 'help' => 'Le curseur horizontal règle le niveau de transparence', 'label' => 'Texte', 'value' => $this->getData(['theme', 'header', 'textColor']) ]); ?> @@ -67,7 +69,7 @@
    'Taille', + 'label' => 'Adaptation', 'selected' => $this->getData(['theme', 'header', 'imageContainer']) ]); ?>
    @@ -81,10 +83,17 @@

    Mise en forme du texte

    +
    + 'Police', + 'selected' => $this->getData(['theme', 'header', 'font']) + ]); ?> +
    - 'Caractères', - 'selected' => $this->getData(['theme', 'header', 'textTransform']) + 'Taille', + 'help' => 'Proportionnelle à celle définie dans le site', + 'selected' => $this->getData(['theme', 'header', 'fontSize']) ]); ?>
    @@ -92,20 +101,13 @@ 'label' => 'Style', 'selected' => $this->getData(['theme', 'header', 'fontWeight']) ]); ?> -
    +
    - 'Taille', - 'selected' => $this->getData(['theme', 'header', 'fontSize']) + 'Casse', + 'selected' => $this->getData(['theme', 'header', 'textTransform']) ]); ?>
    -
    - 'Police', - 'selected' => $this->getData(['theme', 'header', 'font']) - ]); ?> -
    -
    diff --git a/core/module/theme/view/menu/menu.php b/core/module/theme/view/menu/menu.php index 46566b94..2184b297 100755 --- a/core/module/theme/view/menu/menu.php +++ b/core/module/theme/view/menu/menu.php @@ -20,6 +20,7 @@
    'colorPicker', + 'help' => 'Le curseur horizontal règle le niveau de transparence', 'label' => 'Fond', 'value' => $this->getData(['theme', 'menu', 'backgroundColor']) ]); ?> @@ -27,6 +28,7 @@
    'colorPicker', + 'help' => 'Le curseur horizontal règle le niveau de transparence', 'label' => 'Texte', 'value' => $this->getData(['theme', 'menu', 'textColor']) ]); ?> @@ -35,37 +37,46 @@
    +
    +

    Contenu

    + $this->getData(['theme', 'menu', 'loginLink']), + 'help' => 'Visible seulement sur cette page et lorsque vous n\'êtes pas connecté (non recommandé).' + ]); ?> +
    +
    +
    +

    Mise en forme du texte

    -
    - 'Caractères', - 'selected' => $this->getData(['theme', 'menu', 'textTransform']) - ]); ?> +
    + 'Police', + 'selected' => $this->getData(['theme', 'menu', 'font']) + ]); ?>
    -
    +
    + 'Taille', + 'help' => 'Proportionnelle à celle définie dans le site', + 'selected' => $this->getData(['theme', 'menu', 'fontSize']) + ]); ?> +
    +
    'Style', 'selected' => $this->getData(['theme', 'menu', 'fontWeight']) ]); ?> -
    +
    +
    + 'Casse', + 'selected' => $this->getData(['theme', 'menu', 'textTransform']) + ]); ?> +
    -
    -
    - 'Police', - 'selected' => $this->getData(['theme', 'menu', 'font']) - ]); ?> -
    -
    - 'Taille', - 'selected' => $this->getData(['theme', 'menu', 'fontSize']) - ]); ?> -
    -
    -
    +
    @@ -114,15 +125,4 @@
    -
    -
    -
    -

    Contenu

    - $this->getData(['theme', 'menu', 'loginLink']), - 'help' => 'Visible seulement sur cette page et lorsque vous n\'êtes pas connecté.' - ]); ?> -
    -
    -
    \ No newline at end of file diff --git a/core/module/theme/view/site/site.php b/core/module/theme/view/site/site.php index cf3fcf93..2dd04060 100755 --- a/core/module/theme/view/site/site.php +++ b/core/module/theme/view/site/site.php @@ -20,6 +20,7 @@
    'colorPicker', + 'help' => 'Le curseur horizontal règle le niveau de transparence', 'label' => 'Fond', 'value' => $this->getData(['theme', 'site', 'backgroundColor']) ]); ?> @@ -27,6 +28,7 @@
    'colorPicker', + 'help' => 'Le curseur horizontal règle le niveau de transparence', 'label' => 'Texte', 'value' => $this->getData(['theme', 'text', 'textColor']) ]); ?> @@ -34,6 +36,7 @@
    'colorPicker', + 'help' => 'Le curseur horizontal règle le niveau de transparence', 'label' => 'Titres', 'value' => $this->getData(['theme', 'title', 'textColor']) ]); ?> @@ -43,6 +46,7 @@
    'colorPicker', + 'help' => 'Le curseur horizontal règle le niveau de transparence', 'label' => 'Boutons', 'value' => $this->getData(['theme', 'button', 'backgroundColor']) ]); ?> @@ -50,6 +54,7 @@
    'colorPicker', + 'help' => 'Le curseur horizontal règle le niveau de transparence', 'label' => 'Liens', 'value' => $this->getData(['theme', 'link', 'textColor']) ]); ?> @@ -58,6 +63,53 @@
    +
    +
    +
    +

    Mise en forme du texte

    +
    +
    + 'Police', + 'selected' => $this->getData(['theme', 'text', 'font']) + ]); ?> +
    +
    + 'Taille', + 'help' => 'Taille de référence pour le site. Les tailles des polices de la bannière, de menu et de pied de page sont proportionnelles à cette taille.', + 'selected' => $this->getData(['theme', 'text', 'fontSize']) + ]); ?> +
    +
    +
    +
    +
    +
    +

    Mise en forme des titres

    +
    +
    + 'Police', + 'selected' => $this->getData(['theme', 'title', 'font']) + ]); ?> +
    +
    + 'Style', + 'selected' => $this->getData(['theme', 'title', 'fontWeight']) + ]); ?> +
    +
    + 'Casse', + 'selected' => $this->getData(['theme', 'title', 'textTransform']) + ]); ?> +
    +
    +
    +
    +
    @@ -85,50 +137,4 @@
    -
    -
    -
    -

    Mise en forme du texte

    -
    -
    - 'Taille', - 'selected' => $this->getData(['theme', 'text', 'fontSize']) - ]); ?> -
    -
    - 'Police', - 'selected' => $this->getData(['theme', 'text', 'font']) - ]); ?> -
    -
    -
    -
    -
    -
    -

    Mise en forme des titres

    -
    -
    - 'Caractères', - 'selected' => $this->getData(['theme', 'title', 'textTransform']) - ]); ?> -
    -
    - 'Style', - 'selected' => $this->getData(['theme', 'title', 'fontWeight']) - ]); ?> -
    -
    - 'Police', - 'selected' => $this->getData(['theme', 'title', 'font']) - ]); ?> -
    -
    -
    -
    -
    \ No newline at end of file diff --git a/core/vendor/filemanager/UploadHandler.php b/core/vendor/filemanager/UploadHandler.php index 670a5549..6a99cbbb 100755 --- a/core/vendor/filemanager/UploadHandler.php +++ b/core/vendor/filemanager/UploadHandler.php @@ -1436,8 +1436,7 @@ class UploadHandler $magicianObj -> saveImage($targetFile); } - - $thumbResult = create_img($targetFile, $targetFileThumb, 266, 200); + $thumbResult = create_img($targetFile, $targetFileThumb, 122, 91); if ( $thumbResult!==true) { diff --git a/core/vendor/filemanager/config/config.php b/core/vendor/filemanager/config/config.php index 6689e4de..b21dff25 100755 --- a/core/vendor/filemanager/config/config.php +++ b/core/vendor/filemanager/config/config.php @@ -425,7 +425,7 @@ $config = array( 'url_upload' => true, - //************************************ + //************************************ //Thumbnail for external use creation //************************************ @@ -437,12 +437,12 @@ $config = array( // path_from_filemanager/test/test1/ // PS if there isn't write permission in your destination folder you must set it // - 'fixed_image_creation' => false, //activate or not the creation of one or more image resized with fixed path from filemanager folder - 'fixed_path_from_filemanager' => array( '../test/', '../test1/' ), //fixed path of the image folder from the current position on upload folder - 'fixed_image_creation_name_to_prepend' => array( '', 'test_' ), //name to prepend on filename - 'fixed_image_creation_to_append' => array( '_test', '' ), //name to appendon filename - 'fixed_image_creation_width' => array( 300, 400 ), //width of image (you can leave empty if you set height) - 'fixed_image_creation_height' => array( 200, '' ), //height of image (you can leave empty if you set width) + 'fixed_image_creation' => true, //activate or not the creation of one or more image resized with fixed path from filemanager folder + 'fixed_path_from_filemanager' => array( '../../../site/file/thumb' ), //fixed path of the image folder from the current position on upload folder + 'fixed_image_creation_name_to_prepend' => array( '' ), //name to prepend on filename + 'fixed_image_creation_to_append' => array( '' ), //name to appendon filename + 'fixed_image_creation_width' => array( 480 ), //width of image + 'fixed_image_creation_height' => array( 320 ), //height of image /* # $option: 0 / exact = defined size; # 1 / portrait = keep aspect set height; @@ -450,7 +450,7 @@ $config = array( # 3 / auto = auto; # 4 / crop= resize and crop; */ - 'fixed_image_creation_option' => array( 'crop', 'auto' ), //set the type of the crop + 'fixed_image_creation_option' => array( 'landscape', 'portrait' ), //set the type of the crop // New image resized creation with relative path inside to upload folder after uploading (thumbnails in relative mode) @@ -462,8 +462,8 @@ $config = array( 'relative_path_from_current_pos' => array( './', './' ), //relative path of the image folder from the current position on upload folder 'relative_image_creation_name_to_prepend' => array( '', '' ), //name to prepend on filename 'relative_image_creation_name_to_append' => array( '_thumb', '_thumb1' ), //name to append on filename - 'relative_image_creation_width' => array( 300, 400 ), //width of image (you can leave empty if you set height) - 'relative_image_creation_height' => array( 200, '' ), //height of image (you can leave empty if you set width) + 'relative_image_creation_width' => array( 300, 400 ), //width of image + 'relative_image_creation_height' => array( 200, 300 ), //height of image /* # $option: 0 / exact = defined size; # 1 / portrait = keep aspect set height; @@ -473,7 +473,6 @@ $config = array( */ 'relative_image_creation_option' => array( 'crop', 'crop' ), //set the type of the crop - // Remember text filter after close filemanager for future session 'remember_text_filter' => false, diff --git a/module/gallery/vendor/simplelightbox/inc.json b/core/vendor/simplelightbox/inc.json old mode 100755 new mode 100644 similarity index 100% rename from module/gallery/vendor/simplelightbox/inc.json rename to core/vendor/simplelightbox/inc.json diff --git a/module/gallery/vendor/simplelightbox/init.css b/core/vendor/simplelightbox/init.css old mode 100755 new mode 100644 similarity index 100% rename from module/gallery/vendor/simplelightbox/init.css rename to core/vendor/simplelightbox/init.css diff --git a/module/gallery/vendor/simplelightbox/simplelightbox.min.css b/core/vendor/simplelightbox/simplelightbox.min.css old mode 100755 new mode 100644 similarity index 100% rename from module/gallery/vendor/simplelightbox/simplelightbox.min.css rename to core/vendor/simplelightbox/simplelightbox.min.css diff --git a/module/gallery/vendor/simplelightbox/simplelightbox.min.js b/core/vendor/simplelightbox/simplelightbox.min.js old mode 100755 new mode 100644 similarity index 100% rename from module/gallery/vendor/simplelightbox/simplelightbox.min.js rename to core/vendor/simplelightbox/simplelightbox.min.js diff --git a/core/vendor/tinymce/init.js b/core/vendor/tinymce/init.js index bc1f71c3..ace3d44f 100755 --- a/core/vendor/tinymce/init.js +++ b/core/vendor/tinymce/init.js @@ -21,7 +21,7 @@ tinymce.init({ }, width: 800, // Default value is 800 height: 500, // Default value is 550 - Files: [ // Additional JS files to load + files: [ // Additional JS files to load baseUrl + 'core/vendor/tinymce/mode/clike/clike.js', baseUrl + 'core/vendor/tinymce/mode/php/php.js' ] @@ -34,8 +34,11 @@ tinymce.init({ // Target pour lightbox rel_list: [ {title: 'None', value: ''}, - {title: 'Lightbox', value: 'data-lity'} + // {title: 'Lightbox', value: 'data-lity'}, + {title: 'SimpleLightbox', value: 'gallery'} ], + // Titre des image + image_title: true, // Pages internes link_list: baseUrl + "core/vendor/tinymce/links.php", // Contenu du menu contextuel @@ -74,9 +77,11 @@ tinymce.init({ "filemanager": baseUrl + "core/vendor/filemanager/plugin.min.js" }, // Thème mobile - mobile: { - theme: "mobile" - }, + // mobile: { + // theme: "mobile", + // plugins: [ 'autosave', 'lists', 'autolink' ], + // toolbar: [ 'undo', 'bold', 'italic', 'styleselect' ] + //}, // Contenu du bouton insérer insert_button_items: "image link media template codesample inserttable | hr | anchor", // Contenu du bouton formats diff --git a/core/vendor/tinymce/langs/fr_FR.js b/core/vendor/tinymce/langs/fr_FR.js index d3830690..907a81e5 100755 --- a/core/vendor/tinymce/langs/fr_FR.js +++ b/core/vendor/tinymce/langs/fr_FR.js @@ -50,7 +50,7 @@ tinymce.addI18n('fr_FR',{ "Blocks": "Blocs", "Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Le presse-papiers est maintenant en mode \"texte plein\". Les contenus seront coll\u00e9s sans retenir les formatages jusqu'\u00e0 ce que vous d\u00e9sactiviez cette option.", "Font Family": "Police", -"Font Sizes": "Taille de police", +"Font Sizes": "Tailles de police", "Class": "Classe", "Browse for an image": "Parcourir pour s\u00e9lectionner une image", "OR": "OU", @@ -112,7 +112,8 @@ tinymce.addI18n('fr_FR',{ "Handy Shortcuts": "Raccourci", "Horizontal line": "Ligne horizontale", "Insert\/edit image": "Ins\u00e9rer\/modifier une image", -"Image description": "Description de l'image", +"Image description": "Description", +"Image Title": "Légende", "Source": "Source", "Dimensions": "Dimensions", "Constrain proportions": "Conserver les proportions", @@ -160,7 +161,7 @@ tinymce.addI18n('fr_FR',{ "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "L'URL que vous avez entr\u00e9e semble \u00eatre une adresse e-mail. Voulez-vous ajouter le pr\u00e9fixe mailto: n\u00e9cessaire?", "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "L'URL que vous avez entr\u00e9e semble \u00eatre un lien externe. Voulez-vous ajouter le pr\u00e9fixe http:\/\/ n\u00e9cessaire?", "Link list": "Page", -"Rel": "Ouvrir dans", +"Rel": "Ouvrir avec", "Insert video": "Ins\u00e9rer une vid\u00e9o", "Insert\/edit video": "Ins\u00e9rer\/modifier une vid\u00e9o", "Insert\/edit media": "Ins\u00e9rer\/modifier un m\u00e9dia", @@ -258,4 +259,4 @@ tinymce.addI18n('fr_FR',{ "Tools": "Outils", "Powered by {0}": "Propuls\u00e9 par {0}", "Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Zone Texte Riche. Appuyer sur ALT-F9 pour le menu. Appuyer sur ALT-F10 pour la barre d'outils. Appuyer sur ALT-0 pour de l'aide." -}); \ No newline at end of file +}); diff --git a/core/vendor/tinymce/link_list.json b/core/vendor/tinymce/link_list.json index e734b409..572c1e6a 100644 --- a/core/vendor/tinymce/link_list.json +++ b/core/vendor/tinymce/link_list.json @@ -1 +1 @@ -[{"title":"Nouvelle page","value":"?nouvelle-page"},{"title":"Accueil","value":"?accueil","menu":[{"title":"Enfant","value":"?enfant"},{"title":"Mise en page","value":"?mise-en-page"},{"title":"Blog","value":"?blog"}]},{"title":"Cach\u00e9e","value":"?cachee"},{"title":"Galeries","value":"?galeries"},{"title":"Site de Zwii","value":"?site-de-zwii"},{"title":"Contact","value":"?contact"}] \ No newline at end of file +[{"title":"Accueil","value":"?accueil","menu":[{"title":"Enfant","value":"?enfant"},{"title":"Mise en page","value":"?mise-en-page"}]},{"title":"Priv\u00e9e","value":"?privee"},{"title":"Blog","value":"?blog"},{"title":"Galeries","value":"?galeries"},{"title":"Site de Zwii","value":"?site-de-zwii"},{"title":"Contact","value":"?contact"}] \ No newline at end of file diff --git a/module/blog/blog.php b/module/blog/blog.php index ca99658f..9e2edd82 100755 --- a/module/blog/blog.php +++ b/module/blog/blog.php @@ -37,7 +37,7 @@ class blog extends common { public static $users = []; - const BLOG_VERSION = '1.2'; + const BLOG_VERSION = '1.3'; /** * Édition diff --git a/module/blog/view/article/article.css b/module/blog/view/article/article.css index 2b5abec5..1e9564ad 100755 --- a/module/blog/view/article/article.css +++ b/module/blog/view/article/article.css @@ -1,5 +1,5 @@ #blogArticlePicture { - height: 350px; + height: auto; width: 100%; background-size: cover; background-repeat: no-repeat; @@ -20,7 +20,7 @@ } @media (max-width: 767px) { #blogArticlePicture { - height:150px; + height:auto; max-width: 100%;} } diff --git a/module/blog/view/article/article.php b/module/blog/view/article/article.php index a87c7272..44196686 100755 --- a/module/blog/view/article/article.php +++ b/module/blog/view/article/article.php @@ -5,7 +5,8 @@
    getData(['module', $this->getUrl(0), $this->getUrl(1), 'hidePicture']) == false) { - echo '
    '; + // echo '
    '; + echo '
    '; } ?> getData(['module', $this->getUrl(0), $this->getUrl(1), 'content']); ?> diff --git a/site/file/thumb/galerie/landscape/desert.jpg b/site/file/thumb/galerie/landscape/desert.jpg index 86fe27b5..6431f1bc 100644 Binary files a/site/file/thumb/galerie/landscape/desert.jpg and b/site/file/thumb/galerie/landscape/desert.jpg differ diff --git a/site/file/thumb/galerie/landscape/iceberg.jpg b/site/file/thumb/galerie/landscape/iceberg.jpg index 679abc97..25601d39 100644 Binary files a/site/file/thumb/galerie/landscape/iceberg.jpg and b/site/file/thumb/galerie/landscape/iceberg.jpg differ diff --git a/site/file/thumb/galerie/landscape/meadow.jpg b/site/file/thumb/galerie/landscape/meadow.jpg index 05daadfe..6c6fe2e4 100644 Binary files a/site/file/thumb/galerie/landscape/meadow.jpg and b/site/file/thumb/galerie/landscape/meadow.jpg differ diff --git a/site/file/thumb/galerie/space/cosmos.jpg b/site/file/thumb/galerie/space/cosmos.jpg index b4aeb0bd..fe2c0dee 100644 Binary files a/site/file/thumb/galerie/space/cosmos.jpg and b/site/file/thumb/galerie/space/cosmos.jpg differ diff --git a/site/file/thumb/galerie/space/earth.jpg b/site/file/thumb/galerie/space/earth.jpg index 7b7ccf50..86ae8179 100644 Binary files a/site/file/thumb/galerie/space/earth.jpg and b/site/file/thumb/galerie/space/earth.jpg differ diff --git a/site/file/thumb/galerie/space/nebula.jpg b/site/file/thumb/galerie/space/nebula.jpg index 14523336..b1a0b095 100644 Binary files a/site/file/thumb/galerie/space/nebula.jpg and b/site/file/thumb/galerie/space/nebula.jpg differ diff --git a/site/tmp/.htaccess b/site/tmp/.htaccess deleted file mode 100644 index 4a46a173..00000000 --- a/site/tmp/.htaccess +++ /dev/null @@ -1,5 +0,0 @@ -# Bloque l'accès htaccess - - Order deny,allow - Deny from all -