Page Améliore l'insertion CSS et JS

This commit is contained in:
Fred Tempez 2022-11-16 15:51:12 +01:00
parent 1de6177929
commit 189f5e1365
9 changed files with 81 additions and 26 deletions

View File

@ -49,7 +49,7 @@ class common
// Numéro de version // Numéro de version
const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/update/raw/branch/master/'; const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/update/raw/branch/master/';
const ZWII_VERSION = '12.0.00-dev020'; const ZWII_VERSION = '12.0.00-dev021';
const ZWII_UPDATE_CHANNEL = "test"; const ZWII_UPDATE_CHANNEL = "test";
public static $actions = []; public static $actions = [];
@ -2935,8 +2935,7 @@ class core extends common
'title' => $title, 'title' => $title,
'content' => $this->getPage($this->getUrl(0), self::$i18nContent) . 'content' => $this->getPage($this->getUrl(0), self::$i18nContent) .
// Concatène avec les paramètres avancés. // Concatène avec les paramètres avancés.
$this->getData(['page', $this->getUrl(0), 'css']) . '<script>' . $this->getData(['page', $this->getUrl(0), 'js']) . '</script>',
$this->getData(['page', $this->getUrl(0), 'js']),
'metaDescription' => $this->getData(['page', $this->getUrl(0), 'metaDescription']), 'metaDescription' => $this->getData(['page', $this->getUrl(0), 'metaDescription']),
'metaTitle' => $this->getData(['page', $this->getUrl(0), 'metaTitle']), 'metaTitle' => $this->getData(['page', $this->getUrl(0), 'metaTitle']),
'typeMenu' => $this->getData(['page', $this->getUrl(0), 'typeMenu']), 'typeMenu' => $this->getData(['page', $this->getUrl(0), 'typeMenu']),

View File

@ -20,6 +20,10 @@
<link rel="alternate" type="application/rss+xml" href="'<?php echo helper::baseUrl(). $this->getUrl(0) . '/rss';?>" title="fLUX rss"> <link rel="alternate" type="application/rss+xml" href="'<?php echo helper::baseUrl(). $this->getUrl(0) . '/rss';?>" title="fLUX rss">
<?php endif; ?> <?php endif; ?>
<?php $this->showStyle(); ?> <?php $this->showStyle(); ?>
<!-- Style de la page affichée -->
<?php if ( $this->getData(['page', $this->getUrl(0), 'css'])): ?>
<?php echo '<style>' . $this->getData(['page', $this->getUrl(0), 'css']) . '</style>'; ?>
<?php endif;?>
<!-- Script perso dans le header --> <!-- Script perso dans le header -->
<?php if (file_exists(self::DATA_DIR .'head.inc.html')) { <?php if (file_exists(self::DATA_DIR .'head.inc.html')) {
include(self::DATA_DIR .'head.inc.html'); include(self::DATA_DIR .'head.inc.html');

View File

@ -199,7 +199,9 @@ class init extends common {
'displayMenu' => 'none', 'displayMenu' => 'none',
'hideMenuSide' => false, 'hideMenuSide' => false,
'hideMenuChildren' =>false, 'hideMenuChildren' =>false,
'extraPosition' => false 'extraPosition' => false,
'css' => '',
'js' => ''
] ]
], ],
'module' => [], 'module' => [],
@ -359,7 +361,9 @@ class init extends common {
'displayMenu' => 'none', 'displayMenu' => 'none',
'hideMenuSide' => false, 'hideMenuSide' => false,
'hideMenuChildren' =>false, 'hideMenuChildren' =>false,
'extraPosition' => false 'extraPosition' => false,
'css' => '',
'js' => ''
], ],
'enfant' => [ 'enfant' => [
'typeMenu' => 'text', 'typeMenu' => 'text',
@ -384,7 +388,9 @@ class init extends common {
'displayMenu' => 'none', 'displayMenu' => 'none',
'hideMenuSide' => false, 'hideMenuSide' => false,
'hideMenuChildren' =>false, 'hideMenuChildren' =>false,
'extraPosition' => false 'extraPosition' => false,
'css' => '',
'js' => ''
], ],
'privee' => [ 'privee' => [
'typeMenu' => 'text', 'typeMenu' => 'text',
@ -409,7 +415,9 @@ class init extends common {
'displayMenu' => 'none', 'displayMenu' => 'none',
'hideMenuSide' => false, 'hideMenuSide' => false,
'hideMenuChildren' =>false, 'hideMenuChildren' =>false,
'extraPosition' => false 'extraPosition' => false,
'css' => '',
'js' => ''
], ],
'mise-en-page' => [ 'mise-en-page' => [
'typeMenu' => 'text', 'typeMenu' => 'text',
@ -434,7 +442,9 @@ class init extends common {
'displayMenu' => 'none', 'displayMenu' => 'none',
'hideMenuSide' => false, 'hideMenuSide' => false,
'hideMenuChildren' =>false, 'hideMenuChildren' =>false,
'extraPosition' => false 'extraPosition' => false,
'css' => '',
'js' => ''
], ],
'menu-lateral' => [ 'menu-lateral' => [
'typeMenu' => 'text', 'typeMenu' => 'text',
@ -459,7 +469,9 @@ class init extends common {
'displayMenu' => 'none', 'displayMenu' => 'none',
'hideMenuSide' => false, 'hideMenuSide' => false,
'hideMenuChildren' =>false, 'hideMenuChildren' =>false,
'extraPosition' => false 'extraPosition' => false,
'css' => '',
'js' => ''
], ],
'blog' => [ 'blog' => [
'typeMenu' => 'text', 'typeMenu' => 'text',
@ -484,7 +496,9 @@ class init extends common {
'displayMenu' => 'none', 'displayMenu' => 'none',
'hideMenuSide' => false, 'hideMenuSide' => false,
'hideMenuChildren' =>false, 'hideMenuChildren' =>false,
'extraPosition' => false 'extraPosition' => false,
'css' => '',
'js' => ''
], ],
'galeries' => [ 'galeries' => [
'typeMenu' => 'text', 'typeMenu' => 'text',
@ -509,7 +523,9 @@ class init extends common {
'displayMenu' => 'none', 'displayMenu' => 'none',
'hideMenuSide' => false, 'hideMenuSide' => false,
'hideMenuChildren' =>false, 'hideMenuChildren' =>false,
'extraPosition' => false 'extraPosition' => false,
'css' => '',
'js' => ''
], ],
'site-de-zwii' => [ 'site-de-zwii' => [
'typeMenu' => 'text', 'typeMenu' => 'text',
@ -535,7 +551,9 @@ class init extends common {
'displayMenu' => 'none', 'displayMenu' => 'none',
'hideMenuSide' => false, 'hideMenuSide' => false,
'hideMenuChildren' =>false, 'hideMenuChildren' =>false,
'extraPosition' => false 'extraPosition' => false,
'css' => '',
'js' => ''
], ],
'contact' => [ 'contact' => [
'typeMenu' => 'text', 'typeMenu' => 'text',
@ -560,7 +578,9 @@ class init extends common {
'displayMenu' => 'none', 'displayMenu' => 'none',
'hideMenuSide' => false, 'hideMenuSide' => false,
'hideMenuChildren' =>false, 'hideMenuChildren' =>false,
'extraPosition' => false 'extraPosition' => false,
'css' => '',
'js' => ''
], ],
'barre' => [ 'barre' => [
'typeMenu' => 'text', 'typeMenu' => 'text',
@ -585,7 +605,9 @@ class init extends common {
'displayMenu' => 'none', 'displayMenu' => 'none',
'hideMenuSide' => false, 'hideMenuSide' => false,
'hideMenuChildren' =>false, 'hideMenuChildren' =>false,
'extraPosition' => false 'extraPosition' => false,
'css' => '',
'js' => ''
], ],
'barrelateraleavecmenu' => [ 'barrelateraleavecmenu' => [
'typeMenu' => 'text', 'typeMenu' => 'text',
@ -610,7 +632,9 @@ class init extends common {
'displayMenu' => 'parents', 'displayMenu' => 'parents',
'hideMenuSide' => false, 'hideMenuSide' => false,
'hideMenuChildren' =>false, 'hideMenuChildren' =>false,
'extraPosition' => false 'extraPosition' => false,
'css' => '',
'js' => ''
], ],
'mentions-legales' => [ 'mentions-legales' => [
'typeMenu' => 'text', 'typeMenu' => 'text',
@ -636,7 +660,9 @@ class init extends common {
'hideMenuSide' => false, 'hideMenuSide' => false,
'hideMenuHead' => false, 'hideMenuHead' => false,
'hideMenuChildren' => false, 'hideMenuChildren' => false,
'extraPosition' => false 'extraPosition' => false,
'css' => '',
'js' => ''
], ],
'erreur302' => [ 'erreur302' => [
'typeMenu' => 'text', 'typeMenu' => 'text',
@ -662,7 +688,9 @@ class init extends common {
'hideMenuSide' => true, 'hideMenuSide' => true,
'hideMenuHead' => true, 'hideMenuHead' => true,
'hideMenuChildren' => true, 'hideMenuChildren' => true,
'extraPosition' => false 'extraPosition' => false,
'css' => '',
'js' => ''
], ],
'erreur403' => [ 'erreur403' => [
'typeMenu' => 'text', 'typeMenu' => 'text',
@ -687,7 +715,9 @@ class init extends common {
'displayMenu' => 'none', 'displayMenu' => 'none',
'hideMenuSide' => false, 'hideMenuSide' => false,
'hideMenuChildren' => false, 'hideMenuChildren' => false,
'extraPosition' => false 'extraPosition' => false,
'css' => '',
'js' => ''
], ],
'erreur404' => [ 'erreur404' => [
'typeMenu' => 'text', 'typeMenu' => 'text',
@ -712,7 +742,9 @@ class init extends common {
'displayMenu' => 'none', 'displayMenu' => 'none',
'hideMenuSide' => false, 'hideMenuSide' => false,
'hideMenuChildren' =>false, 'hideMenuChildren' =>false,
'extraPosition' => false 'extraPosition' => false,
'css' => '',
'js' => ''
], ],
'recherche' => [ 'recherche' => [
'typeMenu' => 'icon', 'typeMenu' => 'icon',
@ -737,7 +769,9 @@ class init extends common {
'displayMenu' => 'none', 'displayMenu' => 'none',
'hideMenuSide' => false, 'hideMenuSide' => false,
'hideMenuChildren' => false, 'hideMenuChildren' => false,
'extraPosition' => true 'extraPosition' => true,
'css' => '',
'js' => ''
], ],
], ],
'module' => [ 'module' => [

View File

@ -299,6 +299,7 @@
"Enregistrer": "To register", "Enregistrer": "To register",
"Éditeur CSS": "CSS publisher", "Éditeur CSS": "CSS publisher",
"Éditeur JS": "JS editor", "Éditeur JS": "JS editor",
"Ne pas saisir les balises": "Do not enter tags",
"Accueil": "Welcome", "Accueil": "Welcome",
"Aide": "Aide", "Aide": "Aide",
"Fontes": "Sources", "Fontes": "Sources",

View File

@ -130,7 +130,7 @@
"Supprimer le module": "Eliminar módulo", "Supprimer le module": "Eliminar módulo",
"Sauvegarder le module dans le gestionnaire de fichiers": "Guardar módulo en el administrador de archivos", "Sauvegarder le module dans le gestionnaire de fichiers": "Guardar módulo en el administrador de archivos",
"Sauvegarder et télécharger le module": "Guardar y descargar módulo", "Sauvegarder et télécharger le module": "Guardar y descargar módulo",
"Sauvegarder les données du module dans le gestionnaire de fichiers": "Guardar de los datos del módulo en el administrador de archivos", "Sauvegarder les données du module dans le gestionnaire de fichiers": "Guardar de los datos del módulo en el administrador de archivos",
"'Sauvegarder et télécharger les données du module": "Guardar y descargar de los datos del módulo", "'Sauvegarder et télécharger les données du module": "Guardar y descargar de los datos del módulo",
"Installer depuis le catalogue en ligne": "Instalar desde el archivo en línea", "Installer depuis le catalogue en ligne": "Instalar desde el archivo en línea",
"Installer depuis une archive": "Instalar desde un archivo", "Installer depuis une archive": "Instalar desde un archivo",
@ -253,7 +253,6 @@
"Contenu": "Contenido", "Contenu": "Contenido",
"Mise en forme des titres": "Formato de título", "Mise en forme des titres": "Formato de título",
"Copie des traductions rédigées": "Copia de traducciones redactadas", "Copie des traductions rédigées": "Copia de traducciones redactadas",
"Multilangue": "Multilingüe",
"Identité": "Identificación", "Identité": "Identificación",
"Permissions :": "Permisos", "Permissions :": "Permisos",
"Accès aux pages privées": "Acceso a páginas privadas", "Accès aux pages privées": "Acceso a páginas privadas",
@ -300,6 +299,7 @@
"Enregistrer": "Registrar", "Enregistrer": "Registrar",
"Éditeur CSS": "Editor de CSS", "Éditeur CSS": "Editor de CSS",
"Éditeur JS": "Editor de JS", "Éditeur JS": "Editor de JS",
"Ne pas saisir les balises": "No ingrese las etiquetas",
"Accueil": "Inicio", "Accueil": "Inicio",
"Aide": "Ayuda", "Aide": "Ayuda",
"Fontes": "Tipografias", "Fontes": "Tipografias",
@ -366,6 +366,7 @@
"Archive invalide": "Archivo no válido", "Archive invalide": "Archivo no válido",
"Le curseur horizontal règle le niveau de transparence, le placer tout à la gauche pour un surlignement invisible.": "El control deslizante horizontal establece el nivel de transparencia, colóquelo completamente hacia la izquierda para obtener un resaltado invisible.", "Le curseur horizontal règle le niveau de transparence, le placer tout à la gauche pour un surlignement invisible.": "El control deslizante horizontal establece el nivel de transparencia, colóquelo completamente hacia la izquierda para obtener un resaltado invisible.",
"Contenu multilangues": "Contenido multilingüe", "Contenu multilangues": "Contenido multilingüe",
"Multilangue": "Multilingüe",
"Extension": "Extensión", "Extension": "Extensión",
"Permission": "Permiso", "Permission": "Permiso",
"Emplacement dans le menu": "Ubicación en el menú", "Emplacement dans le menu": "Ubicación en el menú",

View File

@ -130,7 +130,7 @@
"Supprimer le module": "", "Supprimer le module": "",
"Sauvegarder le module dans le gestionnaire de fichiers": "", "Sauvegarder le module dans le gestionnaire de fichiers": "",
"Sauvegarder et télécharger le module": "", "Sauvegarder et télécharger le module": "",
"Sauvegarder les données du module dans le gestionnaire de fichiers": "", "Sauvegarder les données du module dans le gestionnaire de fichiers": "",
"'Sauvegarder et télécharger les données du module": "", "'Sauvegarder et télécharger les données du module": "",
"Installer depuis le catalogue en ligne": "", "Installer depuis le catalogue en ligne": "",
"Installer depuis une archive": "", "Installer depuis une archive": "",
@ -299,6 +299,7 @@
"Enregistrer": "", "Enregistrer": "",
"Éditeur CSS": "", "Éditeur CSS": "",
"Éditeur JS": "", "Éditeur JS": "",
"Ne pas saisir les balises": "",
"Accueil": "", "Accueil": "",
"Aide": "", "Aide": "",
"Fontes": "", "Fontes": "",

View File

@ -462,6 +462,7 @@ class page extends common
} }
} }
} }
// Modifie la page ou en crée une nouvelle si l'id a changé // Modifie la page ou en crée une nouvelle si l'id a changé
$this->setData([ $this->setData([
'page', 'page',
@ -492,7 +493,7 @@ class page extends common
'hideMenuChildren' => $this->getinput('pageEditHideMenuChildren', helper::FILTER_BOOLEAN), 'hideMenuChildren' => $this->getinput('pageEditHideMenuChildren', helper::FILTER_BOOLEAN),
'extraPosition' => $this->getinput('pageEditExtraPosition', helper::FILTER_BOOLEAN), 'extraPosition' => $this->getinput('pageEditExtraPosition', helper::FILTER_BOOLEAN),
'css' => $this->getData(['page', $this->getUrl(2), 'css']), 'css' => $this->getData(['page', $this->getUrl(2), 'css']),
'js' => $this->getData(['page', $this->getUrl(2), 'js']) 'js' => $this->getData(['page', $this->getUrl(2), 'js']),
] ]
]); ]);
@ -561,10 +562,14 @@ class page extends common
{ {
// Soumission du formulaire // Soumission du formulaire
if ($this->isPost()) { if ($this->isPost()) {
// Supprime les balises styles si elles ont été saisies
$css = $this->getInput('pageCssEditorContent', null);
$css = str_replace('<style>', '', $css);
$css = str_replace('</style>', '', $css);
// Enregistre le CSS // Enregistre le CSS
$this->setData([ $this->setData([
'page', $this->getUrl(2), 'css', 'page', $this->getUrl(2), 'css',
$this->getInput('pageCssEditorContent', null) $css
]); ]);
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
@ -589,11 +594,15 @@ class page extends common
public function jsEditor() public function jsEditor()
{ {
// Soumission du formulaire // Soumission du formulaire
// Supprime les balises scripts si elles ont été saisies
$js = $this->getInput('pageJsEditorContent', null);
$js = str_replace('<script>', '', $js);
$js = str_replace('<script>', '', $js);
if ($this->isPost()) { if ($this->isPost()) {
// Enregistre le JS // Enregistre le JS
$this->setData([ $this->setData([
'page', $this->getUrl(2), 'js', 'page', $this->getUrl(2), 'js',
$this->getInput('pageJsEditorContent', null) $js
]); ]);
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([

View File

@ -12,6 +12,9 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col12">
<?php echo helper::translate('Ne pas saisir les balises') . htmlentities(' <style></style>'); ?>
</div>
<div class="col12"> <div class="col12">
<?php echo template::textarea('pageCssEditorContent', [ <?php echo template::textarea('pageCssEditorContent', [
'value' => empty($this->getData(['page', $this->getUrl(2), 'css'])) ? '' : $this->getData(['page', $this->getUrl(2), 'css']), 'value' => empty($this->getData(['page', $this->getUrl(2), 'css'])) ? '' : $this->getData(['page', $this->getUrl(2), 'css']),

View File

@ -12,6 +12,9 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col12">
<?php echo helper::translate('Ne pas saisir les balises') . htmlentities(' <script></script>'); ?>
</div>
<div class="col12"> <div class="col12">
<?php echo template::textarea('pageJsEditorContent', [ <?php echo template::textarea('pageJsEditorContent', [
'value' => empty($this->getData(['page', $this->getUrl(2), 'js'])) ? '' : $this->getData(['page', $this->getUrl(2), 'js']), 'value' => empty($this->getData(['page', $this->getUrl(2), 'js'])) ? '' : $this->getData(['page', $this->getUrl(2), 'js']),