Aller au contenu
Support de Zwii
Fred

ZwiiCMS v10 en version bêta

Messages recommandés

Bonjour,

 

Il s'agit de l'ex-version 10 sans la gestion multi-langues qui s’installera, sur une v9 (et non une v8) ou un dossier vierge.

 

Cette version stocke toujours les données dans des fichiers json, mais elle a la particularité de fonctionner comme une base de données. Alors que le Zwii de la v9 lisait et écrivait toutes les données en une fois ; même celles inutiles ; cette v10 n'accède qu'aux données nécessaires.

 

Il en résulte un temps de traitement accéléré qui sera surtout visible pour les gros sites. De même, elle fonctionnera sans problème de ralentissement derrière un proxy web.

 

Le script core.php est allégé, les classes templates et helper qui sont  indispensables au fonctionnement de Zwii sont chargées dans core/class

 

On y trouve également les classes : mailer, sitemap et jsondb.

 

image.png.34fab3cc5349f462b0ee35d4802ca43b.png

 

 

Il n'y aura pas d'autres améliorations ou ajouts de fonctionnalités avant sa sortie, je laisse passer la période des fêtes pour la publication.

 

L'archive ci-dessous est estampillée 10.0.013, le git est susceptible de disposer d'une version légèrement plus récente sous ce lien.

 

A priori cette version est utilisable en production (après copie de sauvegarde).

 

 

 

 

 

 

 

 

 

ZwiiCMS-beta-v10.119.zip

  • Merci 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour @Fred,

 

j'ai testé en installant les modules slider et mailing et en créant plusieurs pages. Tout fonctionne.

La décomposition de core.json en plusieurs fichiers json est vraiment très pertinente.

Le fichier .htaccess ne protège par contre que core.json, il est sans doute à faire évoluer.

Encore bravo pour ce travail, mon petit niveau en dev me permettant d'apprécier ce que tu as réalisé.

 

Si tu as des points précis à faire vérifier, n'hésite pas !

 

Cordialement

Sylvain

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a une heure, sylvainlelievre a dit :

Bonjour @Fred,

 

j'ai testé en installant les modules slider et mailing et en créant plusieurs pages. Tout fonctionne.

La décomposition de core.json en plusieurs fichiers json est vraiment très pertinente.

Le fichier .htaccess ne protège par contre que core.json, il est sans doute à faire évoluer.

Encore bravo pour ce travail, mon petit niveau en dev me permettant d'apprécier ce que tu as réalisé.

 

Si tu as des points précis à faire vérifier, n'hésite pas !

 

Cordialement

Sylvain

Bonjour @sylvainlelievre

Merci pour tes encouragements. 
Les points à valider sont l’import et l’export avec les options.  De mon côté tout fonctionne cependant il existe peut-être des conditions particulières sur d’autres installations. 
Bon dimanche 

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 2 heures, sylvainlelievre a dit :

La décomposition de core.json en plusieurs fichiers json est vraiment très pertinente.

Le fichier .htaccess ne protège par contre que core.json, il est sans doute à faire évoluer.

En effet, c'est modifié.

Il faudrait que tu recharge le zip entier à cause des classes externes un peu modifiées ce matin.

Partager ce message


Lien à poster
Partager sur d’autres sites

Je lance un challenge basé sur cette v10. 
 

Dans l’écran de config, la liste des pages servant à définir l’accueil présente également les barres latérales.  
 

Comment faire pour que cette liste soit réduite aux pages standards ou orphelines mais actives ?

10 lignes de code max

 

  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

Un peu perturbé par les différentes versions:

La version dispo en téléchargement est la 126, celle dans le lien git parait plus récente.

 

Je n'arrive pas à voir où se situe la restriction d'accès aux .json dans le .htaccess..

Partager ce message


Lien à poster
Partager sur d’autres sites

@Fred,

 

Installation de la 10.0.013

Export depuis une 9.2.15 d'un site assez complexe

Import dans la 10.0.013 : OK tout est là y compris les utilisateurs

 

Depuis cette 10.0.013 tentative de d'export : message d'erreur

Fatal error: Uncaught Error: Call to undefined method core::scanDir() in .../www/dev10/core/module/config/config.php:208 Stack trace: #0 .../www/dev10/core/core.php(1380): config->backup() #1 .../www/dev10/index.php(39): core->router() #2 {main} thrown in .../www/dev10/core/module/config/config.php on line 208

 

Ligne 208 : appel de core::scanDir() qui effectivement n'existe pas encore

 

Modifié par sylvainlelievre

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 58 minutes, sylvainlelievre a dit :

Depuis cette 10.0.013 tentative de d'export : message d'erreur

Fatal error: Uncaught Error: Call to undefined method core::scanDir() in .../www/dev10/core/module/config/config.php:208 Stack trace: #0 .../www/dev10/core/core.php(1380): config->backup() #1 .../www/dev10/index.php(39): core->router() #2 {main} thrown in .../www/dev10/core/module/config/config.php on line 208

 

Ligne 208 : appel de core::scanDir() qui effectivement n'existe pas encore

Ok, la classe a changé, je corrige ça.

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 3 heures, mulanee a dit :

Bonjour,

Un peu perturbé par les différentes versions:

La version dispo en téléchargement est la 126, celle dans le lien git parait plus récente.

 

Je n'arrive pas à voir où se situe la restriction d'accès aux .json dans le .htaccess..

Bonjour

La version 11 est en stand bye c'est l'ex v10 avec le multilangue son numéro est 139

La version 10 est la prochaine à venir,  c'est une v9 avec un moteur amélioré.

Lire ici :

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 5 heures, Fred a dit :

Je lance un challenge basé sur cette v10. 
 

Dans l’écran de config, la liste des pages servant à définir l’accueil présente également les barres latérales.  
 

Comment faire pour que cette liste soit réduite aux pages standards ou orphelines mais actives ?

10 lignes de code max

 

Un peu comme ça ?

						<?php 
						    //copie du array 'page' puis suppression des pages désactivées, barres latérales ou pages enfants
							$pagesOK = $this->getData(['page']);
							foreach($pagesOK as $pageskey => $pagesvalue){
								if ( $pagesvalue['disable'] === true
									|| $pagesvalue['block'] === 'bar'
									|| $pagesvalue['parentPageId'] !== ''){
									unset($pagesOK[$pageskey]);
								}
							}
							echo template::select('configHomePageId', helper::arrayCollumn($pagesOK, 'title', 'SORT_ASC'), [
							'label' => 'Page d\'accueil',
							'selected' =>$this->getData(['config', 'homePageId'])
						]); ?>

 

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 2 minutes, sylvainlelievre a dit :

 

Un peu comme ça ?


						<?php 
						    //copie du array 'page' puis suppression des pages désactivées, barres latérales ou pages enfants
							$pagesOK = $this->getData(['page']);
							foreach($pagesOK as $pageskey => $pagesvalue){
								if ( $pagesvalue['disable'] === true
									|| $pagesvalue['block'] === 'bar'
									|| $pagesvalue['parentPageId'] !== ''){
									unset($pagesOK[$pageskey]);
								}
							}
							echo template::select('configHomePageId', helper::arrayCollumn($pagesOK, 'title', 'SORT_ASC'), [
							'label' => 'Page d\'accueil',
							'selected' =>$this->getData(['config', 'homePageId'])
						]); ?>

 

 

Yes !

 

Variante : les pages enfants ne sont pas filtrées

							$pages = $this->getData(['page']);
							foreach($pages as $page => $pageId) {
								if ($this->getData(['page',$page,'block']) === 'bar' ||
								$this->getData(['page',$page,'disable']) === true) {
									unset($pages[$page]);
								}
							}
							echo template::select('configHomePageId', helper::arrayCollumn($pages, 'title', 'SORT_ASC'), [

 

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 6 minutes, Fred a dit :

if ($this->getData(['page',$page,'block']) === 'bar' || $this->getData(['page',$page,'disable']) === true) { unset($pages[$page]); }

Si tu passes plusieurs fois par du $this->getData() tu vas exécuter à chaque fois la fonction du core alors que les données sont déjà disponibles dans tes $pageId

je me trompe ?

 

Fini de jouer, je vais reprendre le test de la dev 10 là où je m'étais arrêté.

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 7 minutes, sylvainlelievre a dit :
il y a 18 minutes, Fred a dit :

if ($this->getData(['page',$page,'block']) === 'bar' || $this->getData(['page',$page,'disable']) === true) { unset($pages[$page]); }

Si tu passes plusieurs fois par du $this->getData() tu vas exécuter à chaque fois la fonction du core alors que les données sont déjà disponibles dans tes $pageId

je me trompe ?

En effet, l'idée de récupérer le liste des pages puis de lire les données non pas en ram mais celles sur le disque. De plus on utilise l'interface standard d'accès aux données ce qui est plus lisible que de lire un tableau abstrait.

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 13 minutes, Fred a dit :

l'idée de récupérer le liste des pages puis de lire les données non pas en ram mais celles sur le disque

Je comprends :

getData() avec la class Jsondb : accès disque

Exploitation des données $pageId (dans ta version) : lecture Ram

Conclusion :

$this->getData() à utiliser avec modération

Partager ce message


Lien à poster
Partager sur d’autres sites

@Fred,

reprise des essais avec la dernière version 10.0.013

 

Exportation des données (site assez complexe) : OK le Zip intègre bien les bons json avec dedans les bonnes données.

 

Création d'un nouveau site 10.0.013 avec exemple de site (par défaut)

 

Importation du Zip précédent, message : "Sauvegarde importée avec succès" mais le site reste inchangé l'importation n'a pas fonctionné.

 

(En examinant les data/json on remarque qu'ils sont bien inchangés).

 

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a une heure, sylvainlelievre a dit :

Je comprends :

getData() avec la class Jsondb : accès disque

Exploitation des données $pageId (dans ta version) : lecture Ram

Conclusion :

$this->getData() à utiliser avec modération

Au contraire 😉

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 55 minutes, sylvainlelievre a dit :

 

Importation du Zip précédent, message : "Sauvegarde importée avec succès" mais le site reste inchangé l'importation n'a pas fonctionné.

Quelle est la version du Zwii du site d'origine ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Import d'une 9.3 (je devais être le seul avec cette version) dans une 10.0.014.dev, les 2 fichiers du dossier fr sont vides ainsi que user.json, après leur remplacement par ceux du backup tout fonctionne impec 😉

Il reste des  <div class="notranslate"> désormais inutiles dans

./module/config/view/manage/manage.php
./module/config/view/index/index.php

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 3 minutes, Gilux a dit :

Import d'une 9.3 (je devais être le seul avec cette version) dans une 10.0.014.dev, les 2 fichiers du dossier fr sont vides ainsi que user.json, après leur remplacement par ceux du backup tout fonctionne impec 😉

Oui lol !
 

 

il y a 3 minutes, Gilux a dit :

Il reste des  <div class="notranslate"> désormais inutiles dans

./module/config/view/manage/manage.php
./module/config/view/index/index.php

Un merge foireux

 

Il y a des bugs :

  • dans la 9.2.15, l'archive de sauvegarde ne s'ouvre pas comme un zip.
  • dans la 9.2.15 j'ai un doute sur l'actualisation du paf qui permet de restaurer les chemins des ressources.
  • dans la 10, l'archive ne prend pas en compte les fichiers du site (file) seulement les données (data).

L'archivage auto quant à lui ne copie que data sans file.

 

Fixes in progress.

  • Merci 1

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 33 minutes, Fred a dit :

Au contraire 😉

Bon je vais revoir ça, mais je pensais voir des accès disques dans la class JsonDb...

 

il y a 33 minutes, Fred a dit :

Quelle est la version du Zwii du site d'origine ?

cette version 10.0.013

J'avais créé le site sous 10.0.013, exporter les data

Supprimer ce site 10.0.013

Création à nouveau d'un site 10.0.013

Importation du zip, et là ça n'a pas fonctionné comme décrit plus haut

 

Partager ce message


Lien à poster
Partager sur d’autres sites
à l’instant, sylvainlelievre a dit :

Bon je vais revoir ça, mais je pensais voir des accès disques dans la class JsonDb...

Oui tu as les accès disques, cette classe est utilisée par getData, setData et deleteDate, elle n'est pas appelée directement.

 

il y a 1 minute, sylvainlelievre a dit :

J'avais créé le site sous 10.0.013, exporter les data

Supprimer ce site 10.0.013

Création à nouveau d'un site 10.0.013

Importation du zip, et là ça n'a pas fonctionné comme décrit plus haut

Je vais contrôler ça après avoir quelques modifs.

Partager ce message


Lien à poster
Partager sur d’autres sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.


  • Contenu similaire

    • Par Fred
      Installation :
       
      Comme pour une version standard, recopiez le contenu de l'archive.
       
      Mise à jour  d'une version 9 :
       
      Effectuez une copie de sauvegarde du dossier site/
      Copiez le contenu de l'archive sauf le dossier site/
      Les données sont mises à jour et les anciens fichiers de données dans site/data/ renommés en imported_
       
      Mise à jour  d'une version 8 :
       
      Version non prise en charge, installez une version 9, puis effectuez la mise à jour comme indiqué ci-dessus
       
      Fonctions à découvrir :
       
      Multilinguisme,
      L'interface utilisateur peut être traduite dans une langue étrangère. L'administration n'est pas traduite, fonctionnalité à venir. Il est possible d'ajouter de nouvelles langues, cf tutoriel à venir. Une traduction automatique optionnelle peut-être effectuée par Google Translate (fonctionnalité à confirmer en attente d'une coupure éventuelle des clés d'API le 5/12/19). La sélection de la langue s'effectue : automatiquement : un allemand aura un site en allemand si vous proposez une traduction. en cliquant sur le drapeau dans la barre de menu. Gestion des données ,
      Sécurité des données, ZwiiCMS est plus résistant aux erreurs d'écriture, les données sont lues et écrites à la demande et à la volée. ZwiiCMS est bien plus performante que dans la version 9, quelque soit le volume du site, les temps de réponse sont instantanés (selon la charge réseau). ZwiiCMS fonctionne désormais derrière un proxy. ZwiiCMS a la capacité de récupérer une sauvegarde et de transposer les URLs des ressources ce qui facilite la migration d'une arborescence à une autre. Modifications esthétiques,
      Le titre du site peut être affiché en mode petit écran. Écran Configuration remanié, Nouvel écran de gestion des sauvegardes. Lors de l'import d'une version  sauvegardée, une option permet de conserver la base des utilisateurs.  
       
      Afin de vous assurer de disposer de la toute dernière version, merci de télécharger l'archive directement sur l'outil de gestion de version :
       
      Github branche v10
       
       
       
       
    • Par Fred
      Bonsoir,
       
      J'ai testé favicon-switcher sans pouvoir activer le mode sombre qui va bien sur Firefox pour faire un test, il faut peut-être que celui-ci soit activé au niveau de l'OS.
      Pour une installation de test, c'est très simple, il suffit d'éditer core.php et de modifier la fonction showfavicon avec le script fourni en exemple :
      <link rel="icon" media="(prefers-color-scheme:dark)" href="favicon-dark.png" type="image/png" /> <link rel="icon" media="(prefers-color-scheme:light)" href="favicon-light.png" type="image/png" /> <script src="https://unpkg.com/favicon-switcher@1.2.0/dist/index.js" crossorigin="anonymous" type="application/javascript"></script>  
      Evidemment, il faut créer deux images avec les noms et formats corrects.
       
      Si vous arrivez à le faire fonctionner, je ferai un intégration avec une modification du l'écran config pour le choix de la seconde favicon.
       
      @roger, tu devrais retester la méta image, elle est bien générée. En ce qui concerne le JS dans RFM, il est traité comme un fichier éditable selon config.php c'est sûrement pourquoi l'extension est renommée. Ensuite si tu veux le charger, proprement, il existe le dossier vendor qui permet cela, regarde vendor/imagemap pour voir comment ça marche (et la variable $output de core.php)
       
×
×
  • Créer...