version 8.3.14

This commit is contained in:
fredtempez 2018-11-13 13:36:39 +01:00
commit 43301231ee
25 changed files with 527 additions and 104 deletions

11
.gitignore vendored
View File

@ -1,3 +1,4 @@
<<<<<<< HEAD
# Fichiers temporaires # Fichiers temporaires
site/tmp/* site/tmp/*
@ -10,9 +11,19 @@ site/data/*
# Fichiers uploadés # Fichiers uploadés
site/file/source/* site/file/source/*
site/file/thumb/* site/file/thumb/*
=======
# Fichiers de données
site/*
>>>>>>> 8.3.14
# Dossiers vides dans GitHub # Dossiers vides dans GitHub
!.gitkeep !.gitkeep
# PHPStorm # PHPStorm
.idea/ .idea/
<<<<<<< HEAD
=======
#Visual Code
.vscode
>>>>>>> 8.3.14

View File

@ -4,4 +4,29 @@ SetEnv SESSION_USE_TRANS_SID 0
# Bloque l'accès à la liste des fichiers # Bloque l'accès à la liste des fichiers
Options -Indexes Options -Indexes
# Attention, surtout ne rien modifier ci-dessous ! <<<<<<< HEAD
# Attention, surtout ne rien modifier ci-dessous !
=======
# Attention, surtout ne rien modifier ci-dessous !
<ifModule mod_rewrite.c>
RewriteEngine on
RewriteBase /ZwiiCMS-dev/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L]
</ifModule>
<ifModule mod_rewrite.c>
RewriteEngine on
RewriteBase /ZwiiCMS-dev/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L]
</ifModule>
<ifModule mod_rewrite.c>
RewriteEngine on
RewriteBase /ZwiiCMS-dev/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L]
</ifModule>
>>>>>>> 8.3.14

1
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1 @@
{}

View File

@ -1,12 +1,32 @@
# ChangeLog # ChangeLog
## Préversion 8.3.13 : ## Version 8.4.0
* Modifications :
- Footer dans 3 blocs contenant dans l'ordre : Texte, Réseaux sociaux, Copyright
- Pagination variable du nombres d'articles par page (news, blog et form)
- Position des modules Galerie et Form dans une page ; haut ; bas ou libre avec les doubles crochets insérés dans l'article [] (PeterRabbit)
- Prise en compte des balises OpenGraph obligatoires title , description, type et images
- Modification de la position des boutons retour et éditer lors de l'affichage d'un article si connecté
- Mise en forme de la composition des articles et des news
- Suppression du message de l'édition des redirections
- Modifications de la présentation des en-têtes d'articles de Blog et de News
- Format du mois au format long et en français
* Correction :
- Accès aux pages désactivées par le sitemap
- Réduction du temps d'affichage des notifications
- Image responsive en en-tête de l'article d'un blog
- Mise à jour du gestionnaire de fichiers en version 9.13.1
## version 8.3.13 :
* Modifications : * Modifications :
- Bannière "responsive", nouvelles options de positionnement - Bannière "responsive", nouvelles options de positionnement
- Bouton Edit dans Blog - Bouton Edit dans Blog
- Options de position des menus selon la position de la bannière - Options de position des menus selon la position de la bannière
- Mise à jour TinyMCE - Bouton Edition dans un article du blog
- Balise ALT dans les images du menu
- Correction RFM
## version 8.3.12 : ## version 8.3.12 :
* Modification : * Modification :

View File

@ -2,7 +2,9 @@
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. 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.
[Site](http://zwiicms.com/) - [Forum](http://forum.zwiicms.com/) - [GitHub](https://github.com/remijean/ZwiiCMS/) [Site](http://zwiicms.com/) - [Forum](http://forum.zwiicms.com/) - [GitHub version initiale](https://github.com/remijean/ZwiiCMS/) - [GitHub](https://github.com/fredtempez/ZwiiCMS)
Zwii a été créé par un développeur de talent, [Rémi Jean](https://remijean.fr/), il est désormais maintenu par la communauté et hébergé sur ce git.
## Configuration recommandée ## Configuration recommandée

View File

@ -24,7 +24,7 @@ class common {
const GROUP_MEMBER = 1; const GROUP_MEMBER = 1;
const GROUP_MODERATOR = 2; const GROUP_MODERATOR = 2;
const GROUP_ADMIN = 3; const GROUP_ADMIN = 3;
const ZWII_VERSION = '8.3.13'; const ZWII_VERSION = '8.4.0';
public static $actions = []; public static $actions = [];
public static $coreModuleIds = [ public static $coreModuleIds = [
@ -55,7 +55,8 @@ class common {
'youtubeId' => '' 'youtubeId' => ''
], ],
'timezone' => 'Europe/Paris', 'timezone' => 'Europe/Paris',
'title' => 'Zwii, votre site en quelques clics !' 'title' => 'Zwii, votre site en quelques clics !',
'ItemsperPage' => 10
], ],
'core' => [ 'core' => [
'dataVersion' => 0, 'dataVersion' => 0,
@ -74,6 +75,7 @@ class common {
'metaDescription' => '', 'metaDescription' => '',
'metaTitle' => '', 'metaTitle' => '',
'moduleId' => '', 'moduleId' => '',
'modulePosition' => 'bottom',
'parentPageId' => '', 'parentPageId' => '',
'position' => 1, 'position' => 1,
'group' => self::GROUP_VISITOR, 'group' => self::GROUP_VISITOR,
@ -91,6 +93,7 @@ class common {
'metaDescription' => '', 'metaDescription' => '',
'metaTitle' => '', 'metaTitle' => '',
'moduleId' => '', 'moduleId' => '',
'modulePosition' => 'bottom',
'parentPageId' => 'accueil', 'parentPageId' => 'accueil',
'position' => 1, 'position' => 1,
'group' => self::GROUP_VISITOR, 'group' => self::GROUP_VISITOR,
@ -109,6 +112,7 @@ class common {
'metaTitle' => '', 'metaTitle' => '',
'moduleId' => '', 'moduleId' => '',
'parentPageId' => '', 'parentPageId' => '',
'modulePosition' => 'bottom',
'position' => 2, 'position' => 2,
'group' => self::GROUP_MEMBER, 'group' => self::GROUP_MEMBER,
'targetBlank' => false, 'targetBlank' => false,
@ -124,6 +128,7 @@ class common {
'metaDescription' => '', 'metaDescription' => '',
'metaTitle' => '', 'metaTitle' => '',
'moduleId' => 'blog', 'moduleId' => 'blog',
'modulePosition' => 'bottom',
'parentPageId' => '', 'parentPageId' => '',
'position' => 3, 'position' => 3,
'group' => self::GROUP_VISITOR, 'group' => self::GROUP_VISITOR,
@ -141,6 +146,7 @@ class common {
'metaDescription' => '', 'metaDescription' => '',
'metaTitle' => '', 'metaTitle' => '',
'moduleId' => 'gallery', 'moduleId' => 'gallery',
'modulePosition' => 'bottom',
'parentPageId' => '', 'parentPageId' => '',
'position' => 4, 'position' => 4,
'group' => self::GROUP_VISITOR, 'group' => self::GROUP_VISITOR,
@ -158,6 +164,7 @@ class common {
'metaDescription' => '', 'metaDescription' => '',
'metaTitle' => '', 'metaTitle' => '',
'moduleId' => 'redirection', 'moduleId' => 'redirection',
'modulePosition' => 'bottom',
'parentPageId' => '', 'parentPageId' => '',
'position' => 5, 'position' => 5,
'group' => self::GROUP_VISITOR, 'group' => self::GROUP_VISITOR,
@ -175,6 +182,7 @@ class common {
'metaDescription' => '', 'metaDescription' => '',
'metaTitle' => '', 'metaTitle' => '',
'moduleId' => 'form', 'moduleId' => 'form',
'modulePosition' => 'bottom',
'parentPageId' => '', 'parentPageId' => '',
'position' => 6, 'position' => 6,
'group' => self::GROUP_VISITOR, 'group' => self::GROUP_VISITOR,
@ -307,7 +315,10 @@ class common {
'socialsAlign' => 'center', 'socialsAlign' => 'center',
'text' => '', 'text' => '',
'textAlign' => 'center', 'textAlign' => 'center',
'textColor' => 'rgba(33, 34, 35, 1)' 'textColor' => 'rgba(33, 34, 35, 1)',
'copyrightPosition' => '3',
'textPosition' => '2',
'socialsPosition' => '1'
], ],
'header' => [ 'header' => [
'backgroundColor' => 'rgba(255, 255, 255, 1)', 'backgroundColor' => 'rgba(255, 255, 255, 1)',
@ -589,6 +600,27 @@ class common {
} }
} }
/**
* Récupérer une copie d'écran du site Web pour le tag image si le fichier n'existe pas
* En local, copie du site décran de ZwiiCMS
*/
public function makeImageTag () {
if (!file_exists('site/file/source/screenshot.png'))
{
if ( strpos(helper::baseUrl(false),'localhost') > 0 OR strpos(helper::baseUrl(false),'127.0.0.1') > 0) {
$site = 'https://ZwiiCMS.com'; } else {
$site = helper::baseUrl(false); }
$googlePagespeedData = file_get_contents('https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url='. $site .'&screenshot=true');
$googlePagespeedData = json_decode($googlePagespeedData, true);
$screenshot = $googlePagespeedData['screenshot']['data'];
$screenshot = str_replace(array('_','-'),array('/','+'),$screenshot);
$data = 'data:image/jpeg;base64,'.$screenshot;
$data = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data));
file_put_contents( 'site/file/source/screenshot.png',$data);
}
}
/** /**
* Accède aux données * Accède aux données
* @param array $keys Clé(s) des données * @param array $keys Clé(s) des données
@ -865,8 +897,17 @@ class common {
$this->setData(['theme','header','imageContainer','auto']); $this->setData(['theme','header','imageContainer','auto']);
$this->setData(['core', 'dataVersion', 8313]); $this->setData(['core', 'dataVersion', 8313]);
$this->SaveData(); $this->SaveData();
} }
// Version 8.4.0
if($this->getData(['core', 'dataVersion']) < 840) {
$this->setData(['theme','footer','socialsPosition','1']);
$this->setData(['theme','footer','textPosition','2']);
$this->setData(['theme','footer','copyrightPosition','3']);
$this->setData(['config','ItemsperPage','10']);
$this->setData(['core', 'dataVersion', 840]);
$this->SaveData();
}
} }
} }
@ -1251,11 +1292,24 @@ class core extends common {
if(file_exists($viewPath)) { if(file_exists($viewPath)) {
ob_start(); ob_start();
include $viewPath; include $viewPath;
$this->addOutput([ $modpos = $this->getData(['page', $this->getUrl(0), 'modulePosition']);
'content' => ($output['showPageContent'] ? $pageContent : '') . ob_get_clean() if ($modpos === 'top') {
]); $this->addOutput([
'content' => ob_get_clean() . ($output['showPageContent'] ? $pageContent : '')]);
}
else if ($modpos === 'free') {
$begin = strstr($pageContent, '[]', true);
$end = strstr($pageContent, '[]');
$cut=2;
$end=substr($end,-strlen($end)+$cut);
$this->addOutput([
'content' => ($output['showPageContent'] ? $begin : '') . ob_get_clean() . ($output['showPageContent'] ? $end : '')]); }
else {
$this->addOutput([
'content' => ($output['showPageContent'] ? $pageContent : '') . ob_get_clean()]);
}
} }
} }
// Librairies // Librairies
if($output['vendor'] !== $this->output['vendor']) { if($output['vendor'] !== $this->output['vendor']) {
$this->addOutput([ $this->addOutput([
@ -1604,10 +1658,11 @@ class helper {
* Crée un système de pagination (retourne un tableau contenant les informations sur la pagination (first, last, pages)) * Crée un système de pagination (retourne un tableau contenant les informations sur la pagination (first, last, pages))
* @param array $array Tableau de donnée à utiliser * @param array $array Tableau de donnée à utiliser
* @param string $url URL à utiliser, la dernière partie doit correspondre au numéro de page, par défaut utiliser $this->getUrl() * @param string $url URL à utiliser, la dernière partie doit correspondre au numéro de page, par défaut utiliser $this->getUrl()
* @param string $item pagination nombre d'éléments par page
* @param null|int $sufix Suffixe de l'url * @param null|int $sufix Suffixe de l'url
* @return array * @return array
*/ */
public static function pagination($array, $url, $sufix = null) { public static function pagination($array, $url, $item, $sufix = null) {
// Scinde l'url // Scinde l'url
$url = explode('/', $url); $url = explode('/', $url);
// Url de pagination // Url de pagination
@ -1617,13 +1672,13 @@ class helper {
// Nombre d'éléments à afficher // Nombre d'éléments à afficher
$nbElements = count($array); $nbElements = count($array);
// Nombre de page // Nombre de page
$nbPage = ceil($nbElements / 10); $nbPage = ceil($nbElements / $item);
// Page courante // Page courante
$currentPage = is_numeric($urlPagination) ? self::filter($urlPagination, self::FILTER_INT) : 1; $currentPage = is_numeric($urlPagination) ? self::filter($urlPagination, self::FILTER_INT) : 1;
// Premier élément de la page // Premier élément de la page
$firstElement = ($currentPage - 1) * 10; $firstElement = ($currentPage - 1) * $item;
// Dernier élément de la page // Dernier élément de la page
$lastElement = $firstElement + 10; $lastElement = $firstElement + $item;
$lastElement = ($lastElement > $nbElements) ? $nbElements : $lastElement; $lastElement = ($lastElement > $nbElements) ? $nbElements : $lastElement;
// Mise en forme de la liste des pages // Mise en forme de la liste des pages
$pages = ''; $pages = '';
@ -1827,30 +1882,30 @@ class layout extends common {
break; break;
case 'text' : case 'text' :
$items .= $this->getData(['page', $parentPageId, 'title']); $items .= $this->getData(['page', $parentPageId, 'title']);
break; break;
case 'icon' : case 'icon' :
if ($this->getData(['page', $parentPageId, 'iconUrl']) != "") { if ($this->getData(['page', $parentPageId, 'iconUrl']) != "") {
$items .= '<img src="'. helper::baseUrl(false) .'site/file/source/'.$this->getData(['page', $parentPageId, 'iconUrl']).'" />'; $items .= '<img alt="'.$this->getData(['page', $parentPageId, 'title']).'" src="'. helper::baseUrl(false) .'site/file/source/'.$this->getData(['page', $parentPageId, 'iconUrl']).'" />';
} else { } else {
$items .= $this->getData(['page', $parentPageId, 'title']); $items .= $this->getData(['page', $parentPageId, 'title']);
} }
break; break;
case 'icontitle' : case 'icontitle' :
if ($this->getData(['page', $parentPageId, 'iconUrl']) != "") { if ($this->getData(['page', $parentPageId, 'iconUrl']) != "") {
$items .= '<img src="'. helper::baseUrl(false) .'site/file/source/'.$this->getData(['page', $parentPageId, 'iconUrl']).'" title="'; $items .= '<img alt="'.$this->getData(['page', $parentPageId, 'title']).'" src="'. helper::baseUrl(false) .'site/file/source/'.$this->getData(['page', $parentPageId, 'iconUrl']).'" title="';
$items .= $this->getData(['page', $parentPageId, 'title']).'"/>'; $items .= $this->getData(['page', $parentPageId, 'title']).'"/>';
} else { } else {
$items .= $this->getData(['page', $parentPageId, 'title']); $items .= $this->getData(['page', $parentPageId, 'title']);
} }
break; break;
case 'icontext' : case 'icontext' :
if ($this->getData(['page', $parentPageId, 'iconUrl']) != "") { if ($this->getData(['page', $parentPageId, 'iconUrl']) != "") {
$items .= '<img src="'. helper::baseUrl(false) .'site/file/source/'.$this->getData(['page', $parentPageId, 'iconUrl']).'" />'; $items .= '<img alt="'.$this->getData(['page', $parentPageId, 'title']).'" src="'. helper::baseUrl(false) .'site/file/source/'.$this->getData(['page', $parentPageId, 'iconUrl']).'" />';
$items .= $this->getData(['page', $parentPageId, 'title']); $items .= $this->getData(['page', $parentPageId, 'title']);
} else { } else {
$items .= $this->getData(['page', $parentPageId, 'title']); $items .= $this->getData(['page', $parentPageId, 'title']);
} }
break; break;
} }
// Menu Image // Menu Image
@ -1885,30 +1940,30 @@ class layout extends common {
break; break;
case 'text' : case 'text' :
$items .= $this->getData(['page', $childKey, 'title']); $items .= $this->getData(['page', $childKey, 'title']);
break; break;
case 'icon' : case 'icon' :
if ($this->getData(['page', $childKey, 'iconUrl']) != "") { if ($this->getData(['page', $childKey, 'iconUrl']) != "") {
$items .= '<img src="'. helper::baseUrl(false) .'site/file/source/'.$this->getData(['page', $childKey, 'iconUrl']).'" />'; $items .= '<img alt="'.$this->getData(['page', $parentPageId, 'title']).'" src="'. helper::baseUrl(false) .'site/file/source/'.$this->getData(['page', $childKey, 'iconUrl']).'" />';
} else { } else {
$items .= $this->getData(['page', $parentPageId, 'title']); $items .= $this->getData(['page', $parentPageId, 'title']);
} }
break; break;
case 'icontitle' : case 'icontitle' :
if ($this->getData(['page', $childKey, 'iconUrl']) != "") { if ($this->getData(['page', $childKey, 'iconUrl']) != "") {
$items .= '<img src="'. helper::baseUrl(false) .'site/file/source/'.$this->getData(['page', $childKey, 'iconUrl']).'" title="'; $items .= '<img alt="'.$this->getData(['page', $parentPageId, 'title']).'" src="'. helper::baseUrl(false) .'site/file/source/'.$this->getData(['page', $childKey, 'iconUrl']).'" title="';
$items .= $this->getData(['page', $childKey, 'title']).'"/>'; $items .= $this->getData(['page', $childKey, 'title']).'"/>';
} else { } else {
$items .= $this->getData(['page', $childKey, 'title']); $items .= $this->getData(['page', $childKey, 'title']);
} }
break; break;
case 'icontext' : case 'icontext' :
if ($this->getData(['page', $childKey, 'iconUrl']) != "") { if ($this->getData(['page', $childKey, 'iconUrl']) != "") {
$items .= '<img src="'. helper::baseUrl(false) .'site/file/source/'.$this->getData(['page', $childKey, 'iconUrl']).'" />'; $items .= '<img alt="'.$this->getData(['page', $parentPageId, 'title']).'" src="'. helper::baseUrl(false) .'site/file/source/'.$this->getData(['page', $childKey, 'iconUrl']).'" />';
$items .= $this->getData(['page', $childKey, 'title']); $items .= $this->getData(['page', $childKey, 'title']);
} else { } else {
$items .= $this->getData(['page', $childKey, 'title']); $items .= $this->getData(['page', $childKey, 'title']);
} }
break; break;
} }
$items .= '</a></li>'; $items .= '</a></li>';
// Menu Image // Menu Image
@ -1937,15 +1992,33 @@ class layout extends common {
*/ */
public function showMetaTitle() { public function showMetaTitle() {
echo '<title>' . $this->core->output['metaTitle'] . '</title>'; echo '<title>' . $this->core->output['metaTitle'] . '</title>';
echo '<meta property="og:title" content="' . $this->core->output['metaTitle'] . '" />';
} }
/** /**
* Affiche la meta description * Affiche la meta description
*/ */
public function showMetaDescription() { public function showMetaDescription() {
echo '<meta name="description" content="' . $this->core->output['metaDescription'] . '">'; echo '<meta name="description" content="' . $this->core->output['metaDescription'] . '" />';
echo '<meta property="og:description" content="' . $this->core->output['metaDescription'] . '" />';
} }
/**
* Affiche le meta type
*/
public function showMetaType() {
echo '<meta property="og:type" content="website" />';
}
/**
* Affiche la meta image (site screenshot)
*/
public function showMetaImage() {
echo '<meta property="og:image" content="' . helper::baseUrl() .'site/screenshot.png" />';
}
/** /**
* Affiche la notification * Affiche la notification
*/ */

View File

@ -1,11 +1,13 @@
<?php $layout = new layout($this); ?> <?php $layout = new layout($this); ?>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html xmlns:og="http://ogp.me/ns#">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<?php $layout->showMetaTitle(); ?> <?php $layout->showMetaTitle(); ?>
<?php $layout->showMetaDescription(); ?> <?php $layout->showMetaDescription(); ?>
<?php $layout->showMetaType(); ?>
<?php $layout->showMetaImage(); ?>
<?php $layout->showFavicon(); ?> <?php $layout->showFavicon(); ?>
<?php $layout->showVendor(); ?> <?php $layout->showVendor(); ?>
<link rel="stylesheet" href="<?php echo helper::baseUrl(false); ?>core/layout/common.css"> <link rel="stylesheet" href="<?php echo helper::baseUrl(false); ?>core/layout/common.css">

View File

@ -305,6 +305,11 @@ header .container {
body > nav { body > nav {
margin: 0 -10px; margin: 0 -10px;
} }
/* Items du menu */
nav a > img {
margin: -4px 0;
vertical-align: middle;
}
nav #toggle { nav #toggle {
cursor: pointer; cursor: pointer;
text-align: right; text-align: right;
@ -398,9 +403,15 @@ footer {
text-align: center; text-align: center;
font-size: .8em; font-size: .8em;
padding: 10px 20px; padding: 10px 20px;
vertical-align:middle;
} }
footer .col4 {
vertical-align: middle;
}
footer #footerSocials { footer #footerSocials {
font-size: 1.6em; font-size: 1.0em;
} }
footer #footerSocials span { footer #footerSocials span {
color: #FFF; color: #FFF;

View File

@ -1,11 +1,13 @@
<?php $layout = new layout($this); ?> <?php $layout = new layout($this); ?>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html xmlns:og="http://ogp.me/ns#">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<?php $layout->showMetaTitle(); ?> <?php $layout->showMetaTitle(); ?>
<?php $layout->showMetaDescription(); ?> <?php $layout->showMetaDescription(); ?>
<?php $layout->showMetaType(); ?>
<?php $layout->showMetaImage(); ?>
<?php $layout->showFavicon(); ?> <?php $layout->showFavicon(); ?>
<?php $layout->showVendor(); ?> <?php $layout->showVendor(); ?>
<link rel="stylesheet" href="<?php echo helper::baseUrl(false); ?>core/layout/common.css"> <link rel="stylesheet" href="<?php echo helper::baseUrl(false); ?>core/layout/common.css">

View File

@ -1,11 +1,13 @@
<?php $layout = new layout($this); ?> <?php $layout = new layout($this); ?>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html xmlns:og="http://ogp.me/ns#">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<?php $layout->showMetaTitle(); ?> <?php $layout->showMetaTitle(); ?>
<?php $layout->showMetaDescription(); ?> <?php $layout->showMetaDescription(); ?>
<?php $layout->showMetaType(); ?>
<?php $layout->showMetaImage(); ?>
<?php $layout->showFavicon(); ?> <?php $layout->showFavicon(); ?>
<?php $layout->showVendor(); ?> <?php $layout->showVendor(); ?>
<link rel="stylesheet" href="<?php echo helper::baseUrl(false); ?>core/layout/common.css"> <link rel="stylesheet" href="<?php echo helper::baseUrl(false); ?>core/layout/common.css">
@ -135,11 +137,53 @@
) )
): ?> ): ?>
<!-- Pied de page dans le site --> <!-- Pied de page dans le site -->
<footer <?php if($this->getData(['theme', 'footer', 'position']) === 'hide'): ?>class="displayNone"<?php endif; ?>> <footer <?php if($this->getData(['theme', 'footer', 'position']) === 'hide'): ?>class="displayNone"<?php endif; ?>>
<div class="container"> <div class="container">
<?php $layout->showSocials(); ?> <div class="row">
<?php $layout->showFooterText(); ?> <div class="col4" id="siteLeft"> <!-- bloc gauche -->
<?php $layout->showCopyright(); ?> <?php
if($this->getData(['theme', 'footer', 'textPosition']) === 'left') {
$layout->showFooterText();}
?>
<?php
if($this->getData(['theme', 'footer', 'socialsPosition']) === 'left') {
$layout->showSocials(); }
?>
<?php
if($this->getData(['theme', 'footer', 'copyrightPosition']) === 'left') {
$layout->showCopyright(); }
?>
</div>
<div class="col4" id="siteCenter"> <!-- bloc central -->
<?php
if($this->getData(['theme', 'footer', 'textPosition']) === 'center') {
$layout->showFooterText(); }
?>
<?php
if($this->getData(['theme', 'footer', 'socialsPosition']) === 'center') {
$layout->showSocials(); }
?>
<?php
if($this->getData(['theme', 'footer', 'copyrightPosition']) === 'center') {
$layout->showCopyright(); }
?>
</div>
<div class="col4" id="siteRight"> <!-- bloc droite -->
<?php
if($this->getData(['theme', 'footer', 'textPosition']) === 'right') {
$layout->showFooterText(); }
?>
<?php
if($this->getData(['theme', 'footer', 'socialsPosition']) === 'right') {
$layout->showSocials(); }
?>
<?php
if($this->getData(['theme', 'footer', 'copyrightPosition']) === 'right') {
$layout->showCopyright(); }
?>
</div>
</div>
</div> </div>
</footer> </footer>
<?php endif; ?> <?php endif; ?>
@ -147,10 +191,51 @@
<?php if($this->getData(['theme', 'footer', 'position']) === 'body'): ?> <?php if($this->getData(['theme', 'footer', 'position']) === 'body'): ?>
<!-- Pied de page dans le fond du site --> <!-- Pied de page dans le fond du site -->
<footer> <footer>
<div class="container"> <div class="container-large">
<?php $layout->showSocials(); ?> <div class="row">
<?php $layout->showFooterText(); ?> <div class="col4" id="bodyLeft"> <!-- bloc gauche -->
<?php $layout->showCopyright(); ?> <?php
if($this->getData(['theme', 'footer', 'textPosition']) === 'left') {
$layout->showFooterText(); }
?>
<?php
if($this->getData(['theme', 'footer', 'socialsPosition']) === 'left') {
$layout->showSocials(); }
?>
<?php
if($this->getData(['theme', 'footer', 'copyrightPosition']) === 'left') {
$layout->showCopyright(); }
?>
</div>
<div class="col4" id="bodyCenter"> <!-- bloc central -->
<?php
if($this->getData(['theme', 'footer', 'textPosition']) === 'center') {
$layout->showFooterText(); }
?>
<?php
if($this->getData(['theme', 'footer', 'socialsPosition']) === 'center') {
$layout->showSocials(); }
?>
<?php
if($this->getData(['theme', 'footer', 'copyrightPosition']) === 'center') {
$layout->showCopyright(); }
?>
</div>
<div class="col4" id="bodyRight"> <!-- bloc droite -->
<?php
if($this->getData(['theme', 'footer', 'textPosition']) === 'right') {
$layout->showFooterText(); }
?>
<?php
if($this->getData(['theme', 'footer', 'socialsPosition']) === 'right') {
$layout->showSocials(); }
?>
<?php
if($this->getData(['theme', 'footer', 'copyrightPosition']) === 'right') {
$layout->showCopyright();}
?>
</div>
</div>
</div> </div>
</footer> </footer>
<?php endif; ?> <?php endif; ?>

View File

@ -134,11 +134,20 @@ class config extends common {
'Pacific/Fiji' => '(GMT+12:00) Fiji', 'Pacific/Fiji' => '(GMT+12:00) Fiji',
'Asia/Kamchatka' => '(GMT+12:00) Kamchatka' 'Asia/Kamchatka' => '(GMT+12:00) Kamchatka'
]; ];
// Nombre d'objets par page
public static $ItemsList = [
5 => '5 articles',
10 => '10 articles',
15 => '15 articles',
20 => '20 articles'
];
/** /**
* Sauvegarde des données * Sauvegarde des données
*/ */
public function backup() { public function backup() {
// Creation du ZIP // Creation du ZIP
$fileName = date('Y-m-d-h-i-s', time()) . '.zip'; $fileName = date('Y-m-d-h-i-s', time()) . '.zip';
$zip = new ZipArchive(); $zip = new ZipArchive();
@ -159,6 +168,34 @@ class config extends common {
]); ]);
} }
/**
* Réalise une copie d'écran
* https://www.codexworld.com/capture-screenshot-website-url-php-google-api/
*/
public function configmetaimage() {
// 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) {
$site = 'https://ZwiiCMS.com'; } else {
$site = helper::baseUrl(false); }
$googlePagespeedData = file_get_contents('https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url='. $site .'&screenshot=true&key=AIzaSyA_JOJidlWFgEiyxTlSGi2_fORgYsCZFtA');
$googlePagespeedData = json_decode($googlePagespeedData, true);
$screenshot = $googlePagespeedData['screenshot']['data'];
$screenshot = str_replace(array('_','-'),array('/','+'),$screenshot);
$data = 'data:image/jpeg;base64,'.$screenshot;
$data = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data));
file_put_contents( 'site/file/source/screenshot.png',$data);
// Valeurs en sortie
$this->addOutput([
'notification' => 'Image tag réinitialisée',
'redirect' => helper::baseUrl() . 'config',
'state' => true
]);
}
/** /**
* Configuration * Configuration
*/ */
@ -184,7 +221,8 @@ class config extends common {
'youtubeId' => $this->getInput('configSocialYoutubeId') 'youtubeId' => $this->getInput('configSocialYoutubeId')
], ],
'timezone' => $this->getInput('configTimezone', helper::FILTER_STRING_SHORT, true), 'timezone' => $this->getInput('configTimezone', helper::FILTER_STRING_SHORT, true),
'title' => $this->getInput('configTitle', helper::FILTER_STRING_SHORT, true) 'title' => $this->getInput('configTitle', helper::FILTER_STRING_SHORT, true),
'ItemsperPage' => $this->getInput('ItemsperPage')
] ]
]); ]);
if(self::$inputNotices === []) { if(self::$inputNotices === []) {

View File

@ -1,3 +1,4 @@
<?php $this->makeImageTag(); ?>
<?php echo template::formOpen('configForm'); ?> <?php echo template::formOpen('configForm'); ?>
<div class="row"> <div class="row">
<div class="col2"> <div class="col2">
@ -16,18 +17,22 @@
<div class="col6"> <div class="col6">
<div class="block"> <div class="block">
<h4>Informations générales</h4> <h4>Informations générales</h4>
<?php echo template::text('configTitle', [
'label' => 'Titre du site',
'value' => $this->getData(['config', 'title'])
]); ?>
<?php echo template::textarea('configMetaDescription', [
'label' => 'Description du site',
'value' => $this->getData(['config', 'metaDescription'])
]); ?>
<?php echo template::select('configHomePageId', helper::arrayCollumn($this->getData(['page']), 'title', 'SORT_ASC'), [ <?php echo template::select('configHomePageId', helper::arrayCollumn($this->getData(['page']), 'title', 'SORT_ASC'), [
'label' => 'Page d\'accueil', 'label' => 'Page d\'accueil',
'selected' => $this->getData(['config', 'homePageId']) 'selected' => $this->getData(['config', 'homePageId'])
]); ?> ]); ?>
<?php echo template::text('configTitle', [
'label' => 'Titre du site',
'value' => $this->getData(['config', 'title']),
'help' => 'Affiché dans la barre de titre et inclus lors des partages sur les réseaux sociaux'
]); ?>
<?php echo template::textarea('configMetaDescription', [
'label' => 'Description du site',
'value' => $this->getData(['config', 'metaDescription']),
'help' => 'La description est incluse lors des partages sur les réseaux sociaux'
]); ?>
</div> </div>
<div class="block"> <div class="block">
<h4>Options avancées</h4> <h4>Options avancées</h4>
@ -45,11 +50,18 @@
]); ?> ]); ?>
<?php echo template::checkbox('configCookieConsent', true, 'Message de consentement pour l\'utilisation des cookies', [ <?php echo template::checkbox('configCookieConsent', true, 'Message de consentement pour l\'utilisation des cookies', [
'checked' => $this->getData(['config', 'cookieConsent']) 'checked' => $this->getData(['config', 'cookieConsent'])
]); ?> ]); ?>
<?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' => 'Afin d\'éviter de bloquer votre site pensez à vérifier que le module de réécriture d\'URL est bien actif sur votre serveur avant d\'activer cette fonctionnalité.' 'help' => 'Afin d\'éviter de bloquer votre site pensez à vérifier que le module de réécriture d\'URL est bien actif sur votre serveur avant d\'activer cette fonctionnalité.'
]); ?> ]); ?>
<?php echo template::select('ItemsperPage', $module::$ItemsList, [
'label' => 'Pagination Blog et News',
'selected' => $this->getData(['config', 'ItemsperPage']),
'help' => 'Nombre d\'articles de blog ou de news par page'
]); ?>
</div> </div>
</div> </div>
<div class="col6"> <div class="col6">
@ -132,6 +144,24 @@
</div> </div>
</div> </div>
</div> </div>
<div class="block">
<h4>Copie d'écran pour OpenGraph :</h4>
<div class="col3">
<!--
Bouton inutile
<?php echo template::button('configmetaImage', [
'href' => helper::baseUrl() . 'config/metaimage',
'value' => 'Rafraîchir la capture <br /> d\'écran du site'
]); ?>
-->
</div>
<div class="col6">
<p><img src='<?php echo helper::baseUrl(false) . 'site/file/source/screenshot.png';?>' />
</div>
<div class="col3">
</div>
<p>Cette copie 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.</p>
</div>
</div> </div>
</div> </div>
<?php echo template::formClose(); ?> <?php echo template::formClose(); ?>

View File

@ -32,7 +32,12 @@ class page extends common {
'icontext' => 'Icône et texte' 'icontext' => 'Icône et texte'
]; ];
// menu image // menu image
// Position du module
public static $modulePosition = [
'bottom' => 'En bas',
'top' => 'En haut',
'free' => 'Libre'
];
/** /**
* Création * Création
*/ */
@ -54,6 +59,7 @@ class page extends common {
'metaTitle' => '', 'metaTitle' => '',
'moduleId' => '', 'moduleId' => '',
'parentPageId' => '', 'parentPageId' => '',
'modulePosition' => 'bottom',
'position' => 0, 'position' => 0,
'group' => self::GROUP_VISITOR, 'group' => self::GROUP_VISITOR,
'targetBlank' => false, 'targetBlank' => false,
@ -183,6 +189,7 @@ class page extends common {
'metaDescription' => $this->getInput('pageEditMetaDescription', helper::FILTER_STRING_LONG), 'metaDescription' => $this->getInput('pageEditMetaDescription', helper::FILTER_STRING_LONG),
'metaTitle' => $this->getInput('pageEditMetaTitle'), 'metaTitle' => $this->getInput('pageEditMetaTitle'),
'moduleId' => $this->getInput('pageEditModuleId'), 'moduleId' => $this->getInput('pageEditModuleId'),
'modulePosition' => $this->getInput('configModulePosition'),
'parentPageId' => $this->getInput('pageEditParentPageId'), 'parentPageId' => $this->getInput('pageEditParentPageId'),
'position' => $position, 'position' => $position,
'group' => $this->getInput('pageEditGroup', helper::FILTER_INT), 'group' => $this->getInput('pageEditGroup', helper::FILTER_INT),

View File

@ -128,6 +128,13 @@
'maxlength' => '500', 'maxlength' => '500',
'value' => $this->getData(['page', $this->getUrl(2), 'metaDescription']) 'value' => $this->getData(['page', $this->getUrl(2), 'metaDescription'])
]); ?> ]); ?>
<?php if (($this->getData(['page', $this->getUrl(2), 'moduleId']) === 'form') or ($this->getData(['page', $this->getUrl(2), 'moduleId']) === 'gallery')) {
echo template::select('configModulePosition', $module::$modulePosition,[
'help' => 'En position libre ajoutez manuellement le module en plaçant deux crochets [] à l\'endroit voulu dans votre page.',
'label' => 'Position du module dans la page',
'selected' => $this->getData(['page', $this->getUrl(2), 'modulePosition'])
]);
} ?>
<?php echo template::checkbox('pageEditHideTitle', true, 'Cacher le titre', [ <?php echo template::checkbox('pageEditHideTitle', true, 'Cacher le titre', [
'checked' => $this->getData(['page', $this->getUrl(2), 'hideTitle']) 'checked' => $this->getData(['page', $this->getUrl(2), 'hideTitle'])
]); ?> ]); ?>

View File

@ -1,11 +1,17 @@
<ul> <ul>
<?php foreach($this->getHierarchy() as $parentId => $childIds): ?> <?php foreach($this->getHierarchy() as $parentId => $childIds): ?>
<li> <li>
<a href="<?php echo helper::baseUrl() . $parentId; ?>"><?php echo $this->getData(['page', $parentId, 'title']); ?></a> <?php if ($this->getData(['page', $parentId, 'disable']) === false) { ?>
<a href="<?php echo helper::baseUrl() . $parentId; ?>"><?php echo $this->getData(['page', $parentId, 'title']); ?></a>
<?php } else { ?>
<?php echo $this->getData(['page', $parentId, 'title']); }?>
<ul> <ul>
<?php foreach($childIds as $childId): ?> <?php foreach($childIds as $childId): ?>
<li> <li>
<a href="<?php echo helper::baseUrl() . $childId; ?>"><?php echo $this->getData(['page', $childId, 'title']); ?></a> <?php if ($this->getData(['page', $childId, 'disable']) === false) { ?>
<a href="<?php echo helper::baseUrl() . $childId; ?>"><?php echo $this->getData(['page', $childId, 'title']); ?></a>
<?php } else { ?>
<?php echo $this->getData(['page', $childId, 'title']); }?>
</li> </li>
<?php endforeach; ?> <?php endforeach; ?>
</ul> </ul>

View File

@ -10,6 +10,7 @@
* @copyright Copyright (C) 2008-2018, Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean
* @license GNU General Public License, version 3 * @license GNU General Public License, version 3
* @link http://zwiicms.com/ * @link http://zwiicms.com/
* @Edition : 23/9/18 Frédéric Tempez <frederic.tempez@outlook.com>
*/ */
class theme extends common { class theme extends common {
@ -62,6 +63,12 @@ class theme extends common {
'Ubuntu' => 'Ubuntu', 'Ubuntu' => 'Ubuntu',
'Vollkorn' => 'Vollkorn' 'Vollkorn' => 'Vollkorn'
]; ];
public static $footerblocks = [
'hide' => 'Masqué',
'left' => 'Bloc Gauche',
'center' => 'Bloc Central',
'right' => 'Bloc Droite'
];
public static $fontWeights = [ public static $fontWeights = [
'normal' => 'Normal', 'normal' => 'Normal',
'bold' => 'Gras' 'bold' => 'Gras'
@ -266,7 +273,10 @@ class theme extends common {
'socialsAlign' => $this->getInput('themeFooterSocialsAlign'), 'socialsAlign' => $this->getInput('themeFooterSocialsAlign'),
'text' => $this->getInput('themeFooterText', null), 'text' => $this->getInput('themeFooterText', null),
'textAlign' => $this->getInput('themeFooterTextAlign'), 'textAlign' => $this->getInput('themeFooterTextAlign'),
'textColor' => $this->getInput('themeFooterTextColor') 'textColor' => $this->getInput('themeFooterTextColor'),
'copyrightPosition' => $this->getInput('themeFooterCopyrightPosition'),
'textPosition' => $this->getInput('themeFooterTextPosition'),
'socialsPosition' => $this->getInput('themeFooterSocialsPosition')
]]); ]]);
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([

View File

@ -8,6 +8,7 @@
* @copyright Copyright (C) 2008-2018, Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean
* @license GNU General Public License, version 3 * @license GNU General Public License, version 3
* @link http://zwiicms.com/ * @link http://zwiicms.com/
* @Author 23/9/18 Frédéric Tempez <frederic.tempez@outlook.com>
*/ */
/** /**
@ -21,6 +22,7 @@ $("input, select").on("change", function() {
css += "footer a{color:" + textColor + "}"; css += "footer a{color:" + textColor + "}";
// Hauteur du pied de page // Hauteur du pied de page
css += "footer .container > div{margin:" + $("#themeFooterHeight").val() + " 0}"; css += "footer .container > div{margin:" + $("#themeFooterHeight").val() + " 0}";
css += "footer .container-large > div{margin:" + $("#themeFooterHeight").val() + " 0}";
// Alignement du contenu // Alignement du contenu
css += "#footerSocials{text-align:" + $("#themeFooterSocialsAlign").val() + "}"; css += "#footerSocials{text-align:" + $("#themeFooterSocialsAlign").val() + "}";
css += "#footerText{text-align:" + $("#themeFooterTextAlign").val() + "}"; css += "#footerText{text-align:" + $("#themeFooterTextAlign").val() + "}";
@ -52,6 +54,71 @@ $("input, select").on("change", function() {
break; break;
} }
}); });
// Position dans les blocs FT
// Bloc texte personnalisé
$("#themeFooterForm").on("change",function() {
switch($("#themeFooterTextPosition").val()) {
case 'hide':
$("#footerText").hide();
break;
case 'left':
$("#footerText").show().appendTo("#bodyLeft");
$("#footerText").show().appendTo("#siteLeft");
break;
case 'center':
$("#footerText").show().appendTo("#bodyCenter");
$("#footerText").show().appendTo("#siteCenter");
break;
case 'right':
$("#footerText").show().appendTo("#bodyRight");
$("#footerText").show().appendTo("#siteRight");
break;
}
switch($("#themeFooterSocialsPosition").val()) {
case 'hide':
$("#footerSocials").hide();
break;
case 'left':
$("#footerSocials").show().appendTo("#bodyLeft");
$("#footerSocials").show().appendTo("#siteLeft");
break;
case 'center':
$("#footerSocials").show().appendTo("#bodyCenter");
$("#footerSocials").show().appendTo("#siteCenter");
break;
case 'right':
$("#footerSocials").show().appendTo("#bodyRight");
$("#footerSocials").show().appendTo("#siteRight");
break;
}
switch($("#themeFooterCopyrightPosition").val()) {
case 'hide':
$("#footerCopyright").hide();
break;
case 'left':
$("#footerCopyright").show().appendTo("#bodyLeft");
$("#footerCopyright").show().appendTo("#siteLeft");
break;
case 'center':
$("#footerCopyright").show().appendTo("#bodyCenter");
$("#footerCopyright").show().appendTo("#siteCenter");
break;
case 'right':
$("#footerCopyright").show().appendTo("#bodyRight");
$("#footerCopyright").show().appendTo("#siteRight");
break;
}
}).trigger("change");
// Fin Position dans les blocs
// Lien de connexion // Lien de connexion
$("#themeFooterLoginLink").on("change", function() { $("#themeFooterLoginLink").on("change", function() {
if($(this).is(":checked")) { if($(this).is(":checked")) {

View File

@ -59,39 +59,13 @@
</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>Alignement du contenu</h4> <h4>Contenu personnalisé</h4>
<div class="row">
<div class="col4">
<?php echo template::select('themeFooterSocialsAlign', $module::$aligns, [
'label' => 'Réseaux sociaux',
'selected' => $this->getData(['theme', 'footer', 'socialsAlign'])
]); ?>
</div>
<div class="col4">
<?php echo template::select('themeFooterTextAlign', $module::$aligns, [
'label' => 'Texte',
'selected' => $this->getData(['theme', 'footer', 'textAlign'])
]); ?>
</div>
<div class="col4">
<?php echo template::select('themeFooterCopyrightAlign', $module::$aligns, [
'label' => 'Copyright',
'selected' => $this->getData(['theme', 'footer', 'copyrightAlign'])
]); ?>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col6">
<div class="block">
<h4>Contenu</h4>
<?php echo template::textarea('themeFooterText', [ <?php echo template::textarea('themeFooterText', [
'label' => 'Texte du pied de page', 'label' => 'Contenu (texte ou HTML)',
'value' => $this->getData(['theme', 'footer', 'text']) 'value' => $this->getData(['theme', 'footer', 'text'])
]); ?> ]); ?>
<?php echo template::checkbox('themeFooterLoginLink', true, 'Lien de connexion', [ <?php echo template::checkbox('themeFooterLoginLink', true, 'Lien de connexion', [
@ -101,4 +75,47 @@
</div> </div>
</div> </div>
</div> </div>
<div class="row">
<div class="col4">
<div class="block">
<h4>Contenu personnalisé</h4>
<?php echo template::select('themeFooterTextPosition', $module::$footerblocks, [
'label' => 'Emplacement',
'selected' => $this->getData(['theme', 'footer', 'textPosition'])
]); ?>
<?php echo template::select('themeFooterTextAlign', $module::$aligns, [
'label' => 'Alignement',
'selected' => $this->getData(['theme', 'footer', 'textAlign'])
]); ?>
</div>
</div>
<div class="col4">
<div class="block">
<h4>Réseaux sociaux</h4>
<?php echo template::select('themeFooterSocialsPosition', $module::$footerblocks, [
'label' => 'Emplacement',
'selected' => $this->getData(['theme', 'footer', 'socialsPosition'])
]); ?>
<?php echo template::select('themeFooterSocialsAlign', $module::$aligns, [
'label' => 'Alignement',
'selected' => $this->getData(['theme', 'footer', 'socialsAlign'])
]); ?>
</div>
</div>
<div class="col4">
<div class="block">
<h4>Copyright</h4>
<?php echo template::select('themeFooterCopyrightPosition', $module::$footerblocks, [
'label' => 'Emplacement',
'selected' => $this->getData(['theme', 'footer', 'copyrightPosition'])
]); ?>
<?php echo template::select('themeFooterCopyrightAlign', $module::$aligns, [
'label' => 'Alignement',
'selected' => $this->getData(['theme', 'footer', 'copyrightAlign'])
]); ?>
</div>
</div>
</div>
<?php echo template::formClose(); ?> <?php echo template::formClose(); ?>

View File

@ -8,7 +8,7 @@ mb_http_input('UTF-8');
mb_language('uni'); mb_language('uni');
mb_regex_encoding('UTF-8'); mb_regex_encoding('UTF-8');
ob_start('mb_output_handler'); ob_start('mb_output_handler');
date_default_timezone_set('Europe/Rome'); date_default_timezone_set('Europe/Paris');
setlocale(LC_CTYPE, 'fr_FR'); //correct transliteration setlocale(LC_CTYPE, 'fr_FR'); //correct transliteration
/* /*
@ -104,7 +104,7 @@ $config = array(
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| |
| If you want enable ftp use write these parametres otherwise leave empty | If you want enable ftp use write these parametres otherwise leave empty
| Remember to set base_url properly to point in the ftp server domain and | Remember to set base_url properly to point in the ftp server domain and
| upload dir will be ftp_base_folder + upload_dir so without final / | upload dir will be ftp_base_folder + upload_dir so without final /
| |
*/ */
@ -215,13 +215,13 @@ $config = array(
//Show or not language selection feature in filemanager //Show or not language selection feature in filemanager
'show_language_selection' => true, 'show_language_selection' => true,
//active or deactive the transliteration (mean convert all strange characters in A..Za..z0..9 characters) //active or deactive the transliteration (mean convert all strange characters in A..Za..z0..9 characters)
'transliteration' => false, 'transliteration' => true,
//convert all spaces on files name and folders name with $replace_with variable //convert all spaces on files name and folders name with $replace_with variable
'convert_spaces' => false, 'convert_spaces' => true,
//convert all spaces on files name and folders name this value //convert all spaces on files name and folders name this value
'replace_with' => "_", 'replace_with' => "_",
//convert to lowercase the files and folders name //convert to lowercase the files and folders name
'lower_case' => false, 'lower_case' => true,
//Add ?484899493349 (time value) to returned images to prevent cache //Add ?484899493349 (time value) to returned images to prevent cache
'add_time_to_img' => false, 'add_time_to_img' => false,
@ -261,7 +261,7 @@ $config = array(
//****************** //******************
// //
// WATERMARK IMAGE // WATERMARK IMAGE
// //
//Watermark url or false //Watermark url or false
'image_watermark' => false, 'image_watermark' => false,
# Could be a pre-determined position such as: # Could be a pre-determined position such as:
@ -338,11 +338,11 @@ $config = array(
//********************** //**********************
//Allowed extensions (lowercase insert) //Allowed extensions (lowercase insert)
//********************** //**********************
'ext_img' => array( 'jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff', 'svg','ico' ), //Images 'ext_img' => array('jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff', 'svg','ico'), //Images
'ext_file' => array( 'doc', 'docx', 'rtf', 'pdf', 'xls', 'xlsx', 'txt', 'csv', 'html', 'xhtml', 'psd', 'sql', 'log', 'fla', 'xml', 'ade', 'adp', 'mdb', 'accdb', 'ppt', 'pptx', 'odt', 'ots', 'ott', 'odb', 'odg', 'otp', 'otg', 'odf', 'ods', 'odp', 'css', 'ai', 'kmz','dwg', 'dxf', 'hpgl', 'plt', 'spl', 'step', 'stp', 'iges', 'igs', 'sat', 'cgm'), //Files 'ext_file' => array('doc', 'docx', 'rtf', 'pdf', 'xls', 'xlsx', 'txt', 'csv', 'html', 'xhtml', 'psd', 'sql', 'log', 'fla', 'xml', 'ade', 'adp', 'mdb', 'accdb', 'ppt', 'pptx', 'odt', 'ots', 'ott', 'odb', 'odg', 'otp', 'otg', 'odf', 'ods', 'odp', 'css', 'ai', 'kmz','dwg', 'dxf', 'hpgl', 'plt', 'spl', 'step', 'stp', 'iges', 'igs', 'sat', 'cgm'), //Files
'ext_video' => array( 'mov', 'mpeg', 'm4v', 'mp4', 'avi', 'mpg', 'wma', "flv", "webm" ), //Video 'ext_video' => array('mov', 'mpeg', 'm4v', 'mp4', 'avi', 'mpg', 'wma', 'flv', 'webm'), //Video
'ext_music' => array( 'mp3', 'mpga', 'm4a', 'ac3', 'aiff', 'mid', 'ogg', 'wav' ), //Audio 'ext_music' => array('mp3', 'mpga', 'm4a', 'ac3', 'aiff', 'mid', 'ogg', 'wav'), //Audio
'ext_misc' => array( 'zip', 'rar', 'gz', 'tar', 'iso', 'dmg' ), //Archives 'ext_misc' => array('7z', 'zip', 'rar', 'gz', 'tar', 'iso', 'dmg'), //Archives
/****************** /******************
* AVIARY config * AVIARY config
@ -352,7 +352,7 @@ $config = array(
'aviary_language' => "fr", 'aviary_language' => "fr",
'aviary_theme' => "light", 'aviary_theme' => "light",
'aviary_tools' => "all", 'aviary_tools' => "all",
'aviary_maxSize' => "1400", 'aviary_maxSize' => "1920",
// Add or modify the Aviary options below as needed - they will be json encoded when added to the configuration so arrays can be utilized as needed // Add or modify the Aviary options below as needed - they will be json encoded when added to the configuration so arrays can be utilized as needed
//The filter and sorter are managed through both javascript and php scripts because if you have a lot of //The filter and sorter are managed through both javascript and php scripts because if you have a lot of

View File

@ -98,7 +98,7 @@ class blog extends common {
// Ids des commentaires par ordre de création // Ids des commentaires par ordre de création
$commentIds = array_keys(helper::arrayCollumn($comments, 'createdOn', 'SORT_DESC')); $commentIds = array_keys(helper::arrayCollumn($comments, 'createdOn', 'SORT_DESC'));
// Pagination // Pagination
$pagination = helper::pagination($commentIds, $this->getUrl()); $pagination = helper::pagination($commentIds, $this->getUrl(),$this->getData(['config','ItemsperPage']));
// Liste des pages // Liste des pages
self::$pages = $pagination['pages']; self::$pages = $pagination['pages'];
// Commentaires en fonction de la pagination // Commentaires en fonction de la pagination
@ -153,7 +153,7 @@ class blog extends common {
// Ids des articles par ordre de publication // Ids des articles par ordre de publication
$articleIds = array_keys(helper::arrayCollumn($this->getData(['module', $this->getUrl(0)]), 'publishedOn', 'SORT_DESC')); $articleIds = array_keys(helper::arrayCollumn($this->getData(['module', $this->getUrl(0)]), 'publishedOn', 'SORT_DESC'));
// Pagination // Pagination
$pagination = helper::pagination($articleIds, $this->getUrl()); $pagination = helper::pagination($articleIds, $this->getUrl(),$this->getData(['config','ItemsperPage']));
// Liste des pages // Liste des pages
self::$pages = $pagination['pages']; self::$pages = $pagination['pages'];
// Articles en fonction de la pagination // Articles en fonction de la pagination
@ -312,7 +312,7 @@ class blog extends common {
// Ids des commentaires par ordre de publication // Ids des commentaires par ordre de publication
$commentIds = array_keys(helper::arrayCollumn($this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'comment']), 'createdOn', 'SORT_DESC')); $commentIds = array_keys(helper::arrayCollumn($this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'comment']), 'createdOn', 'SORT_DESC'));
// Pagination // Pagination
$pagination = helper::pagination($commentIds, $this->getUrl(), '#comment'); $pagination = helper::pagination($commentIds, $this->getUrl(),$this->getData(['config','ItemsperPage']),'#comment');
// Liste des pages // Liste des pages
self::$pages = $pagination['pages']; self::$pages = $pagination['pages'];
// Commentaires en fonction de la pagination // Commentaires en fonction de la pagination
@ -340,7 +340,7 @@ class blog extends common {
} }
} }
// Pagination // Pagination
$pagination = helper::pagination($articleIds, $this->getUrl()); $pagination = helper::pagination($articleIds, $this->getUrl(),$this->getData(['config','ItemsperPage']));
// Liste des pages // Liste des pages
self::$pages = $pagination['pages']; self::$pages = $pagination['pages'];
// Articles en fonction de la pagination // Articles en fonction de la pagination

View File

@ -106,7 +106,11 @@
<div class="col2"> <div class="col2">
<?php echo template::button('blogEdit', [ <?php echo template::button('blogEdit', [
'class' => 'buttonGrey', 'class' => 'buttonGrey',
<<<<<<< HEAD
'href' => helper::baseUrl() . $this->getUrl(0). '/edit/' . $this->getUrl(1), 'href' => helper::baseUrl() . $this->getUrl(0). '/edit/' . $this->getUrl(1),
=======
'href' => helper::baseUrl() . $this->getUrl(0) . '/edit/' . $this->getUrl(1),
>>>>>>> 8.3.14
'value' => 'Editer' 'value' => 'Editer'
]); ?> ]); ?>
</div> </div>

View File

@ -101,7 +101,7 @@ class form extends common {
$data = $this->getData(['module', $this->getUrl(0), 'data']); $data = $this->getData(['module', $this->getUrl(0), 'data']);
if($data) { if($data) {
// Pagination // Pagination
$pagination = helper::pagination($data, $this->getUrl()); $pagination = helper::pagination($data, $this->getUrl(),$this->getData(['config','ItemsperPage']));
// Liste des pages // Liste des pages
self::$pagination = $pagination['pages']; self::$pagination = $pagination['pages'];
// Inverse l'ordre du tableau // Inverse l'ordre du tableau

View File

@ -82,7 +82,7 @@ class news extends common {
// Ids des news par ordre de publication // Ids des news par ordre de publication
$newsIds = array_keys(helper::arrayCollumn($this->getData(['module', $this->getUrl(0)]), 'publishedOn', 'SORT_DESC')); $newsIds = array_keys(helper::arrayCollumn($this->getData(['module', $this->getUrl(0)]), 'publishedOn', 'SORT_DESC'));
// Pagination // Pagination
$pagination = helper::pagination($newsIds, $this->getUrl()); $pagination = helper::pagination($newsIds, $this->getUrl(),$this->getData(['config','ItemsperPage']));
// Liste des pages // Liste des pages
self::$pages = $pagination['pages']; self::$pages = $pagination['pages'];
// News en fonction de la pagination // News en fonction de la pagination
@ -203,7 +203,7 @@ class news extends common {
} }
} }
// Pagination // Pagination
$pagination = helper::pagination($newsIds, $this->getUrl()); $pagination = helper::pagination($newsIds, $this->getUrl(),$this->getData(['config','ItemsperPage']));
// Liste des pages // Liste des pages
self::$pages = $pagination['pages']; self::$pages = $pagination['pages'];
// News en fonction de la pagination // News en fonction de la pagination

1
site/data/data.json Normal file

File diff suppressed because one or more lines are too long

View File

@ -1 +1,5 @@
/*61addf487f6ccf8de490f4be6feb4c7f*/@import url("https://fonts.googleapis.com/css?family=Open+Sans|Oswald|Oswald");body{background-color:rgba(236,239,241,1);font-family:"Open Sans",sans-serif}a{color:rgba(74,105,189,1)}a:hover{color:rgba(59,90,174,1)}body,.row > div{font-size:14px}body,.block h4,input[type='email'],input[type='text'],input[type='password'],.inputFile,select,textarea,.inputFile,.button.buttonGrey,.button.buttonGrey:hover{color:rgba(33, 34, 35, 1)}.container{max-width:1170px}#site{background-color:rgba(255, 255, 255, 1);border-radius:0;box-shadow:0 #212223}.speechBubble,.button,.button:hover,button[type='submit'],.pagination a,.pagination a:hover,input[type='checkbox']:checked + label:before,input[type='radio']:checked + label:before,.helpContent{background-color:rgba(74,105,189,1);color:white}.helpButton span{color:rgba(74,105,189,1)}input[type='text']:hover,input[type='password']:hover,.inputFile:hover,select:hover,textarea:hover{border-color:rgba(74,105,189,1)}.speechBubble:before{border-color:rgba(74,105,189,1) transparent transparent transparent}.button:hover,button[type='submit']:hover,.pagination a:hover,input[type='checkbox']:not(:active):checked:hover + label:before,input[type='checkbox']:active + label:before,input[type='radio']:checked:hover + label:before,input[type='radio']:not(:checked):active + label:before{background-color:rgba(59,90,174,1)}.helpButton span:hover{color:rgba(59,90,174,1)}.button:active,button[type='submit']:active,.pagination a:active{background-color:rgba(54,85,169,1)}h1,h2,h3,h4,h5,h6{color:rgba(74,105,189,1);font-family:"Oswald",sans-serif;font-weight:normal;text-transform:none}header{background-size:auto}header{background-color:rgba(255,255,255,1);height:150px;line-height:150px;text-align:center}@media (max-width: 767px) {header{height:75px;line-height:75px;}}header span{color:rgba(33,34,35,1);font-family:"Oswald",sans-serif;font-weight:normal;font-size:2em;text-transform:none}nav,nav a{background-color:rgba(74,105,189,1)}nav a,#toggle span,nav a:hover{color:rgba(255, 255, 255, 1)}nav a:hover{background-color:rgba(59,90,174,1)}nav a.active{background-color:rgba(54,85,169,1)}#menu{text-align:left}#toggle span,#menu a{padding:15px 10px;font-weight:normal;font-size:1em;text-transform:none}footer{background-color:rgba(255,255,255,1);color:rgba(33, 34, 35, 1)}footer a{color:rgba(33, 34, 35, 1)}footer .container > div{margin:10px 0}#footerSocials{text-align:center}#footerText{text-align:center}#footerCopyright{text-align:center} <<<<<<< HEAD
/*61addf487f6ccf8de490f4be6feb4c7f*/@import url("https://fonts.googleapis.com/css?family=Open+Sans|Oswald|Oswald");body{background-color:rgba(236,239,241,1);font-family:"Open Sans",sans-serif}a{color:rgba(74,105,189,1)}a:hover{color:rgba(59,90,174,1)}body,.row > div{font-size:14px}body,.block h4,input[type='email'],input[type='text'],input[type='password'],.inputFile,select,textarea,.inputFile,.button.buttonGrey,.button.buttonGrey:hover{color:rgba(33, 34, 35, 1)}.container{max-width:1170px}#site{background-color:rgba(255, 255, 255, 1);border-radius:0;box-shadow:0 #212223}.speechBubble,.button,.button:hover,button[type='submit'],.pagination a,.pagination a:hover,input[type='checkbox']:checked + label:before,input[type='radio']:checked + label:before,.helpContent{background-color:rgba(74,105,189,1);color:white}.helpButton span{color:rgba(74,105,189,1)}input[type='text']:hover,input[type='password']:hover,.inputFile:hover,select:hover,textarea:hover{border-color:rgba(74,105,189,1)}.speechBubble:before{border-color:rgba(74,105,189,1) transparent transparent transparent}.button:hover,button[type='submit']:hover,.pagination a:hover,input[type='checkbox']:not(:active):checked:hover + label:before,input[type='checkbox']:active + label:before,input[type='radio']:checked:hover + label:before,input[type='radio']:not(:checked):active + label:before{background-color:rgba(59,90,174,1)}.helpButton span:hover{color:rgba(59,90,174,1)}.button:active,button[type='submit']:active,.pagination a:active{background-color:rgba(54,85,169,1)}h1,h2,h3,h4,h5,h6{color:rgba(74,105,189,1);font-family:"Oswald",sans-serif;font-weight:normal;text-transform:none}header{background-size:auto}header{background-color:rgba(255,255,255,1);height:150px;line-height:150px;text-align:center}@media (max-width: 767px) {header{height:75px;line-height:75px;}}header span{color:rgba(33,34,35,1);font-family:"Oswald",sans-serif;font-weight:normal;font-size:2em;text-transform:none}nav,nav a{background-color:rgba(74,105,189,1)}nav a,#toggle span,nav a:hover{color:rgba(255, 255, 255, 1)}nav a:hover{background-color:rgba(59,90,174,1)}nav a.active{background-color:rgba(54,85,169,1)}#menu{text-align:left}#toggle span,#menu a{padding:15px 10px;font-weight:normal;font-size:1em;text-transform:none}footer{background-color:rgba(255,255,255,1);color:rgba(33, 34, 35, 1)}footer a{color:rgba(33, 34, 35, 1)}footer .container > div{margin:10px 0}#footerSocials{text-align:center}#footerText{text-align:center}#footerCopyright{text-align:center}
=======
/*eb112aa9a53e26e991af5d7ef6788311*/@import url("https://fonts.googleapis.com/css?family=Open+Sans|Oswald|Oswald");body{background-color:rgba(25,58,81,1);font-family:"Open Sans",sans-serif}a{color:rgba(74,105,189,1)}a:hover{color:rgba(59,90,174,1)}body,.row > div{font-size:14px}body,.block h4,input[type='email'],input[type='text'],input[type='password'],.inputFile,select,textarea,.inputFile,.button.buttonGrey,.button.buttonGrey:hover{color:rgba(33, 34, 35, 1)}.container{max-width:1170px}#site{background-color:rgba(255, 255, 255, 1);border-radius:0;box-shadow:0 #212223}.speechBubble,.button,.button:hover,button[type='submit'],.pagination a,.pagination a:hover,input[type='checkbox']:checked + label:before,input[type='radio']:checked + label:before,.helpContent{background-color:rgba(74,105,189,1);color:white}.helpButton span{color:rgba(74,105,189,1)}input[type='text']:hover,input[type='password']:hover,.inputFile:hover,select:hover,textarea:hover{border-color:rgba(74,105,189,1)}.speechBubble:before{border-color:rgba(74,105,189,1) transparent transparent transparent}.button:hover,button[type='submit']:hover,.pagination a:hover,input[type='checkbox']:not(:active):checked:hover + label:before,input[type='checkbox']:active + label:before,input[type='radio']:checked:hover + label:before,input[type='radio']:not(:checked):active + label:before{background-color:rgba(59,90,174,1)}.helpButton span:hover{color:rgba(59,90,174,1)}.button:active,button[type='submit']:active,.pagination a:active{background-color:rgba(54,85,169,1)}h1,h2,h3,h4,h5,h6{color:rgba(74,105,189,1);font-family:"Oswald",sans-serif;font-weight:normal;text-transform:none}header{background-size:auto}header{background-color:rgba(255,255,255,1);height:150px;line-height:150px;text-align:center}@media (max-width: 767px) {header{height:75px;line-height:75px;}}header span{color:rgba(33,34,35,1);font-family:"Oswald",sans-serif;font-weight:normal;font-size:2em;text-transform:none}nav,nav a{background-color:rgba(74,105,189,1)}nav a,#toggle span,nav a:hover{color:rgba(255, 255, 255, 1)}nav a:hover{background-color:rgba(59,90,174,1)}nav a.active{background-color:rgba(54,85,169,1)}#menu{text-align:left}#toggle span,#menu a{padding:15px 10px;font-weight:normal;font-size:1em;text-transform:none}footer{background-color:rgba(255,255,255,1);color:rgba(33, 34, 35, 1)}footer a{color:rgba(33, 34, 35, 1)}footer .container > div{margin:10px 0}#footerSocials{text-align:center}#footerText{text-align:center}#footerCopyright{text-align:center}
>>>>>>> 8.3.14