Merge branch '10500' into extensions
This commit is contained in:
commit
e5b1165333
11
CHANGES.md
11
CHANGES.md
@ -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
|
||||||
|
@ -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.
|
||||||
|
|
||||||
|
@ -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,11 +53,18 @@ 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')){
|
||||||
$handle = fopen ($url, "r");
|
$handle = fopen ($url, "r");
|
||||||
$url_get_contents_data = stream_get_contents($handle);
|
$url_get_contents_data = stream_get_contents($handle);
|
||||||
}else{
|
}else{
|
||||||
$url_get_contents_data = false;
|
$url_get_contents_data = false;
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
*/
|
*/
|
||||||
|
@ -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]);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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.');
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -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();
|
||||||
|
@ -53,8 +53,8 @@
|
|||||||
<?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>' ;
|
||||||
?>
|
?>
|
||||||
</a>
|
</a>
|
||||||
@ -62,4 +62,4 @@
|
|||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<?php echo template::speech('Aucun article.'); ?>
|
<?php echo template::speech('Aucun article.'); ?>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
Loading…
Reference in New Issue
Block a user