10.2 API imagetag

This commit is contained in:
Fred Tempez 2020-05-25 11:58:54 +02:00
parent 098eca657f
commit d75ec190b5
4 changed files with 122 additions and 121 deletions

View File

@ -5,9 +5,10 @@
- Gestion des accès concurrents : - Gestion des accès concurrents :
- deux utilisateurs ne peuvent accèder en modification à la même page du site ou de configuration - deux utilisateurs ne peuvent accèder en modification à la même page du site ou de configuration
- la connexion d'un utilisateur sur un autre poste ou navigateur déconnecte la session précédente. - la connexion d'un utilisateur sur un autre poste ou navigateur déconnecte la session précédente.
- Modifications : - Modifications :
- Thème, les sélecteurs de couleur affiche la valeur RGBa d'une couleur différente de celle de la sélection. - Thème, les sélecteurs de couleur affiche la valeur RGBa d'une couleur différente de celle de la sélection.
- Thème de l'administration, amélioration du rendu. - Thème de l'administration, amélioration du rendu.
- Image tag : modification de l'API Google.
## version 10.1.000 ## version 10.1.000
- Nouveautés : - Nouveautés :

View File

@ -357,7 +357,7 @@ class common {
* En local, copie du site décran de ZwiiCMS * En local, copie du site décran de ZwiiCMS
*/ */
public function makeImageTag () { public function makeImageTag () {
if (!file_exists(self::FILE_DIR.'source/screenshot.png')) if (!file_exists(self::FILE_DIR.'source/screenshot.jpg'))
{ {
if ( strpos(helper::baseUrl(false),'localhost') == 0 AND strpos(helper::baseUrl(false),'127.0.0.1') == 0) { if ( strpos(helper::baseUrl(false),'localhost') == 0 AND strpos(helper::baseUrl(false),'127.0.0.1') == 0) {
$googlePagespeedData = helper::urlGetContents('https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url='. helper::baseUrl(false) .'&screenshot=true'); $googlePagespeedData = helper::urlGetContents('https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url='. helper::baseUrl(false) .'&screenshot=true');
@ -367,7 +367,7 @@ class common {
$screenshot = str_replace(array('_','-'),array('/','+'),$screenshot); $screenshot = str_replace(array('_','-'),array('/','+'),$screenshot);
$data = 'data:image/jpeg;base64,'.$screenshot; $data = 'data:image/jpeg;base64,'.$screenshot;
$data = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data)); $data = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data));
file_put_contents( self::FILE_DIR.'source/screenshot.png',$data); file_put_contents( self::FILE_DIR.'source/screenshot.jpg',$data);
} }
} }
} }
@ -2424,7 +2424,7 @@ class layout extends common {
* Affiche la meta image (site screenshot) * Affiche la meta image (site screenshot)
*/ */
public function showMetaImage() { public function showMetaImage() {
echo '<meta property="og:image" content="' . helper::baseUrl() .self::FILE_DIR.'source/screenshot.png" />'; echo '<meta property="og:image" content="' . helper::baseUrl() .self::FILE_DIR.'source/screenshot.jpg" />';
} }

View File

@ -26,7 +26,7 @@ class config extends common {
'updateBaseUrl' => self::GROUP_ADMIN, 'updateBaseUrl' => self::GROUP_ADMIN,
'script' => self::GROUP_ADMIN 'script' => self::GROUP_ADMIN
]; ];
public static $timezones = [ public static $timezones = [
'Pacific/Midway' => '(GMT-11:00) Midway Island', 'Pacific/Midway' => '(GMT-11:00) Midway Island',
'US/Samoa' => '(GMT-11:00) Samoa', 'US/Samoa' => '(GMT-11:00) Samoa',
@ -147,7 +147,7 @@ class config extends common {
5 => '5 articles', 5 => '5 articles',
10 => '10 articles', 10 => '10 articles',
15 => '15 articles', 15 => '15 articles',
20 => '20 articles' 20 => '20 articles'
]; ];
// Type de proxy // Type de proxy
public static $proxyType = [ public static $proxyType = [
@ -187,7 +187,7 @@ class config extends common {
} }
/** /**
* Met à jour un fichier robots.txt lors du changement de réécriture * Met à jour un fichier robots.txt lors du changement de réécriture
*/ */
public function updateRobots() { public function updateRobots() {
@ -199,7 +199,7 @@ class config extends common {
rename ('robots.txt','robots.bak'); rename ('robots.txt','robots.bak');
$fileold = fopen('robots.bak','r'); $fileold = fopen('robots.bak','r');
$filenew = fopen('robots.txt','w'); $filenew = fopen('robots.txt','w');
while(!feof($fileold)) { while(!feof($fileold)) {
$data = fgets($fileold); $data = fgets($fileold);
if (strpos($data,'sitemap.xml') == 0) { if (strpos($data,'sitemap.xml') == 0) {
fwrite($filenew, $data); fwrite($filenew, $data);
@ -221,11 +221,11 @@ class config extends common {
public function backup() { public function backup() {
// Soumission du formulaire // Soumission du formulaire
if($this->isPost()) { if($this->isPost()) {
// Creation du ZIP // Creation du ZIP
$filter = $this->getInput('configBackupOption',helper::FILTER_BOOLEAN) === true ? ['backup','tmp'] : ['backup','tmp','file']; $filter = $this->getInput('configBackupOption',helper::FILTER_BOOLEAN) === true ? ['backup','tmp'] : ['backup','tmp','file'];
$fileName = helper::autoBackup(self::TEMP_DIR,$filter); $fileName = helper::autoBackup(self::TEMP_DIR,$filter);
// Téléchargement du ZIP // Téléchargement du ZIP
header('Content-Type: application/zip'); header('Content-Type: application/zip');
header('Content-Disposition: attachment; filename="' . $fileName . '"'); header('Content-Disposition: attachment; filename="' . $fileName . '"');
header('Content-Length: ' . filesize(self::TEMP_DIR . $fileName)); header('Content-Length: ' . filesize(self::TEMP_DIR . $fileName));
@ -249,18 +249,18 @@ class config extends common {
* https://www.codexworld.com/capture-screenshot-website-url-php-google-api/ * https://www.codexworld.com/capture-screenshot-website-url-php-google-api/
*/ */
public function configMetaImage() { public function configMetaImage() {
// fonction désactivée pour un site local // fonction désactivée pour un site local
if ( strpos(helper::baseUrl(false),'localhost') > 0 OR strpos(helper::baseUrl(false),'127.0.0.1') > 0) { if ( strpos(helper::baseUrl(false),'localhost') > 0 OR strpos(helper::baseUrl(false),'127.0.0.1') > 0) {
$site = 'https://zwiicms.com/'; } else { $site = 'https://zwiicms.com/'; } else {
$site = helper::baseUrl(false); } $site = helper::baseUrl(false); }
$success= false; $success= false;
$googlePagespeedData = helper::urlGetContents('https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url='. $site .'&screenshot=true'); $googlePagespeedData = helper::urlGetContents('https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url='. $site .'&screenshot=true');
if ($googlePagespeedData !== false) { if ($googlePagespeedData !== false) {
$googlePagespeedData = json_decode($googlePagespeedData, true); $googlePagespeedData = json_decode($googlePagespeedData, true);
$data = str_replace('_','/',$googlePagespeedData['lighthouseResult']['audits']['final-screenshot']['details']['data']); $data = str_replace('_','/',$googlePagespeedData['lighthouseResult']['audits']['final-screenshot']['details']['data']);
$data = str_replace('-','+',$data); $data = str_replace('-','+',$data);
$img = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data)); $img = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data));
// Effacer la miniature // Effacer la miniature
if (file_exists(self::FILE_DIR.'thumb/screenshot.jpg')) { if (file_exists(self::FILE_DIR.'thumb/screenshot.jpg')) {
unlink (self::FILE_DIR.'thumb/screenshot.jpg'); unlink (self::FILE_DIR.'thumb/screenshot.jpg');
@ -274,7 +274,7 @@ class config extends common {
'redirect' => helper::baseUrl() . 'config', 'redirect' => helper::baseUrl() . 'config',
'state' => $success 'state' => $success
]); ]);
} }
/** /**
* Procédure d'importation * Procédure d'importation
@ -296,7 +296,7 @@ class config extends common {
]); ]);
} }
$successOpen = $zip->open(self::FILE_DIR . 'source/' . $fileZip); $successOpen = $zip->open(self::FILE_DIR . 'source/' . $fileZip);
if ($successOpen === FALSE) { if ($successOpen === FALSE) {
// Valeurs en sortie erreur // Valeurs en sortie erreur
$this->addOutput([ $this->addOutput([
'notification' => 'Impossible de lire l\'archive', 'notification' => 'Impossible de lire l\'archive',
@ -305,29 +305,29 @@ class config extends common {
]); ]);
} }
// Lire le contenu de l'archive dans le tableau files // Lire le contenu de l'archive dans le tableau files
for( $i = 0; $i < $zip->numFiles; $i++ ){ for( $i = 0; $i < $zip->numFiles; $i++ ){
$stat = $zip->statIndex( $i ); $stat = $zip->statIndex( $i );
$files [] = ( basename( $stat['name'] )); $files [] = ( basename( $stat['name'] ));
} }
// Détermination de la version à installer // Détermination de la version à installer
if (in_array('theme.json',$files) === true && if (in_array('theme.json',$files) === true &&
in_array('core.json',$files) === true && in_array('core.json',$files) === true &&
in_array ('user.json', $files) === false ) { in_array ('user.json', $files) === false ) {
// V9 pas de fichier user dans l'archive // V9 pas de fichier user dans l'archive
// Stocker le choix de conserver les users installées // Stocker le choix de conserver les users installées
$version = '9'; $version = '9';
} elseif (in_array('theme.json',$files) === true && } elseif (in_array('theme.json',$files) === true &&
in_array('core.json',$files) === true && in_array('core.json',$files) === true &&
in_array ('user.json', $files) === true && in_array ('user.json', $files) === true &&
in_array ('config.json', $files) === true ) { in_array ('config.json', $files) === true ) {
// V10 valide // V10 valide
$version = '10'; $version = '10';
// Option active, les users sont stockées // Option active, les users sont stockées
if ($this->getInput('configManageImportUser', helper::FILTER_BOOLEAN) === true ) { if ($this->getInput('configManageImportUser', helper::FILTER_BOOLEAN) === true ) {
$users = $this->getData(['user']); $users = $this->getData(['user']);
} }
} else { // Version invalide } else { // Version invalide
// Valeurs en sortie erreur // Valeurs en sortie erreur
$this->addOutput([ $this->addOutput([
@ -343,35 +343,35 @@ class config extends common {
$_SESSION['KEEP_USERS'] = $this->getInput('configManageImportUser', helper::FILTER_BOOLEAN); $_SESSION['KEEP_USERS'] = $this->getInput('configManageImportUser', helper::FILTER_BOOLEAN);
} }
// Extraire le zip ou 'site/' // Extraire le zip ou 'site/'
$success = $zip->extractTo( 'site/' ); $success = $zip->extractTo( 'site/' );
// Fermer l'archive // Fermer l'archive
$zip->close(); $zip->close();
// Restaurer les users originaux d'une v10 si option cochée // Restaurer les users originaux d'une v10 si option cochée
if (!empty($users) && if (!empty($users) &&
$version === '10' && $version === '10' &&
$this->getInput('configManageImportUser', helper::FILTER_BOOLEAN) === true) { $this->getInput('configManageImportUser', helper::FILTER_BOOLEAN) === true) {
$this->setData(['user',$users]); $this->setData(['user',$users]);
} }
/* /*
if ($version === '9' ) { if ($version === '9' ) {
$this->importData($this->getInput('configManageImportUser', helper::FILTER_BOOLEAN)); $this->importData($this->getInput('configManageImportUser', helper::FILTER_BOOLEAN));
$this->setData(['core','dataVersion',0]); $this->setData(['core','dataVersion',0]);
}*/ }*/
// Met à jours les URL dans les contenus de page // Met à jours les URL dans les contenus de page
// Message de notification // Message de notification
$notification = $success === true ? 'Restauration réalisée avec succès' : 'Erreur inconnue'; $notification = $success === true ? 'Restauration réalisée avec succès' : 'Erreur inconnue';
$redirect = $this->getInput('configManageImportUser', helper::FILTER_BOOLEAN) === true ? helper::baseUrl() . 'config/manage' : helper::baseUrl() . 'user/login/'; $redirect = $this->getInput('configManageImportUser', helper::FILTER_BOOLEAN) === true ? helper::baseUrl() . 'config/manage' : helper::baseUrl() . 'user/login/';
// Valeurs en sortie erreur // Valeurs en sortie erreur
$this->addOutput([ $this->addOutput([
'notification' => $notification, 'notification' => $notification,
'redirect' =>$redirect, 'redirect' =>$redirect,
'state' => $success 'state' => $success
]); ]);
} }
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'title' => 'Restaurer', 'title' => 'Restaurer',
@ -421,9 +421,9 @@ class config extends common {
'timezone' => $this->getInput('configTimezone', helper::FILTER_STRING_SHORT, true), 'timezone' => $this->getInput('configTimezone', helper::FILTER_STRING_SHORT, true),
'itemsperPage' => $this->getInput('configItemsperPage', helper::FILTER_INT,true), 'itemsperPage' => $this->getInput('configItemsperPage', helper::FILTER_INT,true),
'legalPageId' => $this->getInput('configLegalPageId'), 'legalPageId' => $this->getInput('configLegalPageId'),
'metaDescription' => $this->getInput('configMetaDescription', helper::FILTER_STRING_LONG, true), 'metaDescription' => $this->getInput('configMetaDescription', helper::FILTER_STRING_LONG, true),
'title' => $this->getInput('configTitle', helper::FILTER_STRING_SHORT, true), 'title' => $this->getInput('configTitle', helper::FILTER_STRING_SHORT, true),
'autoUpdate' => helper::urlGetContents('http://zwiicms.com/update/' . common::ZWII_UPDATE_CHANNEL . '/version') === false 'autoUpdate' => helper::urlGetContents('http://zwiicms.com/update/' . common::ZWII_UPDATE_CHANNEL . '/version') === false
? false ? false
: $this->getInput('configAutoUpdate', helper::FILTER_BOOLEAN), : $this->getInput('configAutoUpdate', helper::FILTER_BOOLEAN),
'proxyType' => $this->getInput('configProxyType'), 'proxyType' => $this->getInput('configProxyType'),
@ -488,8 +488,8 @@ class config extends common {
'state' => true 'state' => true
]); ]);
} }
// Initialisation du screen // Initialisation du screen
if (!file_exists(self::FILE_DIR.'source/screenshot.png')) { if (!file_exists(self::FILE_DIR.'source/screenshot.jpg')) {
$this->configMetaImage(); $this->configMetaImage();
} }
// Valeurs en sortie // Valeurs en sortie
@ -507,8 +507,8 @@ class config extends common {
file_put_contents(self::DATA_DIR . 'head.inc.html',$this->getInput('configScriptHead',null)); file_put_contents(self::DATA_DIR . 'head.inc.html',$this->getInput('configScriptHead',null));
} }
if ($this->geturl(2) === 'body') { if ($this->geturl(2) === 'body') {
file_put_contents(self::DATA_DIR . 'body.inc.html',$this->getInput('configScriptBody',null)); file_put_contents(self::DATA_DIR . 'body.inc.html',$this->getInput('configScriptBody',null));
} }
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'notification' => 'Modifications enregistrées', 'notification' => 'Modifications enregistrées',
@ -529,17 +529,17 @@ class config extends common {
/** /**
* Met à jour les données de site avec l'adresse trannsmise * Met à jour les données de site avec l'adresse trannsmise
*/ */
public function updateBaseUrl () { public function updateBaseUrl () {
// Supprimer l'information de redirection // Supprimer l'information de redirection
$old = str_replace('?','',$this->getData(['core', 'baseUrl'])); $old = str_replace('?','',$this->getData(['core', 'baseUrl']));
$new = helper::baseUrl(false,false); $new = helper::baseUrl(false,false);
$c3 = 0; $c3 = 0;
$success = false ; $success = false ;
// Boucler sur les pages // Boucler sur les pages
foreach($this->getHierarchy(null,null,null) as $parentId => $childIds) { foreach($this->getHierarchy(null,null,null) as $parentId => $childIds) {
$content = $this->getData(['page',$parentId,'content']); $content = $this->getData(['page',$parentId,'content']);
$replace = str_replace( 'href="' . $old , 'href="'. $new , stripslashes($content),$c1) ; $replace = str_replace( 'href="' . $old , 'href="'. $new , stripslashes($content),$c1) ;
$replace = str_replace( 'src="' . $old , 'src="'. $new , stripslashes($replace),$c2) ; $replace = str_replace( 'src="' . $old , 'src="'. $new , stripslashes($replace),$c2) ;
if ($c1 > 0 || $c2 > 0) { if ($c1 > 0 || $c2 > 0) {
$success = true; $success = true;
@ -548,21 +548,21 @@ class config extends common {
} }
foreach($childIds as $childId) { foreach($childIds as $childId) {
$content = $this->getData(['page',$childId,'content']); $content = $this->getData(['page',$childId,'content']);
$replace = str_replace( 'href="' . $old , 'href="'. $new , stripslashes($content),$c1) ; $replace = str_replace( 'href="' . $old , 'href="'. $new , stripslashes($content),$c1) ;
$replace = str_replace( 'src="' . $old , 'src="'. $new , stripslashes($replace),$c2) ; $replace = str_replace( 'src="' . $old , 'src="'. $new , stripslashes($replace),$c2) ;
if ($c1 > 0 || $c2 > 0) { if ($c1 > 0 || $c2 > 0) {
$success = true; $success = true;
$this->setData(['page',$childId,'content', $replace ]); $this->setData(['page',$childId,'content', $replace ]);
$c3 += $c1 + $c2; $c3 += $c1 + $c2;
} }
} }
} }
// Traiter les modules dont la redirection // Traiter les modules dont la redirection
$content = $this->getdata(['module']); $content = $this->getdata(['module']);
$replace = $this->recursive_array_replace('href="' . $old , 'href="'. $new, $content, $c1); $replace = $this->recursive_array_replace('href="' . $old , 'href="'. $new, $content, $c1);
$replace = $this->recursive_array_replace('src="' . $old , 'src="'. $new, $replace, $c2); $replace = $this->recursive_array_replace('src="' . $old , 'src="'. $new, $replace, $c2);
if ($content !== $replace) { if ($content !== $replace) {
$this->setdata(['module',$replace]); $this->setdata(['module',$replace]);
$c3 += $c1 + $c2; $c3 += $c1 + $c2;
$success = true; $success = true;
} }
@ -584,14 +584,14 @@ class config extends common {
* @param int count nombres d'occurences * @param int count nombres d'occurences
* @return array avec les valeurs remplacées. * @return array avec les valeurs remplacées.
*/ */
private function recursive_array_replace ($find, $replace, $array, &$count) { private function recursive_array_replace ($find, $replace, $array, &$count) {
if (!is_array($array)) { if (!is_array($array)) {
return str_replace($find, $replace, $array, $count); return str_replace($find, $replace, $array, $count);
} }
$newArray = []; $newArray = [];
foreach ($array as $key => $value) { foreach ($array as $key => $value) {
$newArray[$key] = $this->recursive_array_replace($find, $replace, $value,$c); $newArray[$key] = $this->recursive_array_replace($find, $replace, $value,$c);
$count += $c; $count += $c;
} }
return $newArray; return $newArray;

View File

@ -13,7 +13,7 @@
'href' => helper::baseUrl() . 'config/backup', 'href' => helper::baseUrl() . 'config/backup',
'value' => 'Sauvegarder', 'value' => 'Sauvegarder',
'ico' => 'download' 'ico' => 'download'
]); ?> ]); ?>
</div> </div>
<div class="col2"> <div class="col2">
<?php echo template::button('configManageButton', [ <?php echo template::button('configManageButton', [
@ -21,7 +21,7 @@
'value' => 'Restaurer', 'value' => 'Restaurer',
'ico' => 'upload' 'ico' => 'upload'
]); ?> ]); ?>
</div> </div>
<div class="col2"> <div class="col2">
<?php echo template::submit('configSubmit'); ?> <?php echo template::submit('configSubmit'); ?>
</div> </div>
@ -32,7 +32,7 @@
<h4>Informations générales</h4> <h4>Informations générales</h4>
<div class="row"> <div class="row">
<div class="col4"> <div class="col4">
<?php <?php
$pages = $this->getData(['page']); $pages = $this->getData(['page']);
foreach($pages as $page => $pageId) { foreach($pages as $page => $pageId) {
if ($this->getData(['page',$page,'block']) === 'bar' || if ($this->getData(['page',$page,'block']) === 'bar' ||
@ -51,7 +51,7 @@
'value' => $this->getData(['config', 'title']), 'value' => $this->getData(['config', 'title']),
'help' => 'Il apparaît dans la barre de titre et les partages sur les réseaux sociaux.' 'help' => 'Il apparaît dans la barre de titre et les partages sur les réseaux sociaux.'
]); ?> ]); ?>
</div> </div>
</div> </div>
<?php echo template::textarea('configMetaDescription', [ <?php echo template::textarea('configMetaDescription', [
'label' => 'Description du site', 'label' => 'Description du site',
@ -59,7 +59,7 @@
'help' => 'Elle apparaît dans les partages sur les réseaux sociaux.' 'help' => 'Elle apparaît dans les partages sur les réseaux sociaux.'
]); ?> ]); ?>
</div> </div>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col12"> <div class="col12">
@ -100,55 +100,55 @@
'label' => 'Fuseau horaire', 'label' => 'Fuseau horaire',
'selected' => $this->getData(['config', 'timezone']), 'selected' => $this->getData(['config', 'timezone']),
'help' => 'Le fuseau horaire est utile au bon référencement' 'help' => 'Le fuseau horaire est utile au bon référencement'
]); ?> ]); ?>
</div> </div>
<div class="col6"> <div class="col6">
<?php $listePageId = array_merge(['' => 'Sélectionner'] , helper::arrayCollumn($this->getData(['page']), 'title', 'SORT_ASC') ); <?php $listePageId = array_merge(['' => 'Sélectionner'] , helper::arrayCollumn($this->getData(['page']), 'title', 'SORT_ASC') );
?> ?>
<?php echo template::select('configLegalPageId', $listePageId , [ <?php echo template::select('configLegalPageId', $listePageId , [
'label' => 'Mentions légales', 'label' => 'Mentions légales',
'selected' => $this->getData(['config', 'legalPageId']), 'selected' => $this->getData(['config', 'legalPageId']),
'help' => 'Les mentions légales sont obligatoires en France' 'help' => 'Les mentions légales sont obligatoires en France'
]); ?> ]); ?>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col6"> <div class="col6">
<?php echo template::checkbox('configCookieConsent', true, 'Message de consentement aux cookies', [ <?php echo template::checkbox('configCookieConsent', true, 'Message de consentement aux cookies', [
'checked' => $this->getData(['config', 'cookieConsent']) 'checked' => $this->getData(['config', 'cookieConsent'])
]); ?> ]); ?>
</div> </div>
<div class="col6"> <div class="col6">
<?php echo template::checkbox('rewrite', true, 'Réécriture d\'URL', [ <?php echo template::checkbox('rewrite', true, 'Réécriture d\'URL', [
'checked' => helper::checkRewrite(), 'checked' => helper::checkRewrite(),
'help' => 'Vérifiez d\'abord que votre serveur l\'autorise : ce n\'est pas le cas chez Free.' 'help' => 'Vérifiez d\'abord que votre serveur l\'autorise : ce n\'est pas le cas chez Free.'
]); ?> ]); ?>
</div>
</div>
<div class="row">
<div class="col6">
<?php echo template::checkbox('configAutoBackup', true, 'Sauvegarde automatique quotidienne', [
'checked' => $this->getData(['config', 'autoBackup']),
'help' => '<p>Une archive contenant le dossier /site/data est copiée dans le dossier \'site/backup\'. La sauvegarde est conservée pendant 30 jours.</p><p>Les fichiers du site ne sont pas sauvegardés automatiquement.</p>'
]); ?>
</div>
<div class="col6">
<?php echo template::checkbox('configMaintenance', true, 'Site en maintenance', [
'checked' => $this->getData(['config', 'maintenance'])
]); ?>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col3"> <div class="col6">
<?php echo template::checkbox('configAutoBackup', true, 'Sauvegarde automatique quotidienne', [
'checked' => $this->getData(['config', 'autoBackup']),
'help' => '<p>Une archive contenant le dossier /site/data est copiée dans le dossier \'site/backup\'. La sauvegarde est conservée pendant 30 jours.</p><p>Les fichiers du site ne sont pas sauvegardés automatiquement.</p>'
]); ?>
</div>
<div class="col6">
<?php echo template::checkbox('configMaintenance', true, 'Site en maintenance', [
'checked' => $this->getData(['config', 'maintenance'])
]); ?>
</div>
</div>
<div class="row">
<div class="col3">
<?php echo template::checkbox('configAutoUpdate', true, 'Mise à jour automatique', [ <?php echo template::checkbox('configAutoUpdate', true, 'Mise à jour automatique', [
'checked' => $this->getData(['config', 'autoUpdate']), 'checked' => $this->getData(['config', 'autoUpdate']),
'help' => 'Vérifie une fois par jour l\'existence d\'une mise à jour.', 'help' => 'Vérifie une fois par jour l\'existence d\'une mise à jour.',
'disabled' => !$error 'disabled' => !$error
]); ?> ]); ?>
</div> </div>
<div class="col3"> <div class="col3">
<?php echo template::button('configUpdateForced', [ <?php echo template::button('configUpdateForced', [
'class' => 'buttonRed', 'class' => 'buttonRed',
'ico' => 'download-cloud', 'ico' => 'download-cloud',
'href' => helper::baseUrl() . 'install/update', 'href' => helper::baseUrl() . 'install/update',
'value' => 'Mise à jour manuelle', 'value' => 'Mise à jour manuelle',
@ -156,7 +156,7 @@
]); ?> ]); ?>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
@ -171,14 +171,14 @@
'value' => $this->getData(['config', 'social', 'facebookId']) 'value' => $this->getData(['config', 'social', 'facebookId'])
]); ?> ]); ?>
</div> </div>
<div class="col6"> <div class="col6">
<?php echo template::text('configSocialInstagramId', [ <?php echo template::text('configSocialInstagramId', [
'help' => 'Saisissez votre ID : https://www.instagram.com/[ID].', 'help' => 'Saisissez votre ID : https://www.instagram.com/[ID].',
'label' => 'Instagram', 'label' => 'Instagram',
'value' => $this->getData(['config', 'social', 'instagramId']) 'value' => $this->getData(['config', 'social', 'instagramId'])
]); ?> ]); ?>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col6"> <div class="col6">
<?php echo template::text('configSocialYoutubeId', [ <?php echo template::text('configSocialYoutubeId', [
@ -186,16 +186,16 @@
'label' => 'Chaîne Youtube', 'label' => 'Chaîne Youtube',
'value' => $this->getData(['config', 'social', 'youtubeId']) 'value' => $this->getData(['config', 'social', 'youtubeId'])
]); ?> ]); ?>
</div> </div>
<div class="col6"> <div class="col6">
<?php echo template::text('configSocialYoutubeUserId', [ <?php echo template::text('configSocialYoutubeUserId', [
'help' => 'Saisissez votre ID Utilisateur : https://www.youtube.com/user/[ID].', 'help' => 'Saisissez votre ID Utilisateur : https://www.youtube.com/user/[ID].',
'label' => 'Youtube', 'label' => 'Youtube',
'value' => $this->getData(['config', 'social', 'youtubeUserId']) 'value' => $this->getData(['config', 'social', 'youtubeUserId'])
]); ?> ]); ?>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col6"> <div class="col6">
<?php echo template::text('configSocialTwitterId', [ <?php echo template::text('configSocialTwitterId', [
'help' => 'Saisissez votre ID : https://twitter.com/[ID].', 'help' => 'Saisissez votre ID : https://twitter.com/[ID].',
@ -209,21 +209,21 @@
'label' => 'Pinterest', 'label' => 'Pinterest',
'value' => $this->getData(['config', 'social', 'pinterestId']) 'value' => $this->getData(['config', 'social', 'pinterestId'])
]); ?> ]); ?>
</div> </div>
<div class="col6"> <div class="col6">
<?php echo template::text('configSocialLinkedinId', [ <?php echo template::text('configSocialLinkedinId', [
'help' => 'Saisissez votre ID Linkedin : https://fr.linkedin.com/in/[ID].', 'help' => 'Saisissez votre ID Linkedin : https://fr.linkedin.com/in/[ID].',
'label' => 'Linkedin', 'label' => 'Linkedin',
'value' => $this->getData(['config', 'social', 'linkedinId']) 'value' => $this->getData(['config', 'social', 'linkedinId'])
]); ?> ]); ?>
</div> </div>
<div class="col6"> <div class="col6">
<?php echo template::text('configSocialGithubId', [ <?php echo template::text('configSocialGithubId', [
'help' => 'Saisissez votre ID Github : https://github.com/[ID].', 'help' => 'Saisissez votre ID Github : https://github.com/[ID].',
'label' => 'Github', 'label' => 'Github',
'value' => $this->getData(['config', 'social', 'githubId']) 'value' => $this->getData(['config', 'social', 'githubId'])
]); ?> ]); ?>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@ -233,7 +233,7 @@
<div class="block"> <div class="block">
<h4>Référencement</h4> <h4>Référencement</h4>
<div class="row"> <div class="row">
<div class="col6"> <div class="col6">
<?php echo template::button('configMetaImage', [ <?php echo template::button('configMetaImage', [
'href' => helper::baseUrl() . 'config/configMetaImage', 'href' => helper::baseUrl() . 'config/configMetaImage',
'value' => 'Capture Open Graph', 'value' => 'Capture Open Graph',
@ -250,10 +250,10 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col8 offset2 textAlignCenter"> <div class="col8 offset2 textAlignCenter">
<img src="<?php echo helper::baseUrl(false) . self::FILE_DIR.'source/screenshot.jpg';?>" data-tippy-content="Cette capture d'écran est nécessaire aux partages sur les réseaux sociaux. Elle est régénérée lorsque le fichier 'screenshot.png' est effacé du gestionnaire de fichiers." /> <img src="<?php echo helper::baseUrl(false) . self::FILE_DIR.'source/screenshot.jpg';?>" data-tippy-content="Cette capture d'écran est nécessaire aux partages sur les réseaux sociaux. Elle est régénérée lorsque le fichier 'screenshot.jpg' est effacé du gestionnaire de fichiers." />
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
@ -275,7 +275,7 @@
'value' => 'Script inséré dans head', 'value' => 'Script inséré dans head',
'ico' => 'pencil' 'ico' => 'pencil'
]); ?> ]); ?>
</div> </div>
<div class="col3 offset1 verticalAlignBottom"> <div class="col3 offset1 verticalAlignBottom">
<?php echo template::button('scriptBody', [ <?php echo template::button('scriptBody', [
'href' => helper::baseUrl() . 'config/script/body', 'href' => helper::baseUrl() . 'config/script/body',
@ -285,19 +285,19 @@
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col12"> <div class="col12">
<div class="block"> <div class="block">
<h4>Paramètres réseaux</h4> <h4>Paramètres réseaux</h4>
<div class="row"> <div class="row">
<div class="col2"> <div class="col2">
<?php echo template::select('configProxyType', $module::$proxyType, [ <?php echo template::select('configProxyType', $module::$proxyType, [
'label' => 'Type de proxy', 'label' => 'Type de proxy',
'selected' => $this->getData(['config', 'proxyType']) 'selected' => $this->getData(['config', 'proxyType'])
]); ?> ]); ?>
</div> </div>
<div class="col8"> <div class="col8">
<?php echo template::text('configProxyUrl', [ <?php echo template::text('configProxyUrl', [
'label' => 'Adresse du proxy', 'label' => 'Adresse du proxy',
@ -310,17 +310,17 @@
'label' => 'Port du proxy', 'label' => 'Port du proxy',
'placeholder' => '6060', 'placeholder' => '6060',
'value' => $this->getData(['config', 'proxyPort']) 'value' => $this->getData(['config', 'proxyPort'])
]); ?> ]); ?>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col12"> <div class="col12">
<div class="block"> <div class="block">
<h4>Paramètres de messagerie SMTP</h4> <h4>Paramètres de messagerie SMTP</h4>
<div class="row"> <div class="row">
<div class="col12"> <div class="col12">
<?php echo template::checkbox('configSmtpEnable', true, 'Activer SMTP', [ <?php echo template::checkbox('configSmtpEnable', true, 'Activer SMTP', [
'checked' => $this->getData(['config', 'smtp','enable']), 'checked' => $this->getData(['config', 'smtp','enable']),
@ -335,21 +335,21 @@
'label' => 'Adresse SMTP', 'label' => 'Adresse SMTP',
'placeholder' => 'smtp.fr', 'placeholder' => 'smtp.fr',
'value' => $this->getData(['config', 'smtp','host']) 'value' => $this->getData(['config', 'smtp','host'])
]); ?> ]); ?>
</div> </div>
<div class="col2"> <div class="col2">
<?php echo template::text('configSmtpPort', [ <?php echo template::text('configSmtpPort', [
'label' => 'Port SMTP', 'label' => 'Port SMTP',
'placeholder' => '589', 'placeholder' => '589',
'value' => $this->getData(['config', 'smtp','port']) 'value' => $this->getData(['config', 'smtp','port'])
]); ?> ]); ?>
</div> </div>
<div class="col2"> <div class="col2">
<?php echo template::select('configSmtpAuth', $module::$SMTPauth, [ <?php echo template::select('configSmtpAuth', $module::$SMTPauth, [
'label' => 'Authentification', 'label' => 'Authentification',
'selected' => $this->getData(['config', 'smtp','auth']) 'selected' => $this->getData(['config', 'smtp','auth'])
]); ?> ]); ?>
</div> </div>
</div> </div>
<div id="configSmtpAuthParam"> <div id="configSmtpAuthParam">
<div class="row"> <div class="row">
@ -357,27 +357,27 @@
<?php echo template::text('configSmtpUsername', [ <?php echo template::text('configSmtpUsername', [
'label' => 'Nom utilisateur', 'label' => 'Nom utilisateur',
'value' => $this->getData(['config', 'smtp','username' ]) 'value' => $this->getData(['config', 'smtp','username' ])
]); ?> ]); ?>
</div> </div>
<div class="col5"> <div class="col5">
<?php echo template::password('configSmtpPassword', [ <?php echo template::password('configSmtpPassword', [
'label' => 'Mot de passe', 'label' => 'Mot de passe',
'autocomplete' => 'off', 'autocomplete' => 'off',
'value' => helper::decrypt ($this->getData(['config', 'smtp','username' ]),$this->getData(['config','smtp','password'])) 'value' => helper::decrypt ($this->getData(['config', 'smtp','username' ]),$this->getData(['config','smtp','password']))
]); ?> ]); ?>
</div> </div>
<div class="col2"> <div class="col2">
<?php echo template::select('configSmtpSecure', $module::$SMTPEnc , [ <?php echo template::select('configSmtpSecure', $module::$SMTPEnc , [
'label' => 'Sécurité', 'label' => 'Sécurité',
'selected' => $this->getData(['config', 'smtp','secure']) 'selected' => $this->getData(['config', 'smtp','secure'])
]); ?> ]); ?>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col12"> <div class="col12">
<div class="block"> <div class="block">
@ -388,7 +388,7 @@
'label' => 'ZwiiCMS', 'label' => 'ZwiiCMS',
'readonly' => true, 'readonly' => true,
'value' => common::ZWII_VERSION 'value' => common::ZWII_VERSION
]); ?> ]); ?>
</div> </div>
<div class="col2"> <div class="col2">
<?php echo template::text('moduleBlogVersion', [ <?php echo template::text('moduleBlogVersion', [
@ -424,8 +424,8 @@
'readonly' => true, 'readonly' => true,
'value' => redirection::REDIRECTION_VERSION 'value' => redirection::REDIRECTION_VERSION
]); ?> ]); ?>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>