├── .gitignore ├── .htaccess ├── CHANGE.md ├── LICENSE ├── README.md ├── core ├── core.js.php ├── core.php ├── layout │ ├── blank.css │ ├── blank.php │ ├── common.css │ ├── light.css │ ├── light.php │ ├── mail.php │ └── main.php ├── module │ ├── config │ │ ├── config.php │ │ └── view │ │ │ └── index │ │ │ └── index.php │ ├── install │ │ ├── install.php │ │ └── view │ │ │ ├── index │ │ │ ├── index.js.php │ │ │ └── index.php │ │ │ └── update │ │ │ ├── update.js.php │ │ │ └── update.php │ ├── maintenance │ │ ├── maintenance.php │ │ └── view │ │ │ └── index │ │ │ └── index.php │ ├── page │ │ ├── page.php │ │ └── view │ │ │ └── edit │ │ │ ├── edit.js.php │ │ │ └── edit.php │ ├── sitemap │ │ ├── sitemap.php │ │ └── view │ │ │ └── index │ │ │ └── index.php │ ├── theme │ │ ├── resource │ │ │ └── custom.css │ │ ├── theme.php │ │ └── view │ │ │ ├── advanced │ │ │ ├── advanced.js.php │ │ │ └── advanced.php │ │ │ ├── body │ │ │ ├── body.js.php │ │ │ └── body.php │ │ │ ├── footer │ │ │ ├── footer.js.php │ │ │ └── footer.php │ │ │ ├── header │ │ │ ├── header.js.php │ │ │ └── header.php │ │ │ ├── index │ │ │ ├── index.css │ │ │ ├── index.js.php │ │ │ └── index.php │ │ │ ├── menu │ │ │ ├── menu.js.php │ │ │ └── menu.php │ │ │ └── site │ │ │ ├── site.js.php │ │ │ └── site.php │ └── user │ │ ├── user.php │ │ └── view │ │ ├── add │ │ ├── add.js.php │ │ └── add.php │ │ ├── edit │ │ ├── edit.js.php │ │ └── edit.php │ │ ├── forgot │ │ └── forgot.php │ │ ├── index │ │ ├── index.js.php │ │ └── index.php │ │ ├── login │ │ └── login.php │ │ └── reset │ │ └── reset.php └── vendor │ ├── codemirror │ ├── codemirror.min.css │ ├── codemirror.min.js │ ├── inc.json │ ├── init.css │ ├── init.js │ └── mode │ │ └── css.min.js │ ├── filemanager │ ├── UploadHandler.php │ ├── ajax_calls.php │ ├── callback.js │ ├── config │ │ ├── .htaccess │ │ └── config.php │ ├── css │ │ ├── jquery.fileupload-noscript.css │ │ ├── jquery.fileupload-ui-noscript.css │ │ ├── jquery.fileupload-ui.css │ │ ├── jquery.fileupload.css │ │ ├── rtl-style.css │ │ └── style.css │ ├── dialog.php │ ├── execute.php │ ├── force_download.php │ ├── img │ │ ├── clipboard_apply.png │ │ ├── clipboard_clear.png │ │ ├── copy.png │ │ ├── cut.png │ │ ├── date.png │ │ ├── dimension.png │ │ ├── down.png │ │ ├── download.png │ │ ├── duplicate.png │ │ ├── edit_img.png │ │ ├── file_edit.png │ │ ├── glyphicons-halflings-white.png │ │ ├── glyphicons-halflings.png │ │ ├── ico │ │ │ ├── ac3.jpg │ │ │ ├── accdb.jpg │ │ │ ├── ade.jpg │ │ │ ├── adp.jpg │ │ │ ├── ai.jpg │ │ │ ├── aiff.jpg │ │ │ ├── avi.jpg │ │ │ ├── bmp.jpg │ │ │ ├── c4d.jpg │ │ │ ├── css.jpg │ │ │ ├── csv.jpg │ │ │ ├── default.jpg │ │ │ ├── dmg.jpg │ │ │ ├── doc.jpg │ │ │ ├── docx.jpg │ │ │ ├── dwg.jpg │ │ │ ├── dxf.jpg │ │ │ ├── favicon.ico │ │ │ ├── fla.jpg │ │ │ ├── flv.jpg │ │ │ ├── folder.png │ │ │ ├── folder_back.png │ │ │ ├── gif.jpg │ │ │ ├── gz.jpg │ │ │ ├── html.jpg │ │ │ ├── iso.jpg │ │ │ ├── jpeg.jpg │ │ │ ├── jpg.jpg │ │ │ ├── log.jpg │ │ │ ├── m4a.jpg │ │ │ ├── mdb.jpg │ │ │ ├── mid.jpg │ │ │ ├── mov.jpg │ │ │ ├── mp3.jpg │ │ │ ├── mp4.jpg │ │ │ ├── mpeg.jpg │ │ │ ├── mpg.jpg │ │ │ ├── odb.jpg │ │ │ ├── odf.jpg │ │ │ ├── odg.jpg │ │ │ ├── odp.jpg │ │ │ ├── ods.jpg │ │ │ ├── odt.jpg │ │ │ ├── ogg.jpg │ │ │ ├── otg.jpg │ │ │ ├── otp.jpg │ │ │ ├── ots.jpg │ │ │ ├── ott.jpg │ │ │ ├── pdf.jpg │ │ │ ├── png.jpg │ │ │ ├── ppt.jpg │ │ │ ├── pptx.jpg │ │ │ ├── psd.jpg │ │ │ ├── rar.jpg │ │ │ ├── rtf.jpg │ │ │ ├── skp.jpg │ │ │ ├── sql.jpg │ │ │ ├── stp.jpg │ │ │ ├── svg.jpg │ │ │ ├── tar.jpg │ │ │ ├── tiff.jpg │ │ │ ├── txt.jpg │ │ │ ├── vwx.jpg │ │ │ ├── wav.jpg │ │ │ ├── webm.jpg │ │ │ ├── wma.jpg │ │ │ ├── xhtml.jpg │ │ │ ├── xls.jpg │ │ │ ├── xlsx.jpg │ │ │ ├── xml.jpg │ │ │ └── zip.jpg │ │ ├── info.png │ │ ├── key.png │ │ ├── label.png │ │ ├── loading.gif │ │ ├── logo.png │ │ ├── preview.png │ │ ├── processing.gif │ │ ├── rename.png │ │ ├── size.png │ │ ├── sort.png │ │ ├── storing_animation.gif │ │ ├── trans.jpg │ │ ├── up.png │ │ ├── upload.png │ │ ├── url.png │ │ └── zip.png │ ├── inc.json │ ├── include │ │ ├── FtpClient.php │ │ ├── FtpException.php │ │ ├── FtpWrapper.php │ │ ├── Response.php │ │ ├── ftp_class.php │ │ ├── mime_type_lib.php │ │ ├── php_image_magician.php │ │ └── utils.php │ ├── js │ │ ├── cors │ │ │ ├── jquery.postmessage-transport.js │ │ │ └── jquery.xdr-transport.js │ │ ├── include.commercial.js │ │ ├── include.js │ │ ├── jPlayer │ │ │ ├── MIT-LICENSE.txt │ │ │ ├── README.md │ │ │ ├── actionscript │ │ │ │ ├── Jplayer.as │ │ │ │ ├── Jplayer.fla │ │ │ │ └── happyworm │ │ │ │ │ └── jPlayer │ │ │ │ │ ├── ConnectManager.as │ │ │ │ │ ├── JplayerEvent.as │ │ │ │ │ ├── JplayerMp3.as │ │ │ │ │ ├── JplayerMp4.as │ │ │ │ │ ├── JplayerRtmp.as │ │ │ │ │ ├── JplayerStatus.as │ │ │ │ │ └── TraceOut.as │ │ │ ├── add-on │ │ │ │ ├── jplayer.playlist.js │ │ │ │ ├── jplayer.playlist.min.js │ │ │ │ ├── jquery.jplayer.inspector.js │ │ │ │ └── jquery.jplayer.inspector.min.js │ │ │ ├── jplayer.jquery.json │ │ │ ├── jplayer │ │ │ │ ├── jquery.jplayer.js │ │ │ │ ├── jquery.jplayer.min.js │ │ │ │ └── jquery.jplayer.swf │ │ │ ├── jquery.jplayer │ │ │ │ ├── Jplayer.swf │ │ │ │ └── jquery.jplayer.js │ │ │ ├── package.json │ │ │ ├── popcorn │ │ │ │ ├── popcorn.jplayer.js │ │ │ │ └── popcorn.jplayer.min.js │ │ │ ├── skin │ │ │ │ ├── blue.monday │ │ │ │ │ ├── css │ │ │ │ │ │ ├── jplayer.blue.monday.css │ │ │ │ │ │ └── jplayer.blue.monday.min.css │ │ │ │ │ ├── image │ │ │ │ │ │ ├── jplayer.blue.monday.jpg │ │ │ │ │ │ ├── jplayer.blue.monday.seeking.gif │ │ │ │ │ │ └── jplayer.blue.monday.video.play.png │ │ │ │ │ ├── jplayer.blue.monday.css │ │ │ │ │ ├── jplayer.blue.monday.jpg │ │ │ │ │ ├── jplayer.blue.monday.seeking.gif │ │ │ │ │ ├── jplayer.blue.monday.video.play.png │ │ │ │ │ ├── mustache │ │ │ │ │ │ ├── jplayer.blue.monday.audio.playlist.html │ │ │ │ │ │ ├── jplayer.blue.monday.audio.single.html │ │ │ │ │ │ ├── jplayer.blue.monday.audio.stream.html │ │ │ │ │ │ ├── jplayer.blue.monday.video.playlist.html │ │ │ │ │ │ └── jplayer.blue.monday.video.single.html │ │ │ │ │ └── skin.handlebars │ │ │ │ └── pink.flag │ │ │ │ │ ├── css │ │ │ │ │ ├── jplayer.pink.flag.css │ │ │ │ │ └── jplayer.pink.flag.min.css │ │ │ │ │ ├── image │ │ │ │ │ ├── jplayer.pink.flag.jpg │ │ │ │ │ ├── jplayer.pink.flag.seeking.gif │ │ │ │ │ └── jplayer.pink.flag.video.play.png │ │ │ │ │ └── mustache │ │ │ │ │ ├── jplayer.pink.flag.audio.playlist.html │ │ │ │ │ ├── jplayer.pink.flag.audio.single.html │ │ │ │ │ ├── jplayer.pink.flag.audio.stream.html │ │ │ │ │ ├── jplayer.pink.flag.video.playlist.html │ │ │ │ │ └── jplayer.pink.flag.video.single.html │ │ │ └── skin_ol │ │ │ │ ├── blue.monday │ │ │ │ ├── jplayer.blue.monday.css │ │ │ │ ├── jplayer.blue.monday.jpg │ │ │ │ ├── jplayer.blue.monday.seeking.gif │ │ │ │ ├── jplayer.blue.monday.video.play.png │ │ │ │ └── skin.handlebars │ │ │ │ └── pink.flag │ │ │ │ ├── jplayer.pink.flag.css │ │ │ │ ├── jplayer.pink.flag.jpg │ │ │ │ ├── jplayer.pink.flag.seeking.gif │ │ │ │ └── jplayer.pink.flag.video.play.png │ │ ├── jquery.fileupload-angular.js │ │ ├── jquery.fileupload-audio.js │ │ ├── jquery.fileupload-image.js │ │ ├── jquery.fileupload-jquery-ui.js │ │ ├── jquery.fileupload-process.js │ │ ├── jquery.fileupload-ui.js │ │ ├── jquery.fileupload-validate.js │ │ ├── jquery.fileupload-video.js │ │ ├── jquery.fileupload.js │ │ ├── jquery.iframe-transport.js │ │ ├── modernizr.custom.js │ │ ├── plugins.js │ │ └── vendor │ │ │ └── jquery.ui.widget.js │ ├── lang │ │ ├── fr_FR.php │ │ └── languages.php │ ├── plugin.min.js │ └── upload.php │ ├── flatpickr │ ├── flatpickr.min.css │ ├── flatpickr.min.js │ ├── inc.json │ ├── init.js │ └── l10n │ │ └── fr.js │ ├── jquery │ ├── inc.json │ └── jquery.min.js │ ├── lity │ ├── inc.json │ ├── lity.min.css │ └── lity.min.js │ ├── normalize │ ├── inc.json │ └── normalize.min.css │ ├── phpmailer │ ├── .htaccess │ └── phpmailer.php │ ├── tinycolorpicker │ ├── inc.json │ ├── init.js │ └── tinycolorpicker.min.js │ ├── tinymce │ ├── content.css │ ├── inc.json │ ├── init.css │ ├── init.js │ ├── jquery.tinymce.min.js │ ├── langs │ │ └── fr_FR.js │ ├── plugins │ │ ├── advlist │ │ │ └── plugin.min.js │ │ ├── anchor │ │ │ └── plugin.min.js │ │ ├── autolink │ │ │ └── plugin.min.js │ │ ├── autoresize │ │ │ └── plugin.min.js │ │ ├── autosave │ │ │ └── plugin.min.js │ │ ├── code │ │ │ └── plugin.min.js │ │ ├── codesample │ │ │ └── plugin.min.js │ │ ├── colorpicker │ │ │ └── plugin.min.js │ │ ├── contextmenu │ │ │ └── plugin.min.js │ │ ├── fullscreen │ │ │ └── plugin.min.js │ │ ├── hr │ │ │ └── plugin.min.js │ │ ├── image │ │ │ └── plugin.min.js │ │ ├── imagetools │ │ │ └── plugin.min.js │ │ ├── link │ │ │ └── plugin.min.js │ │ ├── lists │ │ │ └── plugin.min.js │ │ ├── media │ │ │ └── plugin.min.js │ │ ├── paste │ │ │ └── plugin.min.js │ │ ├── searchreplace │ │ │ └── plugin.min.js │ │ ├── stickytoolbar │ │ │ └── plugin.min.js │ │ ├── tabfocus │ │ │ └── plugin.min.js │ │ ├── table │ │ │ └── plugin.min.js │ │ ├── template │ │ │ └── plugin.min.js │ │ └── textcolor │ │ │ └── plugin.min.js │ ├── skins │ │ └── lightgray │ │ │ ├── content.inline.min.css │ │ │ ├── content.min.css │ │ │ ├── content.mobile.min.css │ │ │ ├── fonts │ │ │ ├── tinymce-mobile.woff │ │ │ ├── tinymce-small.eot │ │ │ ├── tinymce-small.svg │ │ │ ├── tinymce-small.ttf │ │ │ ├── tinymce-small.woff │ │ │ ├── tinymce.eot │ │ │ ├── tinymce.svg │ │ │ ├── tinymce.ttf │ │ │ └── tinymce.woff │ │ │ ├── img │ │ │ ├── anchor.gif │ │ │ ├── loader.gif │ │ │ ├── object.gif │ │ │ └── trans.gif │ │ │ ├── skin.min.css │ │ │ └── skin.mobile.min.css │ ├── templates │ │ ├── block.html │ │ ├── col10-2.html │ │ ├── col2-10.html │ │ ├── col3.html │ │ ├── col4-8.html │ │ ├── col4.html │ │ ├── col6.html │ │ └── col8-4.html │ ├── themes │ │ ├── mobile │ │ │ └── theme.min.js │ │ └── modern │ │ │ └── theme.min.js │ └── tinymce.min.js │ ├── tippy │ ├── inc.json │ ├── init.js │ ├── tippy.min.css │ └── tippy.min.js │ └── zwiico │ ├── css │ └── zwiico.min.css │ ├── font │ ├── zwiico.eot │ ├── zwiico.svg │ ├── zwiico.ttf │ ├── zwiico.woff │ └── zwiico.woff2 │ ├── inc.json │ └── init.css ├── index.php ├── module ├── blog │ ├── blog.php │ └── view │ │ ├── add │ │ ├── add.js.php │ │ └── add.php │ │ ├── article │ │ ├── article.css │ │ ├── article.js.php │ │ └── article.php │ │ ├── comment │ │ ├── comment.js.php │ │ └── comment.php │ │ ├── config │ │ ├── config.js.php │ │ └── config.php │ │ ├── edit │ │ ├── edit.js.php │ │ └── edit.php │ │ └── index │ │ ├── index.css │ │ └── index.php ├── form │ ├── form.php │ ├── vendor │ │ └── html-sortable │ │ │ ├── html-sortable.min.js │ │ │ └── inc.json │ └── view │ │ ├── config │ │ ├── config.css │ │ ├── config.js.php │ │ └── config.php │ │ ├── data │ │ ├── data.js.php │ │ └── data.php │ │ └── index │ │ └── index.php ├── gallery │ ├── gallery.php │ ├── vendor │ │ └── simplelightbox │ │ │ ├── inc.json │ │ │ ├── init.css │ │ │ ├── simplelightbox.min.css │ │ │ └── simplelightbox.min.js │ └── view │ │ ├── config │ │ ├── config.css │ │ ├── config.js.php │ │ └── config.php │ │ ├── edit │ │ ├── edit.js.php │ │ └── edit.php │ │ ├── gallery │ │ ├── gallery.css │ │ ├── gallery.js.php │ │ └── gallery.php │ │ └── index │ │ ├── index.css │ │ └── index.php ├── news │ ├── news.php │ └── view │ │ ├── add │ │ ├── add.js.php │ │ └── add.php │ │ ├── config │ │ ├── config.js.php │ │ └── config.php │ │ ├── edit │ │ ├── edit.js.php │ │ └── edit.php │ │ └── index │ │ └── index.php └── redirection │ ├── redirection.php │ └── view │ ├── config │ └── config.php │ └── index │ ├── index.js.php │ └── index.php └── site ├── backup └── .htaccess ├── data └── .htaccess ├── file ├── source │ ├── favicon.ico │ └── gallery │ │ ├── landscape │ │ ├── desert.jpg │ │ ├── iceberg.jpg │ │ └── meadow.jpg │ │ └── space │ │ ├── cosmos.jpg │ │ ├── earth.jpg │ │ └── nebula.jpg └── thumb │ └── gallery │ ├── landscape │ ├── desert.jpg │ ├── iceberg.jpg │ └── meadow.jpg │ └── space │ ├── cosmos.jpg │ ├── earth.jpg │ └── nebula.jpg └── tmp └── .gitkeep /.gitignore: -------------------------------------------------------------------------------- 1 | # Fichiers temporaires 2 | site/tmp/* 3 | 4 | # Sauvegardes 5 | site/backup/* 6 | 7 | # Fichiers de données 8 | site/data/* 9 | 10 | # Fichiers uploadés 11 | site/file/source/* 12 | site/file/thumb/* 13 | 14 | # Dossiers vides dans GitHub 15 | !.gitkeep 16 | 17 | # PHPStorm 18 | .idea/ -------------------------------------------------------------------------------- /.htaccess: -------------------------------------------------------------------------------- 1 | # Cache le PHPSESSID de l'url 2 | SetEnv SESSION_USE_TRANS_SID 0 3 | 4 | # Bloque l'accès à la liste des fichiers 5 | Options -Indexes 6 | 7 | # Attention, surtout ne rien modifier ci-dessous ! 8 | # URL rewriting -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Zwii 8 2 | 3 | **Développement repris par Frédéric Tempez et la communauté de Zwii, [nouveau dépôt](https://forge.chapril.org/ZwiiCMS-Team/ZwiiCMS).** 4 | 5 | Zwii est un CMS sans base de données (Flat-File) qui permet à ses utilisateurs de créer et gérer facilement un site web sans aucune connaissance en programmation. 6 | 7 | [Site](http://zwiicms.com/) - [Forum](http://forum.zwiicms.com/) - [GitHub](https://github.com/remijean/ZwiiCMS/) - [Anciennes versions](https://archive.remijean.fr/zwiicms/versions/) 8 | 9 | ## Configuration recommandée 10 | 11 | * PHP 5.6 ou plus 12 | * Support du .htaccess 13 | 14 | ## Installation 15 | 16 | Décompressez l'archive de Zwii sur votre serveur et c'est tout ! 17 | 18 | ## Procédure de mise à jour de Zwii 19 | 20 | ### Mise à jour automatique 21 | 22 | * Connectez vous à votre site, 23 | * Allez dans l'interface de configuration, 24 | * Cliquez sur le bouton "Mettre à jour". 25 | 26 | ### Mise à jour manuelle 27 | 28 | **Note : La réécriture d'URL est automatiquement désactivée après une mise à jour manuelle. À vous de la réactiver depuis l'interface de configuration du site.** 29 | 30 | * Sauvegardez le dossier "site" de votre serveur, 31 | * Décompressez la nouvelle version sur votre serveur, 32 | * Remplacez le dossier "site" de la nouvelle version par le votre. 33 | 34 | ## Arborescence générale 35 | 36 | *Légende : [D] Dossier ; [F] Fichier* 37 | 38 | ```text 39 | [D] core Contient le coeur de Zwii 40 | [D] layout Contient les différentes structure de thème 41 | [D] module Contient les modules du coeur 42 | [D] vendor Contient les librairies 43 | [F] core.js.php Coeur JavaScript de Zwii 44 | [F] core.php Coeur PHP de Zwii 45 | [D] module Contient les modules de page 46 | [D] site Contient les données du site 47 | [D] backup Contient les 30 dernière sauvegardes automatiques du fichier data.json 48 | [D] data Contient les fichiers de données 49 | [F] data.json Fichier de données 50 | [F] custom.css Feuille de style de la personnalisation avancée 51 | [F] theme.css Thème stocké dans le fichier data.json compilé en CSS 52 | [D] file Contient les fichiers envoyés sur le serveur depuis le gestionnaire de fichiers 53 | [D] source Contient les fichiers 54 | [D] thumb Contient les miniatures des fichiers de type image 55 | [D] tmp Contient les fichiers temporaire 56 | [F] index.php Fichier d'initialisation de Zwii 57 | ``` 58 | -------------------------------------------------------------------------------- /core/layout/blank.css: -------------------------------------------------------------------------------- 1 | /** 2 | * This file is part of Zwii. 3 | * 4 | * For full copyright and license information, please see the LICENSE 5 | * file that was distributed with this source code. 6 | * 7 | * @author Rémi Jean 8 | * @copyright Copyright (C) 2008-2018, Rémi Jean 9 | * @license GNU General Public License, version 3 10 | * @link http://zwiicms.com/ 11 | */ 12 | 13 | /** 14 | * Éléments génériques 15 | */ 16 | 17 | body { 18 | background : #FFF !important; 19 | } -------------------------------------------------------------------------------- /core/layout/blank.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | showMetaTitle(); ?> 8 | showMetaDescription(); ?> 9 | showFavicon(); ?> 10 | showVendor(); ?> 11 | 12 | 13 | 14 | 15 | 16 | showStyle(); ?> 17 | showContent(); ?> 18 | showScript(); ?> 19 | 20 | -------------------------------------------------------------------------------- /core/layout/light.css: -------------------------------------------------------------------------------- 1 | /** 2 | * This file is part of Zwii. 3 | * 4 | * For full copyright and license information, please see the LICENSE 5 | * file that was distributed with this source code. 6 | * 7 | * @author Rémi Jean 8 | * @copyright Copyright (C) 2008-2018, Rémi Jean 9 | * @license GNU General Public License, version 3 10 | * @link http://zwiicms.com/ 11 | */ 12 | 13 | /** 14 | * Éléments spécifiques 15 | */ 16 | 17 | /* Site */ 18 | #site { 19 | max-width: 600px !important; 20 | } -------------------------------------------------------------------------------- /core/layout/light.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | showMetaTitle(); ?> 8 | showMetaDescription(); ?> 9 | showFavicon(); ?> 10 | showVendor(); ?> 11 | 12 | 13 | 14 | 15 | 16 | 17 | showStyle(); ?> 18 | showNotification(); ?> 19 |
20 |
showContent(); ?>
21 |
22 | showScript(); ?> 23 | 24 | -------------------------------------------------------------------------------- /core/module/install/view/index/index.js.php: -------------------------------------------------------------------------------- 1 | /** 2 | * This file is part of Zwii. 3 | * 4 | * For full copyright and license information, please see the LICENSE 5 | * file that was distributed with this source code. 6 | * 7 | * @author Rémi Jean 8 | * @copyright Copyright (C) 2008-2018, Rémi Jean 9 | * @license GNU General Public License, version 3 10 | * @link http://zwiicms.com/ 11 | */ 12 | 13 | /** 14 | * Affichage de l'id en simulant FILTER_ID 15 | */ 16 | $("#installId").on("change keydown keyup", function(event) { 17 | var userId = $(this).val(); 18 | if( 19 | event.keyCode !== 8 // BACKSPACE 20 | && event.keyCode !== 37 // LEFT 21 | && event.keyCode !== 39 // RIGHT 22 | && event.keyCode !== 46 // DELETE 23 | && window.getSelection().toString() !== userId // Texte sélectionné 24 | ) { 25 | var searchReplace = { 26 | "á": "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", 27 | "Á": "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", 28 | "'": "-", "\"": "-", " ": "-" 29 | }; 30 | userId = userId.replace(/[áàâäãåçéèêëíìîïñóòôöõúùûüýÿ'" ]/ig, function(match) { 31 | return searchReplace[match]; 32 | }); 33 | userId = userId.replace(/[^a-z0-9-]/ig, ""); 34 | $(this).val(userId); 35 | } 36 | }); -------------------------------------------------------------------------------- /core/module/install/view/index/index.php: -------------------------------------------------------------------------------- 1 |

Veuillez saisir les champs ci-dessous afin de terminer l'installation.

2 | 3 | 'off', 5 | 'label' => 'Identifiant' 6 | ]); ?> 7 |
8 |
9 | 'off', 11 | 'label' => 'Mot de passe' 12 | ]); ?> 13 |
14 |
15 | 'off', 17 | 'label' => 'Confirmation' 18 | ]); ?> 19 |
20 |
21 | 'off', 23 | 'label' => 'Adresse mail' 24 | ]); ?> 25 |
26 |
27 | 'off', 29 | 'label' => 'Prénom' 30 | ]); ?> 31 |
32 |
33 | 'off', 35 | 'label' => 'Nom' 36 | ]); ?> 37 |
38 |
39 |
40 |
41 | 'Installer' 43 | ]); ?> 44 |
45 |
46 | -------------------------------------------------------------------------------- /core/module/install/view/update/update.js.php: -------------------------------------------------------------------------------- 1 | /** 2 | * Exécution des différentes étapes de mise à jour 3 | */ 4 | function step(i, data) { 5 | // Affiche le texte de progression 6 | $(".installUpdateProgressText").hide(); 7 | $(".installUpdateProgressText[data-id=" + i + "]").show(); 8 | // Requête ajax 9 | $.ajax({ 10 | type: "POST", 11 | url: "?install/steps", // Ignore la réécriture d'URL 12 | data: { 13 | step: i, 14 | data: data 15 | }, 16 | // Succès de la requête 17 | success: function(result) { 18 | setTimeout(function() { 19 | // Succès 20 | if(result.success === true) { 21 | // Fin de la mise à jour 22 | if(i === 4) { 23 | // Affiche le message de succès 24 | $("#installUpdateSuccess").show(); 25 | // Déverrouille le bouton "Terminer" 26 | $("#installUpdateEnd").removeClass("disabled"); 27 | // Cache le texte de progression 28 | $("#installUpdateProgress").hide(); 29 | } 30 | // Prochaine étape 31 | else { 32 | step(i + 1, result.data); 33 | } 34 | } 35 | // Échec 36 | else { 37 | // Affiche le message d'erreur 38 | $("#installUpdateErrorStep").text(i); 39 | $("#installUpdateError").show(); 40 | // Déverrouille le bouton "Terminer" 41 | $("#installUpdateEnd").removeClass("disabled"); 42 | // Cache le texte de progression 43 | $("#installUpdateProgress").hide(); 44 | // Affiche le résultat dans la console 45 | console.error(result); 46 | } 47 | }, 2000); 48 | }, 49 | // Échec de la requête 50 | error: function(xhr) { 51 | // Affiche le message d'erreur 52 | $("#installUpdateErrorStep").text(0); 53 | $("#installUpdateError").show(); 54 | // Déverrouille le bouton "Terminer" 55 | $("#installUpdateEnd").removeClass("disabled"); 56 | // Cache le texte de progression 57 | $("#installUpdateProgress").hide(); 58 | // Affiche l'erreur dans la console 59 | console.error(xhr); 60 | } 61 | }); 62 | } 63 | $(window).on("load", step(1, null)); 64 | -------------------------------------------------------------------------------- /core/module/install/view/update/update.php: -------------------------------------------------------------------------------- 1 |

Mise à jour de Zwii vers Zwii .

2 |

Afin d'assurer le bon fonctionnement de Zwii, veuillez ne pas fermer cette page avant la fin de l'opération.

3 |
4 |
5 |
6 | 7 | 1/4 : Préparation... 8 | 2/4 : Téléchargement... 9 | 3/4 : Installation... 10 | 4/4 : Configuration... 11 |
12 |
13 | 14 | Une erreur est survenue lors de l'étape . 15 |
16 |
17 | 18 | Mise à jour terminée avec succès. 19 |
20 |
21 |
22 | 'Terminer', 24 | 'href' => helper::baseUrl() . 'config', 25 | 'ico' => 'check', 26 | 'class' => 'disabled' 27 | ]); ?> 28 |
29 |
-------------------------------------------------------------------------------- /core/module/maintenance/maintenance.php: -------------------------------------------------------------------------------- 1 | 10 | * @copyright Copyright (C) 2008-2018, Rémi Jean 11 | * @license GNU General Public License, version 3 12 | * @link http://zwiicms.com/ 13 | */ 14 | 15 | class maintenance extends common { 16 | 17 | public static $actions = [ 18 | 'index' => self::GROUP_VISITOR 19 | ]; 20 | 21 | /** 22 | * Maintenance 23 | */ 24 | public function index() { 25 | // Valeurs en sortie 26 | $this->addOutput([ 27 | 'display' => self::DISPLAY_LAYOUT_LIGHT, 28 | 'title' => 'Maintenance en cours...', 29 | 'view' => 'index' 30 | ]); 31 | } 32 | 33 | } -------------------------------------------------------------------------------- /core/module/maintenance/view/index/index.php: -------------------------------------------------------------------------------- 1 |

Notre site est actuellement en maintenance. Nous sommes désolés pour la gêne occasionnée et faisons notre possible pour être rapidement de retour.

2 |
3 |
4 | 'Administration', 6 | 'href' => helper::baseUrl() . 'user/login', 7 | 'ico' => 'lock' 8 | ]); ?> 9 |
10 |
-------------------------------------------------------------------------------- /core/module/sitemap/sitemap.php: -------------------------------------------------------------------------------- 1 | 10 | * @copyright Copyright (C) 2008-2018, Rémi Jean 11 | * @license GNU General Public License, version 3 12 | * @link http://zwiicms.com/ 13 | */ 14 | 15 | class sitemap extends common { 16 | 17 | public static $actions = [ 18 | 'index' => self::GROUP_VISITOR 19 | ]; 20 | 21 | /** 22 | * Plan du site 23 | */ 24 | public function index() { 25 | // Valeurs en sortie 26 | $this->addOutput([ 27 | 'title' => 'Plan du site', 28 | 'view' => 'index' 29 | ]); 30 | } 31 | 32 | } -------------------------------------------------------------------------------- /core/module/sitemap/view/index/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/module/theme/resource/custom.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Voici une feuille de style type, bien entendu vous pouvez ajouter 3 | * ou supprimer des propriétés CSS en fonction de vos besoins. 4 | */ 5 | 6 | /** 7 | * Éléments principaux 8 | */ 9 | 10 | /* Fond du site */ 11 | body { 12 | } 13 | 14 | /* Site */ 15 | #site { 16 | } 17 | 18 | /* Bannière */ 19 | header { 20 | } 21 | 22 | /* Titre de la bannière */ 23 | header span { 24 | } 25 | 26 | /* Menu */ 27 | nav { 28 | } 29 | 30 | /* Items du menu */ 31 | nav a { 32 | } 33 | 34 | /* Items au survol du menu */ 35 | nav a:hover { 36 | } 37 | 38 | /* Item courant du menu */ 39 | nav a.active { 40 | } 41 | 42 | /* Bas de page */ 43 | footer { 44 | } 45 | 46 | /* Liens du bas de page */ 47 | footer a { 48 | } 49 | 50 | /* Réseaux sociaux dans le bas de page */ 51 | #footerSocials { 52 | } 53 | 54 | /* Texte libre dans le bas de page */ 55 | #footerText { 56 | } 57 | 58 | /* Copyright dans le bas de page */ 59 | #footerCopyright { 60 | } 61 | 62 | /** 63 | * Éléments de contenu 64 | */ 65 | 66 | /* Titres */ 67 | h1, 68 | h2, 69 | h3, 70 | h4 { 71 | } 72 | 73 | /* Liens */ 74 | a { 75 | } 76 | 77 | /* Liens au survol */ 78 | a:hover { 79 | } 80 | 81 | /* Liens au clic */ 82 | a:active { 83 | } 84 | 85 | /* Boutons */ 86 | .button, 87 | button[type='submit'], 88 | .pagination a { 89 | } 90 | 91 | /* Boutons au survol */ 92 | .button:hover, 93 | button[type='submit']:hover, 94 | .pagination a:hover { 95 | } 96 | 97 | /* Boutons au clic */ 98 | .button:active, 99 | button[type='submit']:active, 100 | .pagination a:active { 101 | } 102 | 103 | /* Cases à cocher */ 104 | input[type='checkbox']:checked + label:before { 105 | } 106 | 107 | /* Cases à cocher au survol */ 108 | input[type='checkbox']:not(:active):checked:hover + label:before, 109 | input[type='checkbox']:active + label:before { 110 | } 111 | 112 | /* Champs de formulaire */ 113 | input[type='text'], 114 | input[type='password'], 115 | .inputFile, 116 | select, 117 | textarea { 118 | } 119 | 120 | /* Champs de formulaire au survol */ 121 | input[type='text']:hover, 122 | input[type='password']:hover, 123 | .inputFile:hover, 124 | select:hover, 125 | textarea:hover { 126 | } -------------------------------------------------------------------------------- /core/module/theme/view/advanced/advanced.js.php: -------------------------------------------------------------------------------- 1 | /** 2 | * This file is part of Zwii. 3 | * 4 | * For full copyright and license information, please see the LICENSE 5 | * file that was distributed with this source code. 6 | * 7 | * @author Rémi Jean 8 | * @copyright Copyright (C) 2008-2018, Rémi Jean 9 | * @license GNU General Public License, version 3 10 | * @link http://zwiicms.com/ 11 | */ 12 | 13 | /** 14 | * Aperçu en direct 15 | */ 16 | $("#themeAdvancedCss").on("change keydown keyup", function() { 17 | // Ajout du css au DOM 18 | $("#themePreview").remove(); 19 | $("