Compare commits

...

37 Commits

Author SHA1 Message Date
Fred Tempez 5195d970d2 11505 bug catégorie de fonte vide + warning sur variable non initialisée 5 days ago
Fred Tempez 50bff9081d 11505 5 days ago
Fred Tempez 4f44c8e817 Version du core 2 weeks ago
Fred Tempez 9faea02ac3 typos 2 weeks ago
Fred Tempez 67aea648eb 11504 bug API Google 2 weeks ago
Fred Tempez 4716733c34 11504 Génération de la capture d'écran du site 2 weeks ago
Fred Tempez fe07622042 11504 Bug dans le module de recherche 2 weeks ago
Fred Tempez b06f855ffc 11504 bug du sélecteur de module 2 weeks ago
Fred Tempez aa2db372e7 changes 2 weeks ago
Fred Tempez e4e9a808a6 changes 2 weeks ago
Fred Tempez 6dc4951dec 11503 alléger RFM 3 weeks ago
Fred Tempez d77e8ba1e3 lity 90% width + RFM nettoyage dialog 3 weeks ago
Fred Tempez 290aab12d8 11503 Affiche les options d'édition lorsque le module de la page a été effacé 3 weeks ago
Fred Tempez d8ddf7b0d8 Blog 53 icône RSS 3 weeks ago
Fred Tempez 35f8f26409 11503 changes 3 weeks ago
Fred Tempez 136dfad982 11503 Pb de fontes par cdn 3 weeks ago
Fred Tempez 269587a8f6 11503 3 weeks ago
Fred Tempez 0bf783f1fa 11502 changes 3 weeks ago
Fred Tempez bfc1896028 bug cookie consent port différent de 80 3 weeks ago
Fred Tempez cec51c03aa 11502 bug fontes 3 weeks ago
Fred Tempez 8023cb0826 Bouton installation de module 4 weeks ago
Fred Tempez fccc3795f4 typo 4 weeks ago
Fred Tempez 264ae85f0f version 11.5 4 weeks ago
Fred Tempez 1db350e937 search simplification du test 4 weeks ago
Fred Tempez 899b02cf79 update download 2.6 dans le module 4 weeks ago
Fred Tempez 5c358028c9 changes store 4 weeks ago
Fred Tempez d53e3b2df3 Restauration de l'installation à partir du store 4 weeks ago
Fred Tempez 784d73f7ee Bug de la fonction copie 4 weeks ago
Fred Tempez 9c6ef7a346 search correctif pour download 4 weeks ago
Fred Tempez b908be1287 Mise à jour structure pour download 2.6 4 weeks ago
Fred Tempez 18563c61bc Page ajouter nom court non défini 4 weeks ago
Fred Tempez 6ad5d62d1f support image dans le résumé des articles. 1 month ago
Fred Tempez de22004f48 supprimer constantes de modules inutiles 1 month ago
Fred Tempez 556a2f6c1a changes 1 month ago
Fred Tempez 76017a68e3 changes 1 month ago
Fred Tempez faa3d7c895 Numéro de version 2 months ago
Fred Tempez bd1a174272 Validité des fontes 2 months ago
  1. 41
      CHANGES.md
  2. 2
      README.md
  3. 2
      core/core.js.php
  4. 20
      core/core.php
  5. 22
      core/include/update.inc.php
  6. 2
      core/module/addon/addon.php
  7. 10
      core/module/addon/view/index/index.php
  8. 2
      core/module/addon/view/store/store.php
  9. 26
      core/module/config/config.php
  10. 1
      core/module/config/view/social/social.php
  11. 3
      core/module/page/page.php
  12. 2
      core/module/page/view/edit/edit.php
  13. 61
      core/module/theme/theme.php
  14. 1
      core/vendor/filemanager/css/jplayer.blue.monday.min.css
  15. 154
      core/vendor/filemanager/css/tui-color-picker.css
  16. 6
      core/vendor/filemanager/css/tui-image-editor.css
  17. 34
      core/vendor/filemanager/dialog.php
  18. 3
      core/vendor/filemanager/js/FileSaver.min.js
  19. 1
      core/vendor/filemanager/js/FileSaver.min.js.map
  20. 2
      core/vendor/filemanager/js/canvas-to-blob.min.js
  21. 1
      core/vendor/filemanager/js/canvas-to-blob.min.js.map
  22. 1
      core/vendor/filemanager/js/fabric.min.js
  23. 3
      core/vendor/filemanager/js/jquery.jplayer.min.js
  24. 2
      core/vendor/filemanager/js/load-image.all.min.js
  25. 1
      core/vendor/filemanager/js/load-image.all.min.js.map
  26. 2
      core/vendor/filemanager/js/tmpl.min.js
  27. 1
      core/vendor/filemanager/js/tmpl.min.js.map
  28. 7
      core/vendor/filemanager/js/tui-code-snippet.min.js
  29. 5226
      core/vendor/filemanager/js/tui-color-picker.js
  30. 62237
      core/vendor/filemanager/js/tui-image-editor.js
  31. 6
      core/vendor/jquery/jquery-ui.min.js
  32. 2
      core/vendor/lity/lity.min.css
  33. 4
      module/blog/blog.php
  34. 2
      module/blog/view/article/article.php
  35. 2
      module/form/form.php
  36. 2
      module/gallery/gallery.php
  37. 4
      module/news/news.php
  38. 2
      module/redirection/redirection.php
  39. 15
      module/search/search.php

41
CHANGES.md

@ -1,5 +1,46 @@
# Changelog
## Version 11.5.05
### Corrections :
- Validation de la fenêtre de consentement au cookie envoyant vers une page inconnue lorsque l'URL contient plusieurs ékéments (exemple : article d'un blog)
## Version 11.5.04
### Corrections :
- Édition d'une page : bug de sélection d'un module absent.
- Rechercher dans le site : impossibilité de rechercher dans le contenu des modules (news, blog et download).
### Amélioration :
- Récupération de la capture d'écran du site, 5 tentatives d'appels de l'API Google sont effectuées avant de retourner un échec.
## Version 11.5.03
### Correction :
- Bug de la génération des feuilles de style des fontes, nouvelle correction.
### Améliorations :
- Responsive File Manager (RFM), les scripts externes et les feuilles de style sont chargées à partir du site et non d'un CDN (jquery, fabric, filesaver et jplayer). Cette modification accélère le primo chargement de la fenêtre des fichiers.
- Fenêtre Lity agrandie à 90% de la largeur de la page, ce réglage s'applique également à RFM ainsi qu'à l'éditeur d'image intégrée.
- Edition d'une page contenant un module effacé sur le disque, la modification et l'effacement de la page sont autorisés.
## Version 11.5.02
### Corrections :
- Bug de la génération des feuilles de style des fontes.
- Bug dans le cookie de consentement lorsque le port n'est pas 80.
## Version 11.5.01
### Modifications :
- Restauration du bouton d'installation d'une archive de module depuis le store.
## Version 11.5.00
### Corrections :
- Ajout d'une nouvelle page, le nom court n'est pas défini.
- Bug de la fonction de copie interne utilisée lors de l'installation de la copie de thème, etc..
### Modifications :
- Le module de recherche analyse les descriptions du module Download (Téléchargement).
- Prise en compte des modifications liées à la mise à jour du module Download (Téléchargement), actualisation du changement de structure 'posts' remplace 'items'
- Restauration de la fonction de téléchargement à partir du store.
## Version 11.4.02
### Modification :
- Liste des fontes, contrôle de validité amélioré.
## Version 11.4.01
### Corrections :
- Défaut de chargement des fontes locales (ex: fichiers woff).

2
README.md

@ -1,4 +1,4 @@
# ZwiiCMS 11.4.00
# ZwiiCMS 11.5.05
Zwii est un CMS sans base de données (flat-file) qui permet de créer et gérer facilement un site web sans aucune connaissance en programmation.

2
core/core.js.php

@ -214,7 +214,7 @@ core.start = function() {
// Variables des cookies
var getUrl = window.location;
var domain = "domain=" + getUrl.host + ";";
var domain = "domain=" + getUrl.hostname + ";";
//var path = "path=" + getUrl.pathname.split('/')[1] + ";";
var e = new Date();
e.setFullYear(e.getFullYear() + 1);

20
core/core.php

@ -45,7 +45,7 @@ class common {
// Numéro de version
const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/update/raw/branch/master/';
const ZWII_VERSION = '11.4.01';
const ZWII_VERSION = '11.5.05';
const ZWII_UPDATE_CHANNEL = "v11";
public static $actions = [];
@ -1208,17 +1208,19 @@ class common {
// Boucler dans le dossier source en l'absence d'échec de lecture écriture
while( $success
AND $file = readdir($dir) ) {
if (( $file != '.' ) && ( $file != '..' )) {
if (( $file != '.' ) && ( $file != '..' )) {
if ( is_dir($src . '/' . $file) ){
// Appel récursif des sous-dossiers
$success = $success OR $this->copyDir($src . '/' . $file, $dst . '/' . $file);
$s = $this->copyDir($src . '/' . $file, $dst . '/' . $file);
$success = $s || $success;
}
else {
$success = $success OR copy($src . '/' . $file, $dst . '/' . $file);
$s = copy($src . '/' . $file, $dst . '/' . $file);
$success = $s || $success;
}
}
}
closedir($dir);
return $success;
}
@ -2090,6 +2092,8 @@ class common {
$this->output['showBarEditButton']
// Sur une page sans module
OR $this->getData(['page', $this->getUrl(0), 'moduleId']) === ''
// Sur une page avec un module invalide
OR !class_exists($this->getData(['page', $this->getUrl(2), 'moduleId']))
// Sur une page d'accueil
OR $this->getUrl(0) === ''
) {
@ -2737,10 +2741,12 @@ class core extends common {
'</a> &#8250; '.
$this->getData(['page', $this->getUrl(0), 'title']);
}
// Importe la page
// Importe la page simple sans module ou avec un module inexistant
if(
$this->getData(['page', $this->getUrl(0)]) !== null
AND $this->getData(['page', $this->getUrl(0), 'moduleId']) === ''
AND ( $this->getData(['page', $this->getUrl(0), 'moduleId']) === ''
OR !class_exists($this->getData(['page', $this->getUrl(0), 'moduleId']))
)
AND $access
) {
$this->addOutput([

22
core/include/update.inc.php

@ -957,28 +957,10 @@ if ($this->getData(['core', 'dataVersion']) < 11400) {
// Redirection des pages d'administration vers la bannière de connexion
$this->setData(['config', 'connect', 'redirectLogin', true]);
// Transforme les URL en références relatives
/*
$baseUrl = $this->getData(['core', 'baseUrl']);
$baseUrl2 = str_replace('?', '', $baseUrl);
foreach ($this->getHierarchy(null,null,null) as $parentKey=>$parentValue) {
$pageList [] = $parentKey;
foreach ($parentValue as $childKey) {
$pageList [] = $childKey;
}
}
foreach ($pageList as $parentKey => $parent) {
$s = $this->getPage( $parent, self::$i18n);
// Suppression des sous-dossiers
$s = str_replace ($baseUrl, './', $s);
$s = str_replace ($baseUrl2, './', $s);
$this->setPage( $parent, $s, self::$i18n);
}
*/
// Suppression de la variable URL dans core
$this->deleteData(['core', 'baseUrl']);
// Mise à jour
$this->setData(['core', 'dataVersion', 11400]);
}
}

2
core/module/addon/addon.php

@ -320,13 +320,11 @@ class addon extends common {
? strftime('%d %B %Y', $store[$key]['versionDate'])
: utf8_encode(strftime('%d %B %Y', $store[$key]['versionDate'])),
implode(', ', array_keys($inPagesTitle,$key)),
/*
template::button('moduleExport' . $key, [
'class' => $class,
'href' => helper::baseUrl(). $this->getUrl(0) . '/uploadItem/' . $key.'/' . $_SESSION['csrf'],// appel de fonction vaut exécution, utiliser un paramètre
'value' => $ico
])
*/
];
}
}

10
core/module/addon/view/index/index.php

@ -16,12 +16,18 @@
'class' => 'buttonHelp'
]); ?>
</div>
<div class="col2 offset6">
<div class="col2 offset4">
<?php echo template::button('configModulesStore', [
'href' => helper::baseUrl() . 'addon/store',
'value' => 'Catalogue en ligne'
]); ?>
</div>
</div>
<div class="col2">
<?php echo template::button('configStoreUpload', [
'href' => helper::baseUrl() . 'addon/upload',
'value' => 'Installer'
]); ?>
</div>
</div>
<?php if($module::$modInstal): ?>
<?php echo template::table([2, 2, 2, 2, 1, 1, 1], $module::$modInstal, ['Module installé', 'Alias', 'Version', 'Page(s)', 'Supprimer', 'Exporter', 'Importer']); ?>

2
core/module/addon/view/store/store.php

@ -9,7 +9,7 @@
</div>
</div>
<?php if($module::$storeList): ?>
<?php echo template::table([5, 2, 1, 2, 2], $module::$storeList, ['Catégorie', 'Module', 'Version', 'Date', 'Pages']); ?>
<?php echo template::table([4, 2, 1, 2, 2, 1], $module::$storeList, ['Catégorie', 'Module', 'Version', 'Date', 'Pages', '']); ?>
<?php else: ?>
<?php echo template::speech('Le catalogue est vide.'); ?>
<?php endif; ?>

26
core/module/config/config.php

@ -257,8 +257,18 @@ class config extends common {
$site = 'https://zwiicms.fr/'; } else {
$site = helper::baseUrl(false); }
$success= false;
$googlePagespeedData = helper::getUrlContents('https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url='. $site .'&screenshot=true');
// Succès de la'opération par défaut
$success = false;
// Tente de connecter 5 fois l'API Google
for ($i=0; $i < 5 ; $i++) {
$googlePagespeedData = helper::getUrlContents('https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url='. $site .'&screenshot=true');
if ($googlePagespeedData !== false) {
break;
}
}
// Traitement des données reçues valides.
if ($googlePagespeedData !== false) {
$googlePagespeedData = json_decode($googlePagespeedData, true);
$data = str_replace('_','/',$googlePagespeedData['lighthouseResult']['audits']['final-screenshot']['details']['data']);
@ -778,17 +788,15 @@ class config extends common {
* Récupération des backups auto dans le gestionnaire de fichiers
*/
public function copyBackups() {
// Créer le répertoire manquant
if (!is_dir(self::FILE_DIR.'source/backup')) {
mkdir(self::FILE_DIR.'source/backup', 0755);
}
$this->copyDir(self::BACKUP_DIR, self::FILE_DIR . 'source/backup' );
$success = $this->copyDir(self::BACKUP_DIR, self::FILE_DIR . 'source/backup' );
// Valeurs en sortie
$this->addOutput([
'title' => 'Configuration',
'view' => 'index',
'notification' => 'Copie terminée',
'state' => true
'notification' => 'Copie terminée' . ($success ? ' avec succès' : ' avec des erreurs'),
'state' => $success
]);
}

1
core/module/config/view/social/social.php

@ -16,7 +16,6 @@
<?php echo template::button('socialMetaImage', [
'href' => helper::baseUrl() . 'config/configMetaImage',
'value' => 'Générer une capture Open Graph'
]); ?>
</div>
</div>

3
core/module/page/page.php

@ -153,7 +153,8 @@ class page extends common {
'displayMenu' => '0',
'hideMenuSide' => false,
'hideMenuHead' => false,
'hideMenuChildren' => false
'hideMenuChildren' => false,
'shortTitle' => $pageTitle
]
]);
// Creation du contenu de la page

2
core/module/page/view/edit/edit.php

@ -71,7 +71,7 @@
<?php echo template::select('pageEditModuleId', $module::$moduleIds, [
'help' => 'En cas de changement de module, les données du module précédent seront supprimées.',
'label' => 'Module',
'selected' => $this->getData(['page', $this->getUrl(2), 'moduleId'])
'selected' => class_exists($this->getData(['page', $this->getUrl(2), 'moduleId'])) ? $this->getData(['page', $this->getUrl(2), 'moduleId']) : ''
]); ?>
<?php echo template::hidden('pageEditModuleIdOld',['value' => $this->getData(['page', $this->getUrl(2), 'moduleId'])]); ?>
<?php echo template::hidden('pageEditModuleIdOldText',[

61
core/module/theme/theme.php

@ -432,6 +432,7 @@ class theme extends common {
/**
* Stocker les images incluses dans la bannière perso dans un tableau
*/
$files = [];
preg_match_all('/<img[^>]+>/i',$featureContent, $results);
foreach($results[0] as $value) {
// Lire le contenu XML
@ -462,7 +463,7 @@ class theme extends common {
'tinyHidden' => $this->getInput('themeHeaderTinyHidden', helper::FILTER_BOOLEAN),
'feature' => $this->getInput('themeHeaderFeature'),
'featureContent' => $featureContent,
'featureFiles' => $files
'featureFiles' => $files
]]);
// Modification de la position du menu selon la position de la bannière
if ( $this->getData(['theme','header','position']) == 'site' )
@ -1190,19 +1191,21 @@ class theme extends common {
*/
$gf = false;
$fileContent = '<!-- Fontes personnalisées -->';
foreach ($this->getData(['fonts', 'imported']) as $fontId => $fontValue) {
if (
( $scope === 'user' && in_array($fontId, $fontsInstalled) )
|| $scope === 'all'
) {
//Pré chargement à revoir
//$fileContent .= '<link rel="preload" href="' . $fontValue['resource'] . '" crossorigin="anonymous" as="style">';
$fileContent .= '<link href="' . $fontValue['resource'] .'" rel="stylesheet">';
// Pré connect pour api.google
$gf = strpos($fontValue['resource'], 'fonts.googleapis.com') === false ? $gf || false : $gf || true;
if ( !empty($this->getData(['fonts', 'imported'])) ) {
foreach ($this->getData(['fonts', 'imported']) as $fontId => $fontValue) {
if (
( $scope === 'user' && in_array($fontId, $fontsInstalled) )
|| $scope === 'all'
) {
//Pré chargement à revoir
//$fileContent .= '<link rel="preload" href="' . $fontValue['resource'] . '" crossorigin="anonymous" as="style">';
$fileContent .= '<link href="' . $fontValue['resource'] .'" rel="stylesheet">';
// Pré connect pour api.google
$gf = strpos($fontValue['resource'], 'fonts.googleapis.com') === false ? $gf || false : $gf || true;
}
}
}
// Ajoute le préconnect des fontes Googles.
$fileContent = $gf ? '<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>' . $fileContent
: $fileContent;
@ -1213,23 +1216,25 @@ class theme extends common {
* Fontes installées localement
*/
$fileContentCss = '';
foreach ($this->getData(['fonts', 'files']) as $fontId => $fontValue) {
if (
( $scope === 'user' && in_array($fontId, $fontsInstalled) )
|| $scope === 'all'
) {
if (file_exists(self::DATA_DIR . 'fonts/' . $fontValue['resource']) ) {
// Extension
$path_parts = pathinfo(helper::baseUrl(false) . self::DATA_DIR . 'fonts/' . $fontValue['resource']);
// Chargement de la police
$fileContentCss .= '@font-face {' ;
$fileContentCss .= 'font-family:"' . $fontValue['name'] . '";';
$fileContentCss .= 'src: url("' . $fontValue['resource'] . '") format("' . $path_parts['extension'] . '");';
$fileContentCss .= '}' ;
// Préchargement
//$fileContent = '<link rel="preload" href="' . self::DATA_DIR . 'fonts/' . $fontValue['resource'] . '" type="font/woff" crossorigin="anonymous" as="font">' . $fileContent;
if ( !empty($this->getData(['fonts', 'files'])) ) {
foreach ($this->getData(['fonts', 'files']) as $fontId => $fontValue) {
if (
( $scope === 'user' && in_array($fontId, $fontsInstalled) )
|| $scope === 'all'
) {
if (file_exists(self::DATA_DIR . 'fonts/' . $fontValue['resource']) ) {
// Extension
$path_parts = pathinfo(helper::baseUrl(false) . self::DATA_DIR . 'fonts/' . $fontValue['resource']);
// Chargement de la police
$fileContentCss .= '@font-face {' ;
$fileContentCss .= 'font-family:"' . $fontValue['name'] . '";';
$fileContentCss .= 'src: url("' . $fontValue['resource'] . '") format("' . $path_parts['extension'] . '");';
$fileContentCss .= '}' ;
// Préchargement
//$fileContent = '<link rel="preload" href="' . self::DATA_DIR . 'fonts/' . $fontValue['resource'] . '" type="font/woff" crossorigin="anonymous" as="font">' . $fileContent;
}
}
}
}
}
// Enregistre la personnalisation

1
core/vendor/filemanager/css/jplayer.blue.monday.min.css vendored

File diff suppressed because one or more lines are too long

154
core/vendor/filemanager/css/tui-color-picker.css vendored

@ -0,0 +1,154 @@
/*!
* TOAST UI Color Picker
* @version 2.2.6
* @author NHN FE Development Team <dl_javascript@nhn.com>
* @license MIT
*/
.tui-colorpicker-clearfix {
zoom: 1;
}
.tui-colorpicker-clearfix:after {
content: '';
display: block;
clear: both;
}
.tui-colorpicker-vml {
behavior: url("#default#VML");
display: block;
}
.tui-colorpicker-container {
width: 152px;
}
.tui-colorpicker-palette-container {
width: 152px;
}
.tui-colorpicker-palette-container ul {
width: 152px;
margin: 0px;
padding: 0px;
}
.tui-colorpicker-palette-container li {
float: left;
margin: 0;
padding: 0 3px 3px 0;
list-style: none;
}
.tui-colorpicker-palette-button {
display: block;
border: none;
overflow: hidden;
outline: none;
margin: 0px;
padding: 0px;
width: 16px;
height: 16px;
border: 1px solid #ccc;
cursor: pointer;
}
.tui-colorpicker-palette-button.tui-colorpicker-selected {
border: 2px solid #000;
}
.tui-colorpicker-palette-button.tui-colorpicker-color-transparent {
barckground-repeat: repeat;
background-repeat: no-repeat;
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAOCAYAAAD0f5bSAAABfGlDQ1BJQ0MgUHJvZmlsZQAAKJFjYGAqSSwoyGFhYGDIzSspCnJ3UoiIjFJgv8PAzcDDIMRgxSCemFxc4BgQ4MOAE3y7xsAIoi/rgsxK8/x506a1fP4WNq+ZclYlOrj1gQF3SmpxMgMDIweQnZxSnJwLZOcA2TrJBUUlQPYMIFu3vKQAxD4BZIsUAR0IZN8BsdMh7A8gdhKYzcQCVhMS5AxkSwDZAkkQtgaInQ5hW4DYyRmJKUC2B8guiBvAgNPDRcHcwFLXkYC7SQa5OaUwO0ChxZOaFxoMcgcQyzB4MLgwKDCYMxgwWDLoMjiWpFaUgBQ65xdUFmWmZ5QoOAJDNlXBOT+3oLQktUhHwTMvWU9HwcjA0ACkDhRnEKM/B4FNZxQ7jxDLX8jAYKnMwMDcgxBLmsbAsH0PA4PEKYSYyjwGBn5rBoZt5woSixLhDmf8xkKIX5xmbARh8zgxMLDe+///sxoDA/skBoa/E////73o//+/i4H2A+PsQA4AJHdp4IxrEg8AAAGbaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjEzPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjE0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CghrN1AAAABzSURBVCgVldKxEYAgDAXQD5VOpLuwgi4jlrTMqF00oOd5Aia/CcV/F4oYOgNlrLjvVyCEVJchBjEC25538PeaWTzRMBLxvIL7UZwFwL06qoA6aoAy+gFfJABvJAQPUoCMlICRRd8BzgHzJL4ok9aJ67l4AK9AxVKhHryUAAAAAElFTkSuQmCC");
}
.tui-colorpicker-palette-hex {
font-family: monospace;
display: inline-block;
*display: inline;
zoom: 1;
width: 60px;
vertical-align: middle;
}
.tui-colorpicker-palette-preview {
display: inline-block;
*display: inline;
zoom: 1;
width: 12px;
height: 12px;
border: 1px solid #ccc;
border: 1px solid #ccc;
vertical-align: middle;
overflow: hidden;
}
.tui-colorpicker-palette-toggle-slider {
display: inline-block;
*display: inline;
zoom: 1;
vertical-align: middle;
float: right;
}
.tui-colorpicker-slider-container {
margin: 5px 0 0 0;
height: 122px;
zoom: 1;
}
.tui-colorpicker-slider-container:after {
content: '';
display: block;
clear: both;
}
.tui-colorpicker-slider-left {
float: left;
width: 120px;
height: 120px;
}
.tui-colorpicker-slider-right {
float: right;
width: 32px;
height: 120px;
}
.tui-colorpicker-svg {
display: block;
}
.tui-colorpicker-slider-handle {
position: absolute;
overflow: visible;
top: 0;
left: 0;
width: 1px;
height: 1px;
z-index: 2;
opacity: 0.9;
}
.tui-colorpicker-svg-slider {
width: 120px;
height: 120px;
border: 1px solid #ccc;
overflow: hidden;
}
.tui-colorpicker-vml-slider {
position: relative;
width: 120px;
height: 120px;
border: 1px solid #ccc;
overflow: hidden;
}
.tui-colorpicker-vml-slider-bg {
position: absolute;
margin: -1px 0 0 -1px;
top: 0;
left: 0;
width: 122px;
height: 122px;
}
.tui-colorpicker-svg-huebar {
float: right;
width: 18px;
height: 120px;
border: 1px solid #ccc;
overflow: visible;
}
.tui-colorpicker-vml-huebar {
width: 32px;
position: relative;
}
.tui-colorpicker-vml-huebar-bg {
position: absolute;
top: 0;
right: 0;
width: 18px;
height: 121px;
}

6
core/vendor/filemanager/css/tui-image-editor.css vendored

File diff suppressed because one or more lines are too long

34
core/vendor/filemanager/dialog.php vendored

@ -340,7 +340,7 @@ $get_params = http_build_query($get_params);
<link rel="stylesheet" href="css/jquery.fileupload-ui-noscript.css">
</noscript>
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/jplayer/2.7.1/skin/blue.monday/jplayer.blue.monday.min.css"/>
href="css/jplayer.blue.monday.min.css"/>
<link href="css/style.css?v=<?php
echo $version; ?>" rel="stylesheet" type="text/css"/>
<!--[if lt IE 8]>
@ -352,16 +352,13 @@ $get_params = http_build_query($get_params);
</style>
<![endif]-->
<script src="https://code.jquery.com/jquery-1.12.4.min.js"
integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"
integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>
<script src="../jquery/jquery.min.js"></script>
<script src="../jquery/jquery-ui.min.js"></script>
<script src="js/plugins.js?v=<?php
echo $version; ?>"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jplayer/2.9.2/jplayer/jquery.jplayer.min.js"></script>
<script type='text/javascript' src='https://cdnjs.cloudflare.com/ajax/libs/fabric.js/3.6.0/fabric.js'></script>
<script type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.3/FileSaver.min.js"></script>
<script src="js/jquery.jplayer.min.js"></script>
<script type='text/javascript' src='js/fabric.min.js'></script>
<script type="text/javascript" src="js/FileSaver.min.js"></script>
<script src="js/modernizr.custom.js"></script>
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
@ -371,14 +368,11 @@ $get_params = http_build_query($get_params);
<!-- Only load TUI Libraries if we need it -->
<?php
if ($config['tui_active'] === true) { ?>
<link rel="stylesheet" href="https://uicdn.toast.com/tui-image-editor/latest/tui-image-editor.css">
<link type="text/css" href="https://uicdn.toast.com/tui-color-picker/v2.2.6/tui-color-picker.css"
rel="stylesheet">
<script type="text/javascript"
src="https://uicdn.toast.com/tui.code-snippet/v1.5.0/tui-code-snippet.min.js"></script>
<script type="text/javascript"
src="https://uicdn.toast.com/tui-color-picker/v2.2.6/tui-color-picker.js"></script>
<script src="https://uicdn.toast.com/tui-image-editor/latest/tui-image-editor.js"></script>
<link rel="stylesheet" href="css/tui-image-editor.css">
<link type="text/css" href="css/tui-color-picker.css" rel="stylesheet">
<script type="text/javascript" src="js/tui-code-snippet.min.js"></script>
<script type="text/javascript" src="js/tui-color-picker.js"></script>
<script src="js/tui-image-editor.js"></script>
<?php
} ?>
@ -392,11 +386,11 @@ $get_params = http_build_query($get_params);
</head>
<body>
<!-- The Templates plugin is included to render the upload/download listings -->
<script src="//blueimp.github.io/JavaScript-Templates/js/tmpl.min.js"></script>
<script src="js/tmpl.min.js"></script>
<!-- The Load Image plugin is included for the preview images and image resizing functionality -->
<script src="//cdnjs.cloudflare.com/ajax/libs/blueimp-load-image/2.18.0/load-image.all.min.js"></script>
<script src="js/load-image.all.min.js"></script>
<!-- The Canvas to Blob plugin is included for image resizing functionality -->
<script src="//blueimp.github.io/JavaScript-Canvas-to-Blob/js/canvas-to-blob.min.js"></script>
<script src="js/canvas-to-blob.min.js"></script>
<!-- The Iframe Transport is required for browsers without support for XHR file uploads -->
<script src="js/jquery.iframe-transport.js"></script>
<!-- The basic File Upload plugin -->

3
core/vendor/filemanager/js/FileSaver.min.js vendored

@ -0,0 +1,3 @@
(function(a,b){if("function"==typeof define&&define.amd)define([],b);else if("undefined"!=typeof exports)b();else{b(),a.FileSaver={exports:{}}.exports}})(this,function(){"use strict";function b(a,b){return"undefined"==typeof b?b={autoBom:!1}:"object"!=typeof b&&(console.warn("Deprecated: Expected third argument to be a object"),b={autoBom:!b}),b.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type)?new Blob(["\uFEFF",a],{type:a.type}):a}function c(a,b,c){var d=new XMLHttpRequest;d.open("GET",a),d.responseType="blob",d.onload=function(){g(d.response,b,c)},d.onerror=function(){console.error("could not download file")},d.send()}function d(a){var b=new XMLHttpRequest;b.open("HEAD",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent("click"))}catch(c){var b=document.createEvent("MouseEvents");b.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:void 0,a=/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=f.saveAs||("object"!=typeof window||window!==f?function(){}:"download"in HTMLAnchorElement.prototype&&!a?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement("a");g=g||b.name||"download",j.download=g,j.rel="noopener","string"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target="_blank")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:"msSaveOrOpenBlob"in navigator?function(f,g,h){if(g=g||f.name||"download","string"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement("a");i.href=f,i.target="_blank",setTimeout(function(){e(i)})}}:function(b,d,e,g){if(g=g||open("","_blank"),g&&(g.document.title=g.document.body.innerText="downloading..."),"string"==typeof b)return c(b,d,e);var h="application/octet-stream"===b.type,i=/constructor/i.test(f.HTMLElement)||f.safari,j=/CriOS\/[\d]+/.test(navigator.userAgent);if((j||h&&i||a)&&"undefined"!=typeof FileReader){var k=new FileReader;k.onloadend=function(){var a=k.result;a=j?a:a.replace(/^data:[^;]*;/,"data:attachment/file;"),g?g.location.href=a:location=a,g=null},k.readAsDataURL(b)}else{var l=f.URL||f.webkitURL,m=l.createObjectURL(b);g?g.location=m:location.href=m,g=null,setTimeout(function(){l.revokeObjectURL(m)},4E4)}});f.saveAs=g.saveAs=g,"undefined"!=typeof module&&(module.exports=g)});
//# sourceMappingURL=FileSaver.min.js.map

1
core/vendor/filemanager/js/FileSaver.min.js.map vendored

File diff suppressed because one or more lines are too long

2
core/vendor/filemanager/js/canvas-to-blob.min.js vendored

@ -0,0 +1,2 @@
!function(t){"use strict";var a=t.HTMLCanvasElement&&t.HTMLCanvasElement.prototype,l=t.Blob&&function(){try{return Boolean(new Blob)}catch(t){return!1}}(),u=l&&t.Uint8Array&&function(){try{return 100===new Blob([new Uint8Array(100)]).size}catch(t){return!1}}(),c=t.BlobBuilder||t.WebKitBlobBuilder||t.MozBlobBuilder||t.MSBlobBuilder,b=/^data:((.*?)(;charset=.*?)?)(;base64)?,/,r=(l||c)&&t.atob&&t.ArrayBuffer&&t.Uint8Array&&function(t){var e,o,n,a,r,i=t.match(b);if(!i)throw new Error("invalid data URI");for(e=i[2]?i[1]:"text/plain"+(i[3]||";charset=US-ASCII"),n=!!i[4],i=t.slice(i[0].length),o=(n?atob:decodeURIComponent)(i),n=new ArrayBuffer(o.length),a=new Uint8Array(n),r=0;r<o.length;r+=1)a[r]=o.charCodeAt(r);return l?new Blob([u?a:n],{type:e}):((i=new c).append(n),i.getBlob(e))};t.HTMLCanvasElement&&!a.toBlob&&(a.mozGetAsFile?a.toBlob=function(t,e,o){var n=this;setTimeout(function(){o&&a.toDataURL&&r?t(r(n.toDataURL(e,o))):t(n.mozGetAsFile("blob",e))})}:a.toDataURL&&r&&(a.msToBlob?a.toBlob=function(t,e,o){var n=this;setTimeout(function(){(e&&"image/png"!==e||o)&&a.toDataURL&&r?t(r(n.toDataURL(e,o))):t(n.msToBlob(e))})}:a.toBlob=function(t,e,o){var n=this;setTimeout(function(){t(r(n.toDataURL(e,o)))})})),"function"==typeof define&&define.amd?define(function(){return r}):"object"==typeof module&&module.exports?module.exports=r:t.dataURLtoBlob=r}(window);
//# sourceMappingURL=canvas-to-blob.min.js.map

1
core/vendor/filemanager/js/canvas-to-blob.min.js.map vendored

@ -0,0 +1 @@
{"version":3,"sources":["canvas-to-blob.js"],"names":["window","CanvasPrototype","HTMLCanvasElement","prototype","hasBlobConstructor","Blob","Boolean","e","hasArrayBufferViewSupport","Uint8Array","size","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","dataURIPattern","dataURLtoBlob","atob","ArrayBuffer","dataURI","mediaType","byteString","arrayBuffer","intArray","i","matches","match","Error","isBase64","dataString","slice","length","decodeURIComponent","charCodeAt","type","bb","append","getBlob","toBlob","mozGetAsFile","callback","quality","self","this","setTimeout","toDataURL","msToBlob","define","amd","module","exports"],"mappings":"CAgBC,SAAWA,gBAGV,IAAIC,EACFD,EAAOE,mBAAqBF,EAAOE,kBAAkBC,UACnDC,EACFJ,EAAOK,MACP,WACE,IACE,OAAOC,QAAQ,IAAID,MACnB,MAAOE,GACP,OAAO,GAJX,GAOEC,EACFJ,GACAJ,EAAOS,YACP,WACE,IACE,OAAgD,MAAzC,IAAIJ,KAAK,CAAC,IAAII,WAAW,OAAOC,KACvC,MAAOH,GACP,OAAO,GAJX,GAOEI,EACFX,EAAOW,aACPX,EAAOY,mBACPZ,EAAOa,gBACPb,EAAOc,cACLC,EAAiB,0CACjBC,GACDZ,GAAsBO,IACvBX,EAAOiB,MACPjB,EAAOkB,aACPlB,EAAOS,YACP,SAAUU,GACR,IACEC,EAGAC,EACAC,EACAC,EACAC,EAGFC,EAAUN,EAAQO,MAAMX,GACxB,IAAKU,EACH,MAAM,IAAIE,MAAM,oBAkBlB,IAfAP,EAAYK,EAAQ,GAChBA,EAAQ,GACR,cAAgBA,EAAQ,IAAM,qBAClCG,IAAaH,EAAQ,GACrBI,EAAaV,EAAQW,MAAML,EAAQ,GAAGM,QAGpCV,GAFEO,EAEWX,KAGAe,oBAHKH,GAMpBP,EAAc,IAAIJ,YAAYG,EAAWU,QACzCR,EAAW,IAAId,WAAWa,GACrBE,EAAI,EAAGA,EAAIH,EAAWU,OAAQP,GAAK,EACtCD,EAASC,GAAKH,EAAWY,WAAWT,GAGtC,OAAIpB,EACK,IAAIC,KAAK,CAACG,EAA4Be,EAAWD,GAAc,CACpEY,KAAMd,MAGVe,EAAK,IAAIxB,GACNyB,OAAOd,GACHa,EAAGE,QAAQjB,KAElBpB,EAAOE,oBAAsBD,EAAgBqC,SAC3CrC,EAAgBsC,aAClBtC,EAAgBqC,OAAS,SAAUE,EAAUN,EAAMO,GACjD,IAAIC,EAAOC,KACXC,WAAW,WACLH,GAAWxC,EAAgB4C,WAAa7B,EAC1CwB,EAASxB,EAAc0B,EAAKG,UAAUX,EAAMO,KAE5CD,EAASE,EAAKH,aAAa,OAAQL,OAIhCjC,EAAgB4C,WAAa7B,IAClCf,EAAgB6C,SAClB7C,EAAgBqC,OAAS,SAAUE,EAAUN,EAAMO,GACjD,IAAIC,EAAOC,KACXC,WAAW,YAELV,GAAiB,cAATA,GAAyBO,IACnCxC,EAAgB4C,WAChB7B,EAEAwB,EAASxB,EAAc0B,EAAKG,UAAUX,EAAMO,KAE5CD,EAASE,EAAKI,SAASZ,OAK7BjC,EAAgBqC,OAAS,SAAUE,EAAUN,EAAMO,GACjD,IAAIC,EAAOC,KACXC,WAAW,WACTJ,EAASxB,EAAc0B,EAAKG,UAAUX,EAAMO,UAMhC,mBAAXM,QAAyBA,OAAOC,IACzCD,OAAO,WACL,OAAO/B,IAEkB,iBAAXiC,QAAuBA,OAAOC,QAC9CD,OAAOC,QAAUlC,EAEjBhB,EAAOgB,cAAgBA,EA5H1B,CA8HEhB"}

1
core/vendor/filemanager/js/fabric.min.js vendored

File diff suppressed because one or more lines are too long

3
core/vendor/filemanager/js/jquery.jplayer.min.js vendored

File diff suppressed because one or more lines are too long

2
core/vendor/filemanager/js/load-image.all.min.js vendored

File diff suppressed because one or more lines are too long

1
core/vendor/filemanager/js/load-image.all.min.js.map vendored

File diff suppressed because one or more lines are too long

2
core/vendor/filemanager/js/tmpl.min.js vendored

@ -0,0 +1,2 @@
!function(e){"use strict";function r(e,n){var t=/[^\w\-.:]/.test(e)?new Function(r.arg+",tmpl","var _e=tmpl.encode"+r.helper+",_s='"+e.replace(r.regexp,r.func)+"';return _s;"):r.cache[e]=r.cache[e]||r(r.load(e));return n?t(n,r):function(e){return t(e,r)}}r.cache={},r.load=function(e){return document.getElementById(e).innerHTML},r.regexp=/([\s'\\])(?!(?:[^{]|\{(?!%))*%\})|(?:\{%(=|#)([\s\S]+?)%\})|(\{%)|(%\})/g,r.func=function(e,n,t,r,c,u){return n?{"\n":"\\n","\r":"\\r","\t":"\\t"," ":" "}[n]||"\\"+n:t?"="===t?"'+_e("+r+")+'":"'+("+r+"==null?'':"+r+")+'":c?"';":u?"_s+='":void 0},r.encReg=/[<>&"'\x00]/g,r.encMap={"<":"&lt;",">":"&gt;","&":"&amp;",'"':"&quot;","'":"&#39;"},r.encode=function(e){return(null==e?"":""+e).replace(r.encReg,function(e){return r.encMap[e]||""})},r.arg="o",r.helper=",print=function(s,e){_s+=e?(s==null?'':s):_e(s);},include=function(s,d){_s+=tmpl(s,d);}","function"==typeof define&&define.amd?define(function(){return r}):"object"==typeof module&&module.exports?module.exports=r:e.tmpl=r}(this);
//# sourceMappingURL=tmpl.min.js.map

1
core/vendor/filemanager/js/tmpl.min.js.map vendored

@ -0,0 +1 @@
{"version":3,"sources":["tmpl.js"],"names":["$","tmpl","str","data","f","test","Function","arg","helper","replace","regexp","func","cache","load","id","document","getElementById","innerHTML","s","p1","p2","p3","p4","p5","\n","\r","\t"," ","encReg","encMap","<",">","&","\"","'","encode","c","define","amd","module","exports","this"],"mappings":"CAkBC,SAAWA,gBAEC,SAAPC,EAAiBC,EAAKC,GACxB,IAAIC,EAAK,YAAYC,KAAKH,GAEtB,IAAII,SACFL,EAAKM,IAAM,QACX,qBACEN,EAAKO,OACL,QACAN,EAAIO,QAAQR,EAAKS,OAAQT,EAAKU,MAC9B,gBAPHV,EAAKW,MAAMV,GAAOD,EAAKW,MAAMV,IAAQD,EAAKA,EAAKY,KAAKX,IASzD,OAAOC,EACHC,EAAED,EAAMF,GACR,SAAUE,GACR,OAAOC,EAAED,EAAMF,IAGvBA,EAAKW,MAAQ,GACbX,EAAKY,KAAO,SAAUC,GACpB,OAAOC,SAASC,eAAeF,GAAIG,WAErChB,EAAKS,OACH,2EACFT,EAAKU,KAAO,SAAUO,EAAGC,EAAIC,EAAIC,EAAIC,EAAIC,GACvC,OAAIJ,EAGA,CACEK,KAAM,MACNC,KAAM,MACNC,KAAM,MACNC,IAAK,KACLR,IAAO,KAAOA,EAGhBC,EAES,MAAPA,EACK,QAAUC,EAAK,MAEjB,MAAQA,EAAK,aAAeA,EAAK,MAEtCC,EAEK,KAELC,EAEK,aAFT,GAKFtB,EAAK2B,OAAS,eACd3B,EAAK4B,OAAS,CACZC,IAAK,OACLC,IAAK,OACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SAEPjC,EAAKkC,OAAS,SAAUjB,GAEtB,OAAa,MAALA,EAAY,GAAK,GAAKA,GAAGT,QAAQR,EAAK2B,OAAQ,SAAUQ,GAC9D,OAAOnC,EAAK4B,OAAOO,IAAM,MAG7BnC,EAAKM,IAAM,IACXN,EAAKO,OACH,0FAEoB,mBAAX6B,QAAyBA,OAAOC,IACzCD,OAAO,WACL,OAAOpC,IAEkB,iBAAXsC,QAAuBA,OAAOC,QAC9CD,OAAOC,QAAUvC,EAEjBD,EAAEC,KAAOA,EA9EZ,CAgFEwC"}

7
core/vendor/filemanager/js/tui-code-snippet.min.js vendored

File diff suppressed because one or more lines are too long

5226
core/vendor/filemanager/js/tui-color-picker.js vendored

File diff suppressed because it is too large Load Diff

62237
core/vendor/filemanager/js/tui-image-editor.js vendored

File diff suppressed because one or more lines are too long

6
core/vendor/jquery/jquery-ui.min.js vendored

File diff suppressed because one or more lines are too long

2
core/vendor/lity/lity.min.css vendored

@ -1 +1 @@
.lity{z-index:9990;position:fixed;top:0;right:0;bottom:0;left:0;white-space:nowrap;background:#0b0b0b;background:rgba(0,0,0,.9);outline:none!important;opacity:0;-webkit-transition:opacity .3s ease;-o-transition:opacity .3s ease;transition:opacity .3s ease}.lity.lity-opened{opacity:1}.lity.lity-closed{opacity:0}.lity *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.lity-wrap{z-index:9990;position:fixed;top:0;right:0;bottom:0;left:0;text-align:center;outline:none!important}.lity-wrap:before{content:'';display:inline-block;height:100%;vertical-align:middle;margin-right:-.25em}.lity-loader{z-index:9991;color:#fff;position:absolute;top:50%;margin-top:-.8em;width:100%;text-align:center;font-size:14px;font-family:Arial,Helvetica,sans-serif;opacity:0;-webkit-transition:opacity .3s ease;-o-transition:opacity .3s ease;transition:opacity .3s ease}.lity-loading .lity-loader{opacity:1}.lity-container{z-index:9992;position:relative;text-align:left;vertical-align:middle;display:inline-block;white-space:normal;max-width:100%;max-height:100%;outline:none!important}.lity-content{z-index:9993;width:100%;-webkit-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1);-webkit-transition:-webkit-transform .3s ease;transition:-webkit-transform .3s ease;-o-transition:-o-transform .3s ease;transition:transform .3s ease;transition:transform .3s ease,-webkit-transform .3s ease,-o-transform .3s ease}.lity-loading .lity-content,.lity-closed .lity-content{-webkit-transform:scale(.8);-ms-transform:scale(.8);-o-transform:scale(.8);transform:scale(.8)}.lity-content:after{content:'';position:absolute;left:0;top:0;bottom:0;display:block;right:0;width:auto;height:auto;z-index:-1;-webkit-box-shadow:0 0 8px rgba(0,0,0,.6);box-shadow:0 0 8px rgba(0,0,0,.6)}.lity-close{z-index:9994;width:35px;height:35px;position:fixed;right:0;top:0;-webkit-appearance:none;cursor:pointer;text-decoration:none;text-align:center;padding:0;color:#fff;font-style:normal;font-size:35px;font-family:Arial,Baskerville,monospace;line-height:35px;text-shadow:0 1px 2px rgba(0,0,0,.6);border:0;background:none;outline:none;-webkit-box-shadow:none;box-shadow:none}.lity-close::-moz-focus-inner{border:0;padding:0}.lity-close:hover,.lity-close:focus,.lity-close:active,.lity-close:visited{text-decoration:none;text-align:center;padding:0;color:#fff;font-style:normal;font-size:35px;font-family:Arial,Baskerville,monospace;line-height:35px;text-shadow:0 1px 2px rgba(0,0,0,.6);border:0;background:none;outline:none;-webkit-box-shadow:none;box-shadow:none}.lity-close:active{top:1px}.lity-image img{max-width:100%;display:block;line-height:0;border:0}.lity-iframe .lity-container,.lity-youtube .lity-container,.lity-vimeo .lity-container,.lity-facebookvideo .lity-container,.lity-googlemaps .lity-container{width:100%;max-width:1064px}.lity-iframe-container{width:100%;height:0;padding-top:56.25%;overflow:auto;pointer-events:auto;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-overflow-scrolling:touch}.lity-iframe-container iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;-webkit-box-shadow:0 0 8px rgba(0,0,0,.6);box-shadow:0 0 8px rgba(0,0,0,.6);background:#000}.lity-hide{display:none}
.lity{z-index:9990;position:fixed;top:0;right:0;bottom:0;left:0;white-space:nowrap;background:#0b0b0b;background:rgba(0,0,0,.9);outline:none!important;opacity:0;-webkit-transition:opacity .3s ease;-o-transition:opacity .3s ease;transition:opacity .3s ease}.lity.lity-opened{opacity:1}.lity.lity-closed{opacity:0}.lity *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.lity-wrap{z-index:9990;position:fixed;top:0;right:0;bottom:0;left:0;text-align:center;outline:none!important}.lity-wrap:before{content:'';display:inline-block;height:100%;vertical-align:middle;margin-right:-.25em}.lity-loader{z-index:9991;color:#fff;position:absolute;top:50%;margin-top:-.8em;width:100%;text-align:center;font-size:14px;font-family:Arial,Helvetica,sans-serif;opacity:0;-webkit-transition:opacity .3s ease;-o-transition:opacity .3s ease;transition:opacity .3s ease}.lity-loading .lity-loader{opacity:1}.lity-container{z-index:9992;position:relative;text-align:left;vertical-align:middle;display:inline-block;white-space:normal;max-width:100%;max-height:100%;outline:none!important}.lity-content{z-index:9993;width:100%;-webkit-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1);-webkit-transition:-webkit-transform .3s ease;transition:-webkit-transform .3s ease;-o-transition:-o-transform .3s ease;transition:transform .3s ease;transition:transform .3s ease,-webkit-transform .3s ease,-o-transform .3s ease}.lity-loading .lity-content,.lity-closed .lity-content{-webkit-transform:scale(.8);-ms-transform:scale(.8);-o-transform:scale(.8);transform:scale(.8)}.lity-content:after{content:'';position:absolute;left:0;top:0;bottom:0;display:block;right:0;width:auto;height:auto;z-index:-1;-webkit-box-shadow:0 0 8px rgba(0,0,0,.6);box-shadow:0 0 8px rgba(0,0,0,.6)}.lity-close{z-index:9994;width:35px;height:35px;position:fixed;right:0;top:0;-webkit-appearance:none;cursor:pointer;text-decoration:none;text-align:center;padding:0;color:#fff;font-style:normal;font-size:35px;font-family:Arial,Baskerville,monospace;line-height:35px;text-shadow:0 1px 2px rgba(0,0,0,.6);border:0;background:none;outline:none;-webkit-box-shadow:none;box-shadow:none}.lity-close::-moz-focus-inner{border:0;padding:0}.lity-close:hover,.lity-close:focus,.lity-close:active,.lity-close:visited{text-decoration:none;text-align:center;padding:0;color:#fff;font-style:normal;font-size:35px;font-family:Arial,Baskerville,monospace;line-height:35px;text-shadow:0 1px 2px rgba(0,0,0,.6);border:0;background:none;outline:none;-webkit-box-shadow:none;box-shadow:none}.lity-close:active{top:1px}.lity-image img{max-width:100%;display:block;line-height:0;border:0}.lity-iframe .lity-container,.lity-youtube .lity-container,.lity-vimeo .lity-container,.lity-facebookvideo .lity-container,.lity-googlemaps .lity-container{width:100%;max-width:90%}.lity-iframe-container{width:100%;height:0;padding-top:56.25%;overflow:auto;pointer-events:auto;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-overflow-scrolling:touch}.lity-iframe-container iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;-webkit-box-shadow:0 0 8px rgba(0,0,0,.6);box-shadow:0 0 8px rgba(0,0,0,.6);background:#000}.lity-hide{display:none}

4
module/blog/blog.php

@ -15,10 +15,8 @@
class blog extends common {
const VERSION = '5.2';
const VERSION = '5.3';
const REALNAME = 'Blog';
const DELETE = true;
const UPDATE = '0.0';
const DATADIRECTORY = ''; // Contenu localisé inclus par défaut (page.json et module.json)
const EDIT_OWNER = 'owner';

2
module/blog/view/article/article.php

@ -54,7 +54,7 @@
<?php if ($this->getData(['module',$this->getUrl(0), 'config', 'feeds'])): ?>
<div id="rssFeed">
<a type="application/rss+xml" href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/rss'; ?>" target="_blank">
<img src='module/news/ressource/feed-icon-16.gif' />
<img src='module/blog/ressource/feed-icon-16.gif' />
<?php
echo '<p>' . $this->getData(['module',$this->getUrl(0), 'config', 'feedsLabel']) . '</p>' ;
?>

2
module/form/form.php

@ -18,8 +18,6 @@ class form extends common {
const VERSION = '2.11';
const REALNAME = 'Formulaire';
const DELETE = true;
const UPDATE = '0.0';
const DATADIRECTORY = ''; // Contenu localisé inclus par défaut (page.json et module.json)
public static $actions = [

2
module/gallery/gallery.php

@ -19,8 +19,6 @@ class gallery extends common {
const VERSION = '3.5';
const REALNAME = 'Galerie';
const DELETE = true;
const UPDATE = '0.0';
const DATADIRECTORY = self::DATA_DIR . 'gallery/';
const SORT_ASC = 'SORT_ASC';

4
module/news/news.php

@ -17,8 +17,6 @@ class news extends common {
const VERSION = '3.7';
const REALNAME = 'News';
const DELETE = true;
const UPDATE = '0.0';
const DATADIRECTORY = self::DATA_DIR . 'news/';
public static $actions = [
@ -452,7 +450,7 @@ class news extends common {
$content = substr($this->getData(['module', $this->getUrl(0), 'posts', $newsIds[$i], 'content']), 0, $this->getData(['module', $this->getUrl(0), 'config', 'height']));
// Ne pas couper un mot
$lastSpace = strrpos($content, ' ', -1 );
self::$news[$newsIds[$i]]['content'] = substr(strip_tags($content,'<br><p>'), 0, $lastSpace) ;
self::$news[$newsIds[$i]]['content'] = substr(strip_tags($content,'<br><p><img>'), 0, $lastSpace) ;
}
// Mise en forme de la signature
self::$news[$newsIds[$i]]['userId'] = $this->signature($this->getData(['module', $this->getUrl(0), 'posts', $newsIds[$i], 'userId']));

2
module/redirection/redirection.php

@ -17,8 +17,6 @@ class redirection extends common {
const VERSION = '1.5';
const REALNAME = 'Redirection';
const DELETE = true;
const UPDATE = '0.0';
const DATADIRECTORY = ''; // Contenu localisé inclus par défaut (page.json et module.json)
public static $actions = [

15
module/search/search.php

@ -19,10 +19,8 @@
class search extends common {
const VERSION = '2.4';
const VERSION = '2.5';
const REALNAME = 'Recherche';
const DELETE = true;
const UPDATE = '0.0';
const DATADIRECTORY = self::DATA_DIR . 'search/';
public static $actions = [
@ -256,9 +254,8 @@ class search extends common {
}
// Articles d'une sous-page blog ou de news
if ($this->getData(['page', $childId, 'moduleId']) === 'blog' || $this->getData(['page', $childId, 'moduleId']) === 'news'
&& $this->getData(['module',$parentId,'posts']) )
{
if ( $this->getData([ 'module', $childId, 'posts'])
) {
foreach($this->getData(['module',$childId,'posts']) as $articleId => $article) {
if($this->getData(['module',$childId,'posts',$articleId,'state']) === true) {
$url = $childId . '/' . $articleId;
@ -275,8 +272,9 @@ class search extends common {
}
// Articles d'un blog ou de news
if ( $this->getData(['page', $parentId, 'moduleId']) === 'blog' || $this->getData(['page', $parentId, 'moduleId']) === 'news'
&& $this->getData(['module',$parentId,'posts']) ) {
if ( $this->getData([ 'module', $parentId, 'posts'])
) {
foreach($this->getData(['module',$parentId,'posts']) as $articleId => $article) {
if($this->getData(['module',$parentId,'posts',$articleId,'state']) === true)
{
@ -291,7 +289,6 @@ class search extends common {
}
}
}
// Message de synthèse de la recherche
if (count($result) === 0) {
self::$resultTitle = 'Aucun résultat';

Loading…
Cancel
Save