Merge branch '10500' into extensions

This commit is contained in:
Fred Tempez 2021-03-15 16:41:10 +01:00
commit e5b1165333
10 changed files with 83 additions and 93 deletions

View File

@ -1,9 +1,20 @@
# Changelog # Changelog
## version 10.5.00 ## version 10.5.00
A partir de cette version, les version de php inférieures à 7.2 ne sont plus supportées.
- Corrections :
- SiteMapGenerator 4.3.1
- La classe SiteMapGenerator prend en charge la création/modification du fichier robots.txt
- Si un proxy est défini le sitemap n'est pas soumis aux moteurs de recherche afin d'éviter un timeout trop important.
- Modifications : - Modifications :
- Gestion des modules dans l'interface d'administration. - Gestion des modules dans l'interface d'administration.
## version 10.4.06
- Mise à jour :
- Annulation de la mise à jour SiteMapGenerator 4.3.1 et réinstallation de la version initiale.
- Modification :
- Méthode Curl pour la lecture de données par Url.
## version 10.4.05 ## version 10.4.05
- Mise à jour : - Mise à jour :
- SiteMapGenerator 4.3.1 - SiteMapGenerator 4.3.1

View File

@ -1,5 +1,5 @@
# ZwiiCMS 10.4.05 # ZwiiCMS 10.5.00
Zwii est un CMS sans base de données (flat-file) qui permet de créer et gérer facilement un site web sans aucune connaissance en programmation. Zwii est un CMS sans base de données (flat-file) qui permet de créer et gérer facilement un site web sans aucune connaissance en programmation.
@ -9,12 +9,12 @@ ZwiiCMS a été créé par un développeur de talent, [Rémi Jean](https://remij
## Configuration recommandée ## Configuration recommandée
* PHP 5.6 ou plus * PHP 7.2 ou plus
* Support de .htaccess * Support de .htaccess
## Téléchargement de ZwiICMS ## Téléchargement de ZwiiCMS
Pour télécharger la dernière version publiée, il faut vous rendre sur la page de téléchargemet du [site](https://zwiicms.fr/telechargements) Pour télécharger la dernière version publiée, il faut vous rendre sur la page de téléchargement du [site](https://zwiicms.fr/telechargements)
La version github est une **version de développement** qui peut encore contenir des bugs mais elle vous permet de tester les dernières nouveautés. Cette version n'est pas recommandée en production. La version github est une **version de développement** qui peut encore contenir des bugs mais elle vous permet de tester les dernières nouveautés. Cette version n'est pas recommandée en production.

View File

@ -40,7 +40,7 @@ class helper {
} }
/** /**
* Fonction pour récupérer le numéro de version en ligne * Fonction pour récupérer le numéro de version en ligne et le catalogue des modules
* @param string $url à récupérer * @param string $url à récupérer
* @return mixed données récupérées * @return mixed données récupérées
*/ */
@ -53,6 +53,13 @@ class helper {
if(function_exists('file_get_contents') && if(function_exists('file_get_contents') &&
ini_get('allow_url_fopen') ){ ini_get('allow_url_fopen') ){
$url_get_contents_data = @file_get_contents($url); // Masque un warning éventuel $url_get_contents_data = @file_get_contents($url); // Masque un warning éventuel
}elseif(function_exists('curl_version')){
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
$url_get_contents_data = curl_exec($ch);
curl_close($ch);
}elseif(function_exists('fopen') && }elseif(function_exists('fopen') &&
function_exists('stream_get_contents') && function_exists('stream_get_contents') &&
ini_get('allow_url_fopen')){ ini_get('allow_url_fopen')){

View File

@ -474,6 +474,20 @@ $(document).ready(function(){
}; };
}); });
/**
* Active le système d'aide interne
*
*/
$(".helpDisplayButton").on({
mouseenter: function () {
$(".helpDisplayContent").slideDown();
},
mouseleave: function () {
$(".helpDisplayContent").slideUp();
}
});
/** /**
* Remove ID Facebook from URL * Remove ID Facebook from URL
*/ */

View File

@ -695,37 +695,6 @@ class common {
return ($folder); return ($folder);
} }
/**
* Génère un fichier robots.txt à l'installation
* Si le fichier existe déjà les commandes sont ajoutées
*/
public function createRobots() {
$robotValue =
PHP_EOL .
'# ZWII CONFIG ---------' . PHP_EOL .
'User-agent: *' . PHP_EOL .
'Allow: /site/file/' .PHP_EOL .
'Disallow: /site/' .PHP_EOL .
'Sitemap: ' . helper::baseUrl(false) . 'sitemap.xml' . PHP_EOL .
'Sitemap: ' . helper::baseUrl(false) . 'sitemap.xml.gz' . PHP_EOL .
'# ZWII CONFIG ---------' . PHP_EOL ;
if (file_exists('robots.txt')) {
return(file_put_contents(
'robots.txt',
$robotValue,
FILE_APPEND
));
} else {
// Sinon on crée un fichier
return(file_put_contents(
'robots.txt',
$robotValue
));
}
}
/** /**
* Génère un fichier un fichier sitemap.xml * Génère un fichier un fichier sitemap.xml
@ -740,9 +709,7 @@ class common {
//require_once "core/vendor/sitemap/SitemapGenerator.php"; //require_once "core/vendor/sitemap/SitemapGenerator.php";
$timezone = $this->getData(['config','timezone']); $timezone = $this->getData(['config','timezone']);
$outputDir = getcwd(); $outputDir = getcwd();
$sitemap = new \Icamys\SitemapGenerator\SitemapGenerator(helper::baseurl(false),$outputDir); $sitemap = new \Icamys\SitemapGenerator\SitemapGenerator(helper::baseurl(false),$outputDir);
// will create also compressed (gzipped) sitemap // will create also compressed (gzipped) sitemap
@ -753,10 +720,11 @@ class common {
$sitemap->setMaxUrlsPerSitemap(50000); $sitemap->setMaxUrlsPerSitemap(50000);
// sitemap file name // sitemap file name
$sitemap->setSitemapFileName("sitemap.xml"); $sitemap->setSitemapFileName( 'sitemap.xml') ;
// Set the sitemap index file name // Set the sitemap index file name
$sitemap->setSitemapIndexFileName("sitemap-index.xml"); $sitemap->setSitemapIndexFileName( 'sitemap-index.xml');
$datetime = new DateTime(date('c')); $datetime = new DateTime(date('c'));
$datetime->format(DateTime::ATOM); // Updated ISO8601 $datetime->format(DateTime::ATOM); // Updated ISO8601
@ -812,9 +780,11 @@ class common {
$sitemap->updateRobots(); $sitemap->updateRobots();
// Submit your sitemaps to Google, Yahoo, Bing and Ask.com // Submit your sitemaps to Google, Yahoo, Bing and Ask.com
//$sitemap->submitSitemap(); if (empty ($this->getData(['config','proxyType']) . $this->getData(['config','proxyUrl']) . ':' . $this->getData(['config','proxyPort'])) ) {
$sitemap->submitSitemap();
}
return(file_exists('sitemap.xml')); return(file_exists('sitemap.xml') && file_exists('robots.txt'));
} }
@ -1611,6 +1581,30 @@ class common {
if ($this->getData(['core', 'dataVersion']) < 10405) { if ($this->getData(['core', 'dataVersion']) < 10405) {
$this->setData(['core', 'dataVersion', 10405]); $this->setData(['core', 'dataVersion', 10405]);
} }
// Version 11.0.00
if ($this->getData(['core', 'dataVersion']) < 11000) {
// Option de déconnexion auto activée
$this->setData(['config','autoDisconnect',true]);
// Mettre à jour les données de langue
$this->setData(['config','translate','scriptGoogle', false ]);
$this->setData(['config','translate','showCredits', false ]);
$this->setData(['config','translate','autoDetect', false ]);
$this->setData(['config','translate','admin', false ]);
$this->setData(['config','translate','fr', false ]);
$this->setData(['config','translate','de', false ]);
$this->setData(['config','translate','en', false ]);
$this->setData(['config','translate','es', false ]);
$this->setData(['config','translate','it', false ]);
$this->setData(['config','translate','nl', false ]);
$this->setData(['config','translate','pt', false ]);
$this->setData(['core', 'dataVersion', 11000]);
}
} }
} }

View File

@ -20,7 +20,6 @@ class config extends common {
'backup' => self::GROUP_ADMIN, 'backup' => self::GROUP_ADMIN,
'configMetaImage' => self::GROUP_ADMIN, 'configMetaImage' => self::GROUP_ADMIN,
'generateFiles' => self::GROUP_ADMIN, 'generateFiles' => self::GROUP_ADMIN,
'updateRobots' => self::GROUP_ADMIN,
'index' => self::GROUP_ADMIN, 'index' => self::GROUP_ADMIN,
'advanced' => self::GROUP_ADMIN, 'advanced' => self::GROUP_ADMIN,
'manage' => self::GROUP_ADMIN, 'manage' => self::GROUP_ADMIN,
@ -187,55 +186,22 @@ class config extends common {
/** /**
* Génére les fichiers pour les crawlers * Génére les fichiers pour les crawlers
* Sitemap compressé et non compressé
* Robots.txt
*/ */
public function generateFiles() { public function generateFiles() {
// Mettre à jour le site map // Mettre à jour le site map
$successSitemap=$this->createSitemap(); $successSitemap=$this->createSitemap();
// Créer un fichier robots.txt
$successRobots=$this->updateRobots();
if ( $successSitemap === true &&
$successRobots >= 100) {
$success = true;
} else {
$success = false;
}
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'notification' => ($successSitemap === true && $successRobots >= 100) ? 'Création réussie' : 'Echec d\'écriture', 'notification' => $successSitemap ? 'Le sitemap a été mis à jour' : 'Echec d\'écriture, le site map n\'a pas été mis à jour',
'redirect' => helper::baseUrl() . 'config/advanced', 'redirect' => helper::baseUrl() . 'config/advanced',
'state' => ($successSitemap === true && $successRobots >=100) ? true : false 'state' => $successSitemap
]); ]);
} }
/**
* Met à jour un fichier robots.txt lors du changement de réécriture
*/
private function updateRobots() {
// Créer le fichier robot si absent
if (!file_exists('robots.txt')) {
$this->createRobots();
}
// backup
rename ('robots.txt','robots.bak');
$fileold = fopen('robots.bak','r');
$filenew = fopen('robots.txt','w');
while(!feof($fileold)) {
$data = fgets($fileold);
if (strpos($data,'sitemap.xml') == 0) {
fwrite($filenew, $data);
} else {
fwrite($filenew, 'Sitemap: ' . helper::baseUrl(false) . 'sitemap.xml' . PHP_EOL);
fwrite($filenew, 'Sitemap: ' . helper::baseUrl(false) . 'sitemap.xml.gz' . PHP_EOL);
fwrite($filenew, '# ZWII CONFIG ---------' . PHP_EOL);
break;
}
}
fclose($fileold);
unlink('robots.bak');
return(fclose($filenew));
}
/** /**
* Sauvegarde des données * Sauvegarde des données

View File

@ -103,8 +103,6 @@ class install extends common {
} }
// Stocker le dossier d'installation // Stocker le dossier d'installation
$this->setData(['core', 'baseUrl', helper::baseUrl(false,false) ]); $this->setData(['core', 'baseUrl', helper::baseUrl(false,false) ]);
// Générer un fichier robots.txt
$this->createRobots();
// Créer sitemap // Créer sitemap
$this->createSitemap(); $this->createSitemap();
// Valeurs en sortie // Valeurs en sortie

View File

@ -22,8 +22,8 @@ session_start();
/** /**
* Vérification de la version de PHP * Vérification de la version de PHP
*/ */
if(version_compare(PHP_VERSION, '5.6.0', '<')) { if(version_compare(PHP_VERSION, '7.2.0', '<')) {
exit('PHP 5.6+ required.'); exit('PHP 7.2+ required.');
} }
/* /*

View File

@ -99,10 +99,10 @@ class blog extends common {
*/ */
public function rss() { public function rss() {
// Inclure les classes // Inclure les classes
include_once 'module/news/vendor/FeedWriter/Item.php'; include_once 'module/blog/vendor/FeedWriter/Item.php';
include_once 'module/news/vendor/FeedWriter/Feed.php'; include_once 'module/blog/vendor/FeedWriter/Feed.php';
include_once 'module/news/vendor/FeedWriter/RSS2.php'; include_once 'module/blog/vendor/FeedWriter/RSS2.php';
include_once 'module/news/vendor/FeedWriter/InvalidOperationException.php'; include_once 'module/blog/vendor/FeedWriter/InvalidOperationException.php';
date_default_timezone_set('UTC'); date_default_timezone_set('UTC');
$feeds = new \FeedWriter\RSS2(); $feeds = new \FeedWriter\RSS2();

View File

@ -53,7 +53,7 @@
<?php if ($this->getData(['module',$this->getUrl(0), 'config', 'feeds'])): ?> <?php if ($this->getData(['module',$this->getUrl(0), 'config', 'feeds'])): ?>
<div id="rssFeed"> <div id="rssFeed">
<a type="application/rss+xml" href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/rss'; ?> "> <a type="application/rss+xml" href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/rss'; ?> ">
<img src='module/news/ressource/feed-icon-16.gif' /> <img src='module/blog/ressource/feed-icon-16.gif' />
<?php <?php
echo '<p>' . $this->getData(['module',$this->getUrl(0), 'config', 'feedsLabel']) . '</p>' ; echo '<p>' . $this->getData(['module',$this->getUrl(0), 'config', 'feedsLabel']) . '</p>' ;
?> ?>