forked from ZwiiCMS-Team/ZwiiCMS
version 8.3.14
This commit is contained in:
commit
43301231ee
11
.gitignore
vendored
11
.gitignore
vendored
@ -1,3 +1,4 @@
|
||||
<<<<<<< HEAD
|
||||
# Fichiers temporaires
|
||||
site/tmp/*
|
||||
|
||||
@ -10,9 +11,19 @@ site/data/*
|
||||
# Fichiers uploadés
|
||||
site/file/source/*
|
||||
site/file/thumb/*
|
||||
=======
|
||||
# Fichiers de données
|
||||
site/*
|
||||
>>>>>>> 8.3.14
|
||||
|
||||
# Dossiers vides dans GitHub
|
||||
!.gitkeep
|
||||
|
||||
# PHPStorm
|
||||
.idea/
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
#Visual Code
|
||||
.vscode
|
||||
>>>>>>> 8.3.14
|
||||
|
27
.htaccess
27
.htaccess
@ -4,4 +4,29 @@ SetEnv SESSION_USE_TRANS_SID 0
|
||||
# Bloque l'accès à la liste des fichiers
|
||||
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
1
.vscode/settings.json
vendored
Normal file
@ -0,0 +1 @@
|
||||
{}
|
26
CHANGES.MD
26
CHANGES.MD
@ -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 :
|
||||
- Bannière "responsive", nouvelles options de positionnement
|
||||
- Bouton Edit dans Blog
|
||||
- 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 :
|
||||
* Modification :
|
||||
|
@ -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.
|
||||
|
||||
[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
|
||||
|
||||
|
123
core/core.php
123
core/core.php
@ -24,7 +24,7 @@ class common {
|
||||
const GROUP_MEMBER = 1;
|
||||
const GROUP_MODERATOR = 2;
|
||||
const GROUP_ADMIN = 3;
|
||||
const ZWII_VERSION = '8.3.13';
|
||||
const ZWII_VERSION = '8.4.0';
|
||||
|
||||
public static $actions = [];
|
||||
public static $coreModuleIds = [
|
||||
@ -55,7 +55,8 @@ class common {
|
||||
'youtubeId' => ''
|
||||
],
|
||||
'timezone' => 'Europe/Paris',
|
||||
'title' => 'Zwii, votre site en quelques clics !'
|
||||
'title' => 'Zwii, votre site en quelques clics !',
|
||||
'ItemsperPage' => 10
|
||||
],
|
||||
'core' => [
|
||||
'dataVersion' => 0,
|
||||
@ -74,6 +75,7 @@ class common {
|
||||
'metaDescription' => '',
|
||||
'metaTitle' => '',
|
||||
'moduleId' => '',
|
||||
'modulePosition' => 'bottom',
|
||||
'parentPageId' => '',
|
||||
'position' => 1,
|
||||
'group' => self::GROUP_VISITOR,
|
||||
@ -91,6 +93,7 @@ class common {
|
||||
'metaDescription' => '',
|
||||
'metaTitle' => '',
|
||||
'moduleId' => '',
|
||||
'modulePosition' => 'bottom',
|
||||
'parentPageId' => 'accueil',
|
||||
'position' => 1,
|
||||
'group' => self::GROUP_VISITOR,
|
||||
@ -109,6 +112,7 @@ class common {
|
||||
'metaTitle' => '',
|
||||
'moduleId' => '',
|
||||
'parentPageId' => '',
|
||||
'modulePosition' => 'bottom',
|
||||
'position' => 2,
|
||||
'group' => self::GROUP_MEMBER,
|
||||
'targetBlank' => false,
|
||||
@ -124,6 +128,7 @@ class common {
|
||||
'metaDescription' => '',
|
||||
'metaTitle' => '',
|
||||
'moduleId' => 'blog',
|
||||
'modulePosition' => 'bottom',
|
||||
'parentPageId' => '',
|
||||
'position' => 3,
|
||||
'group' => self::GROUP_VISITOR,
|
||||
@ -141,6 +146,7 @@ class common {
|
||||
'metaDescription' => '',
|
||||
'metaTitle' => '',
|
||||
'moduleId' => 'gallery',
|
||||
'modulePosition' => 'bottom',
|
||||
'parentPageId' => '',
|
||||
'position' => 4,
|
||||
'group' => self::GROUP_VISITOR,
|
||||
@ -158,6 +164,7 @@ class common {
|
||||
'metaDescription' => '',
|
||||
'metaTitle' => '',
|
||||
'moduleId' => 'redirection',
|
||||
'modulePosition' => 'bottom',
|
||||
'parentPageId' => '',
|
||||
'position' => 5,
|
||||
'group' => self::GROUP_VISITOR,
|
||||
@ -175,6 +182,7 @@ class common {
|
||||
'metaDescription' => '',
|
||||
'metaTitle' => '',
|
||||
'moduleId' => 'form',
|
||||
'modulePosition' => 'bottom',
|
||||
'parentPageId' => '',
|
||||
'position' => 6,
|
||||
'group' => self::GROUP_VISITOR,
|
||||
@ -307,7 +315,10 @@ class common {
|
||||
'socialsAlign' => 'center',
|
||||
'text' => '',
|
||||
'textAlign' => 'center',
|
||||
'textColor' => 'rgba(33, 34, 35, 1)'
|
||||
'textColor' => 'rgba(33, 34, 35, 1)',
|
||||
'copyrightPosition' => '3',
|
||||
'textPosition' => '2',
|
||||
'socialsPosition' => '1'
|
||||
],
|
||||
'header' => [
|
||||
'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
|
||||
* @param array $keys Clé(s) des données
|
||||
@ -865,8 +897,17 @@ class common {
|
||||
$this->setData(['theme','header','imageContainer','auto']);
|
||||
$this->setData(['core', 'dataVersion', 8313]);
|
||||
$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)) {
|
||||
ob_start();
|
||||
include $viewPath;
|
||||
$this->addOutput([
|
||||
'content' => ($output['showPageContent'] ? $pageContent : '') . ob_get_clean()
|
||||
]);
|
||||
$modpos = $this->getData(['page', $this->getUrl(0), 'modulePosition']);
|
||||
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
|
||||
if($output['vendor'] !== $this->output['vendor']) {
|
||||
$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))
|
||||
* @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 $item pagination nombre d'éléments par page
|
||||
* @param null|int $sufix Suffixe de l'url
|
||||
* @return array
|
||||
*/
|
||||
public static function pagination($array, $url, $sufix = null) {
|
||||
public static function pagination($array, $url, $item, $sufix = null) {
|
||||
// Scinde l'url
|
||||
$url = explode('/', $url);
|
||||
// Url de pagination
|
||||
@ -1617,13 +1672,13 @@ class helper {
|
||||
// Nombre d'éléments à afficher
|
||||
$nbElements = count($array);
|
||||
// Nombre de page
|
||||
$nbPage = ceil($nbElements / 10);
|
||||
$nbPage = ceil($nbElements / $item);
|
||||
// Page courante
|
||||
$currentPage = is_numeric($urlPagination) ? self::filter($urlPagination, self::FILTER_INT) : 1;
|
||||
// Premier élément de la page
|
||||
$firstElement = ($currentPage - 1) * 10;
|
||||
$firstElement = ($currentPage - 1) * $item;
|
||||
// Dernier élément de la page
|
||||
$lastElement = $firstElement + 10;
|
||||
$lastElement = $firstElement + $item;
|
||||
$lastElement = ($lastElement > $nbElements) ? $nbElements : $lastElement;
|
||||
// Mise en forme de la liste des pages
|
||||
$pages = '';
|
||||
@ -1827,30 +1882,30 @@ class layout extends common {
|
||||
break;
|
||||
case 'text' :
|
||||
$items .= $this->getData(['page', $parentPageId, 'title']);
|
||||
break;
|
||||
break;
|
||||
case 'icon' :
|
||||
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 {
|
||||
$items .= $this->getData(['page', $parentPageId, 'title']);
|
||||
}
|
||||
break;
|
||||
case 'icontitle' :
|
||||
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']).'"/>';
|
||||
} else {
|
||||
$items .= $this->getData(['page', $parentPageId, 'title']);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'icontext' :
|
||||
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']);
|
||||
} else {
|
||||
$items .= $this->getData(['page', $parentPageId, 'title']);
|
||||
}
|
||||
break;
|
||||
break;
|
||||
}
|
||||
// Menu Image
|
||||
|
||||
@ -1885,30 +1940,30 @@ class layout extends common {
|
||||
break;
|
||||
case 'text' :
|
||||
$items .= $this->getData(['page', $childKey, 'title']);
|
||||
break;
|
||||
break;
|
||||
case 'icon' :
|
||||
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 {
|
||||
$items .= $this->getData(['page', $parentPageId, 'title']);
|
||||
}
|
||||
break;
|
||||
case 'icontitle' :
|
||||
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']).'"/>';
|
||||
} else {
|
||||
$items .= $this->getData(['page', $childKey, 'title']);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'icontext' :
|
||||
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']);
|
||||
} else {
|
||||
$items .= $this->getData(['page', $childKey, 'title']);
|
||||
}
|
||||
break;
|
||||
break;
|
||||
}
|
||||
$items .= '</a></li>';
|
||||
// Menu Image
|
||||
@ -1937,15 +1992,33 @@ class layout extends common {
|
||||
*/
|
||||
public function showMetaTitle() {
|
||||
echo '<title>' . $this->core->output['metaTitle'] . '</title>';
|
||||
echo '<meta property="og:title" content="' . $this->core->output['metaTitle'] . '" />';
|
||||
}
|
||||
|
||||
/**
|
||||
* Affiche la meta description
|
||||
*/
|
||||
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
|
||||
*/
|
||||
|
@ -1,11 +1,13 @@
|
||||
<?php $layout = new layout($this); ?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<html xmlns:og="http://ogp.me/ns#">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<?php $layout->showMetaTitle(); ?>
|
||||
<?php $layout->showMetaDescription(); ?>
|
||||
<?php $layout->showMetaType(); ?>
|
||||
<?php $layout->showMetaImage(); ?>
|
||||
<?php $layout->showFavicon(); ?>
|
||||
<?php $layout->showVendor(); ?>
|
||||
<link rel="stylesheet" href="<?php echo helper::baseUrl(false); ?>core/layout/common.css">
|
||||
|
@ -305,6 +305,11 @@ header .container {
|
||||
body > nav {
|
||||
margin: 0 -10px;
|
||||
}
|
||||
/* Items du menu */
|
||||
nav a > img {
|
||||
margin: -4px 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
nav #toggle {
|
||||
cursor: pointer;
|
||||
text-align: right;
|
||||
@ -398,9 +403,15 @@ footer {
|
||||
text-align: center;
|
||||
font-size: .8em;
|
||||
padding: 10px 20px;
|
||||
vertical-align:middle;
|
||||
}
|
||||
|
||||
footer .col4 {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
footer #footerSocials {
|
||||
font-size: 1.6em;
|
||||
font-size: 1.0em;
|
||||
}
|
||||
footer #footerSocials span {
|
||||
color: #FFF;
|
||||
|
@ -1,11 +1,13 @@
|
||||
<?php $layout = new layout($this); ?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<html xmlns:og="http://ogp.me/ns#">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<?php $layout->showMetaTitle(); ?>
|
||||
<?php $layout->showMetaDescription(); ?>
|
||||
<?php $layout->showMetaType(); ?>
|
||||
<?php $layout->showMetaImage(); ?>
|
||||
<?php $layout->showFavicon(); ?>
|
||||
<?php $layout->showVendor(); ?>
|
||||
<link rel="stylesheet" href="<?php echo helper::baseUrl(false); ?>core/layout/common.css">
|
||||
|
@ -1,11 +1,13 @@
|
||||
<?php $layout = new layout($this); ?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<html xmlns:og="http://ogp.me/ns#">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<?php $layout->showMetaTitle(); ?>
|
||||
<?php $layout->showMetaDescription(); ?>
|
||||
<?php $layout->showMetaType(); ?>
|
||||
<?php $layout->showMetaImage(); ?>
|
||||
<?php $layout->showFavicon(); ?>
|
||||
<?php $layout->showVendor(); ?>
|
||||
<link rel="stylesheet" href="<?php echo helper::baseUrl(false); ?>core/layout/common.css">
|
||||
@ -135,11 +137,53 @@
|
||||
)
|
||||
): ?>
|
||||
<!-- Pied de page dans le site -->
|
||||
|
||||
<footer <?php if($this->getData(['theme', 'footer', 'position']) === 'hide'): ?>class="displayNone"<?php endif; ?>>
|
||||
<div class="container">
|
||||
<?php $layout->showSocials(); ?>
|
||||
<?php $layout->showFooterText(); ?>
|
||||
<?php $layout->showCopyright(); ?>
|
||||
<div class="row">
|
||||
<div class="col4" id="siteLeft"> <!-- bloc gauche -->
|
||||
<?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>
|
||||
</footer>
|
||||
<?php endif; ?>
|
||||
@ -147,10 +191,51 @@
|
||||
<?php if($this->getData(['theme', 'footer', 'position']) === 'body'): ?>
|
||||
<!-- Pied de page dans le fond du site -->
|
||||
<footer>
|
||||
<div class="container">
|
||||
<?php $layout->showSocials(); ?>
|
||||
<?php $layout->showFooterText(); ?>
|
||||
<?php $layout->showCopyright(); ?>
|
||||
<div class="container-large">
|
||||
<div class="row">
|
||||
<div class="col4" id="bodyLeft"> <!-- bloc gauche -->
|
||||
<?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>
|
||||
</footer>
|
||||
<?php endif; ?>
|
||||
|
@ -134,11 +134,20 @@ class config extends common {
|
||||
'Pacific/Fiji' => '(GMT+12:00) Fiji',
|
||||
'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
|
||||
*/
|
||||
public function backup() {
|
||||
|
||||
// Creation du ZIP
|
||||
$fileName = date('Y-m-d-h-i-s', time()) . '.zip';
|
||||
$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
|
||||
*/
|
||||
@ -184,7 +221,8 @@ class config extends common {
|
||||
'youtubeId' => $this->getInput('configSocialYoutubeId')
|
||||
],
|
||||
'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 === []) {
|
||||
|
@ -1,3 +1,4 @@
|
||||
<?php $this->makeImageTag(); ?>
|
||||
<?php echo template::formOpen('configForm'); ?>
|
||||
<div class="row">
|
||||
<div class="col2">
|
||||
@ -16,18 +17,22 @@
|
||||
<div class="col6">
|
||||
<div class="block">
|
||||
<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'), [
|
||||
'label' => 'Page d\'accueil',
|
||||
'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 class="block">
|
||||
<h4>Options avancées</h4>
|
||||
@ -45,11 +50,18 @@
|
||||
]); ?>
|
||||
<?php echo template::checkbox('configCookieConsent', true, 'Message de consentement pour l\'utilisation des cookies', [
|
||||
'checked' => $this->getData(['config', 'cookieConsent'])
|
||||
]); ?>
|
||||
]); ?>
|
||||
<?php echo template::checkbox('rewrite', true, 'Réécriture d\'URL', [
|
||||
'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é.'
|
||||
]); ?>
|
||||
|
||||
|
||||
<?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 class="col6">
|
||||
@ -132,6 +144,24 @@
|
||||
</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>
|
||||
<?php echo template::formClose(); ?>
|
||||
|
@ -32,7 +32,12 @@ class page extends common {
|
||||
'icontext' => 'Icône et texte'
|
||||
];
|
||||
// menu image
|
||||
|
||||
// Position du module
|
||||
public static $modulePosition = [
|
||||
'bottom' => 'En bas',
|
||||
'top' => 'En haut',
|
||||
'free' => 'Libre'
|
||||
];
|
||||
/**
|
||||
* Création
|
||||
*/
|
||||
@ -54,6 +59,7 @@ class page extends common {
|
||||
'metaTitle' => '',
|
||||
'moduleId' => '',
|
||||
'parentPageId' => '',
|
||||
'modulePosition' => 'bottom',
|
||||
'position' => 0,
|
||||
'group' => self::GROUP_VISITOR,
|
||||
'targetBlank' => false,
|
||||
@ -183,6 +189,7 @@ class page extends common {
|
||||
'metaDescription' => $this->getInput('pageEditMetaDescription', helper::FILTER_STRING_LONG),
|
||||
'metaTitle' => $this->getInput('pageEditMetaTitle'),
|
||||
'moduleId' => $this->getInput('pageEditModuleId'),
|
||||
'modulePosition' => $this->getInput('configModulePosition'),
|
||||
'parentPageId' => $this->getInput('pageEditParentPageId'),
|
||||
'position' => $position,
|
||||
'group' => $this->getInput('pageEditGroup', helper::FILTER_INT),
|
||||
|
@ -128,6 +128,13 @@
|
||||
'maxlength' => '500',
|
||||
'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', [
|
||||
'checked' => $this->getData(['page', $this->getUrl(2), 'hideTitle'])
|
||||
]); ?>
|
||||
|
@ -1,11 +1,17 @@
|
||||
<ul>
|
||||
<?php foreach($this->getHierarchy() as $parentId => $childIds): ?>
|
||||
<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>
|
||||
<?php foreach($childIds as $childId): ?>
|
||||
<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>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
|
@ -10,6 +10,7 @@
|
||||
* @copyright Copyright (C) 2008-2018, Rémi Jean
|
||||
* @license GNU General Public License, version 3
|
||||
* @link http://zwiicms.com/
|
||||
* @Edition : 23/9/18 Frédéric Tempez <frederic.tempez@outlook.com>
|
||||
*/
|
||||
|
||||
class theme extends common {
|
||||
@ -62,6 +63,12 @@ class theme extends common {
|
||||
'Ubuntu' => 'Ubuntu',
|
||||
'Vollkorn' => 'Vollkorn'
|
||||
];
|
||||
public static $footerblocks = [
|
||||
'hide' => 'Masqué',
|
||||
'left' => 'Bloc Gauche',
|
||||
'center' => 'Bloc Central',
|
||||
'right' => 'Bloc Droite'
|
||||
];
|
||||
public static $fontWeights = [
|
||||
'normal' => 'Normal',
|
||||
'bold' => 'Gras'
|
||||
@ -266,7 +273,10 @@ class theme extends common {
|
||||
'socialsAlign' => $this->getInput('themeFooterSocialsAlign'),
|
||||
'text' => $this->getInput('themeFooterText', null),
|
||||
'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
|
||||
$this->addOutput([
|
||||
|
@ -8,6 +8,7 @@
|
||||
* @copyright Copyright (C) 2008-2018, Rémi Jean
|
||||
* @license GNU General Public License, version 3
|
||||
* @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 + "}";
|
||||
// Hauteur du pied de page
|
||||
css += "footer .container > div{margin:" + $("#themeFooterHeight").val() + " 0}";
|
||||
css += "footer .container-large > div{margin:" + $("#themeFooterHeight").val() + " 0}";
|
||||
// Alignement du contenu
|
||||
css += "#footerSocials{text-align:" + $("#themeFooterSocialsAlign").val() + "}";
|
||||
css += "#footerText{text-align:" + $("#themeFooterTextAlign").val() + "}";
|
||||
@ -52,6 +54,71 @@ $("input, select").on("change", function() {
|
||||
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
|
||||
$("#themeFooterLoginLink").on("change", function() {
|
||||
if($(this).is(":checked")) {
|
||||
|
@ -59,39 +59,13 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col12">
|
||||
<div class="block">
|
||||
<h4>Alignement du contenu</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>
|
||||
<h4>Contenu personnalisé</h4>
|
||||
<?php echo template::textarea('themeFooterText', [
|
||||
'label' => 'Texte du pied de page',
|
||||
'label' => 'Contenu (texte ou HTML)',
|
||||
'value' => $this->getData(['theme', 'footer', 'text'])
|
||||
]); ?>
|
||||
<?php echo template::checkbox('themeFooterLoginLink', true, 'Lien de connexion', [
|
||||
@ -101,4 +75,47 @@
|
||||
</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(); ?>
|
24
core/vendor/filemanager/config/config.php
vendored
24
core/vendor/filemanager/config/config.php
vendored
@ -8,7 +8,7 @@ mb_http_input('UTF-8');
|
||||
mb_language('uni');
|
||||
mb_regex_encoding('UTF-8');
|
||||
ob_start('mb_output_handler');
|
||||
date_default_timezone_set('Europe/Rome');
|
||||
date_default_timezone_set('Europe/Paris');
|
||||
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
|
||||
| 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 /
|
||||
|
|
||||
*/
|
||||
@ -215,13 +215,13 @@ $config = array(
|
||||
//Show or not language selection feature in filemanager
|
||||
'show_language_selection' => true,
|
||||
//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_spaces' => false,
|
||||
'convert_spaces' => true,
|
||||
//convert all spaces on files name and folders name this value
|
||||
'replace_with' => "_",
|
||||
//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_time_to_img' => false,
|
||||
@ -261,7 +261,7 @@ $config = array(
|
||||
//******************
|
||||
//
|
||||
// WATERMARK IMAGE
|
||||
//
|
||||
//
|
||||
//Watermark url or false
|
||||
'image_watermark' => false,
|
||||
# Could be a pre-determined position such as:
|
||||
@ -338,11 +338,11 @@ $config = array(
|
||||
//**********************
|
||||
//Allowed extensions (lowercase insert)
|
||||
//**********************
|
||||
'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_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_misc' => array( 'zip', 'rar', 'gz', 'tar', 'iso', 'dmg' ), //Archives
|
||||
'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_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_misc' => array('7z', 'zip', 'rar', 'gz', 'tar', 'iso', 'dmg'), //Archives
|
||||
|
||||
/******************
|
||||
* AVIARY config
|
||||
@ -352,7 +352,7 @@ $config = array(
|
||||
'aviary_language' => "fr",
|
||||
'aviary_theme' => "light",
|
||||
'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
|
||||
|
||||
//The filter and sorter are managed through both javascript and php scripts because if you have a lot of
|
||||
|
@ -98,7 +98,7 @@ class blog extends common {
|
||||
// Ids des commentaires par ordre de création
|
||||
$commentIds = array_keys(helper::arrayCollumn($comments, 'createdOn', 'SORT_DESC'));
|
||||
// Pagination
|
||||
$pagination = helper::pagination($commentIds, $this->getUrl());
|
||||
$pagination = helper::pagination($commentIds, $this->getUrl(),$this->getData(['config','ItemsperPage']));
|
||||
// Liste des pages
|
||||
self::$pages = $pagination['pages'];
|
||||
// Commentaires en fonction de la pagination
|
||||
@ -153,7 +153,7 @@ class blog extends common {
|
||||
// Ids des articles par ordre de publication
|
||||
$articleIds = array_keys(helper::arrayCollumn($this->getData(['module', $this->getUrl(0)]), 'publishedOn', 'SORT_DESC'));
|
||||
// Pagination
|
||||
$pagination = helper::pagination($articleIds, $this->getUrl());
|
||||
$pagination = helper::pagination($articleIds, $this->getUrl(),$this->getData(['config','ItemsperPage']));
|
||||
// Liste des pages
|
||||
self::$pages = $pagination['pages'];
|
||||
// Articles en fonction de la pagination
|
||||
@ -312,7 +312,7 @@ class blog extends common {
|
||||
// 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'));
|
||||
// Pagination
|
||||
$pagination = helper::pagination($commentIds, $this->getUrl(), '#comment');
|
||||
$pagination = helper::pagination($commentIds, $this->getUrl(),$this->getData(['config','ItemsperPage']),'#comment');
|
||||
// Liste des pages
|
||||
self::$pages = $pagination['pages'];
|
||||
// Commentaires en fonction de la pagination
|
||||
@ -340,7 +340,7 @@ class blog extends common {
|
||||
}
|
||||
}
|
||||
// Pagination
|
||||
$pagination = helper::pagination($articleIds, $this->getUrl());
|
||||
$pagination = helper::pagination($articleIds, $this->getUrl(),$this->getData(['config','ItemsperPage']));
|
||||
// Liste des pages
|
||||
self::$pages = $pagination['pages'];
|
||||
// Articles en fonction de la pagination
|
||||
|
@ -106,7 +106,11 @@
|
||||
<div class="col2">
|
||||
<?php echo template::button('blogEdit', [
|
||||
'class' => 'buttonGrey',
|
||||
<<<<<<< HEAD
|
||||
'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'
|
||||
]); ?>
|
||||
</div>
|
||||
|
@ -101,7 +101,7 @@ class form extends common {
|
||||
$data = $this->getData(['module', $this->getUrl(0), 'data']);
|
||||
if($data) {
|
||||
// Pagination
|
||||
$pagination = helper::pagination($data, $this->getUrl());
|
||||
$pagination = helper::pagination($data, $this->getUrl(),$this->getData(['config','ItemsperPage']));
|
||||
// Liste des pages
|
||||
self::$pagination = $pagination['pages'];
|
||||
// Inverse l'ordre du tableau
|
||||
|
@ -82,7 +82,7 @@ class news extends common {
|
||||
// Ids des news par ordre de publication
|
||||
$newsIds = array_keys(helper::arrayCollumn($this->getData(['module', $this->getUrl(0)]), 'publishedOn', 'SORT_DESC'));
|
||||
// Pagination
|
||||
$pagination = helper::pagination($newsIds, $this->getUrl());
|
||||
$pagination = helper::pagination($newsIds, $this->getUrl(),$this->getData(['config','ItemsperPage']));
|
||||
// Liste des pages
|
||||
self::$pages = $pagination['pages'];
|
||||
// News en fonction de la pagination
|
||||
@ -203,7 +203,7 @@ class news extends common {
|
||||
}
|
||||
}
|
||||
// Pagination
|
||||
$pagination = helper::pagination($newsIds, $this->getUrl());
|
||||
$pagination = helper::pagination($newsIds, $this->getUrl(),$this->getData(['config','ItemsperPage']));
|
||||
// Liste des pages
|
||||
self::$pages = $pagination['pages'];
|
||||
// News en fonction de la pagination
|
||||
|
1
site/data/data.json
Normal file
1
site/data/data.json
Normal file
File diff suppressed because one or more lines are too long
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user