Browse Source

version 8.4.0

pull/1/head
fredtempez 3 years ago
parent
commit
5095135b09
  1. 32
      .htaccess
  2. 1
      .vscode/settings.json
  3. 10
      README.md
  4. 4
      core/core.js.php
  5. 12
      core/layout/common.css
  6. 6
      core/module/page/view/edit/edit.php
  7. 2
      core/vendor/filemanager/UploadHandler.php
  8. 66
      core/vendor/filemanager/config/config.php
  9. 7
      core/vendor/filemanager/css/style.css
  10. 100
      core/vendor/filemanager/dialog.php
  11. 108
      core/vendor/filemanager/execute.php
  12. 71
      core/vendor/filemanager/include/utils.php
  13. 4
      core/vendor/filemanager/js/include.js
  14. 4
      core/vendor/filemanager/js/plugins.js
  15. 2
      core/vendor/filemanager/lang/fr_FR.php
  16. 2
      core/vendor/filemanager/plugin.min.js
  17. 265
      core/vendor/filemanager/upload.php
  18. 4
      index.php
  19. 6
      module/blog/blog.php
  20. 35
      module/blog/view/article/article.php
  21. 7
      module/blog/view/index/index.php
  22. 6
      module/news/view/index/index.php
  23. 38
      module/redirection/view/index/index.js.php
  24. 126
      site/data/custom.css
  25. 1
      site/data/data.json
  26. 5
      site/data/theme.css
  27. 0
      site/tmp/.gitkeep

32
.htaccess

@ -1,32 +0,0 @@
# Cache le PHPSESSID de l'url
SetEnv SESSION_USE_TRANS_SID 0
# Bloque l'accès à la liste des fichiers
Options -Indexes
<<<<<<< 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

@ -1 +0,0 @@
{}

10
README.md

@ -2,13 +2,7 @@
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 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.
## Version stable
* La version stable est numérotée 8.4.0 (équivalente à la dév 8.3.14)
[Site](http://zwiicms.com/) - [Forum](http://forum.zwiicms.com/) - [GitHub](https://github.com/remijean/ZwiiCMS/)
## Configuration recommandée
@ -58,4 +52,4 @@ Décompressez l'archive de Zwii sur votre serveur et c'est tout !
[D] thumb Contient les miniatures des fichiers de type image
[D] tmp Contient les fichiers temporaire
[F] index.php Fichier d'initialisation de Zwii
```
```

4
core/core.js.php

@ -192,11 +192,11 @@ core.start = function() {
// Disparition de la notification
notificationTimer = setTimeout(function() {
$("#notification").fadeOut();
}, 4000);
}, 1500);
// Barre de progression
$("#notificationProgress").animate({
"width": "0%"
}, 4000, "linear");
}, 1500, "linear");
})
.trigger("mouseleave");
$("#notificationClose").on("click", function() {

12
core/layout/common.css

@ -45,7 +45,7 @@ h3 {
font-size: 1.4em;
}
h4 {
font-size: 1.2em;
font-size: 1.0em;
}
/* Listes */
@ -86,6 +86,16 @@ img[align='right'] {
margin-left: 10px;
}
/*
Signature dans les articles blog et news
*/
.signature {
font-size: 0.8em;
font-style: italic;
text-align: right;
}
/* Tableau */
:not([class^="col"]) > .tableWrapper {
margin: 10px 0;

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

@ -1,9 +1,11 @@
<?php echo template::formOpen('pageEditForm'); ?>
<div class="row">
<div class="col2">
<div class="col2">
<?php $href = helper::baseUrl() . $this->getUrl(2); ?>
<?php if ($this->getData(['page', $this->getUrl(2), 'moduleId']) === 'redirection')$href = helper::baseUrl(); ?>
<?php echo template::button('pageEditBack', [
'class' => 'buttonGrey',
'href' => helper::baseUrl() . $this->getUrl(2),
'href' => $href,
'ico' => 'left',
'value' => 'Retour'
]); ?>

2
core/vendor/filemanager/UploadHandler.php

@ -1403,7 +1403,7 @@ class UploadHandler
}
if(is_file($targetFile)) {
chmod($targetFile, $this->options['config']['filePermission']);
}else{
}elseif(is_dir($targetFile)){
chmod($targetFile, $this->options['config']['folderPermission']);
}
}else{

66
core/vendor/filemanager/config/config.php

@ -1,5 +1,5 @@
<?php
$version = "9.12.2";
$version = "9.13.1";
if (session_id() == '') session_start();
mb_internal_encoding('UTF-8');
@ -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/Paris');
date_default_timezone_set('Europe/Rome');
setlocale(LC_CTYPE, 'fr_FR'); //correct transliteration
/*
@ -98,13 +98,24 @@ $config = array(
'thumbs_base_path' => '../../../site/file/thumb/',
/*
|--------------------------------------------------------------------------
| mime file control to define files extensions
|--------------------------------------------------------------------------
|
| If you want to be forced to assign the extension starting from the mime type
|
*/
'mime_extension_rename' => true,
/*
|--------------------------------------------------------------------------
| FTP configuration BETA VERSION
|--------------------------------------------------------------------------
|
| 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 /
|
*/
@ -132,6 +143,20 @@ $config = array(
'ftp_base_url' => "http://host.com/testFTP",
*/
/*
|--------------------------------------------------------------------------
| Multiple files selection
|--------------------------------------------------------------------------
| The user can delete multiple files, select all files , deselect all files
*/
'multiple_selection' => false,
/*
|
| The user can have a select button that pass a json to external input or pass the first file selected to editor
| If you use responsivefilemanager tinymce extension can copy into editor multiple object like images, videos, audios, links in the same time
|
*/
'multiple_selection_action_button' => false,
/*
|--------------------------------------------------------------------------
@ -215,13 +240,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' => true,
'transliteration' => false,
//convert all spaces on files name and folders name with $replace_with variable
'convert_spaces' => true,
'convert_spaces' => false,
//convert all spaces on files name and folders name this value
'replace_with' => "_",
//convert to lowercase the files and folders name
'lower_case' => true,
'lower_case' => false,
//Add ?484899493349 (time value) to returned images to prevent cache
'add_time_to_img' => false,
@ -261,9 +286,9 @@ $config = array(
//******************
//
// WATERMARK IMAGE
//
//Watermark url or false
'image_watermark' => false,
//
//Watermark path or false
'image_watermark' => false,//"../watermark.png",
# Could be a pre-determined position such as:
# tl = top left,
# t = top (middle),
@ -279,7 +304,7 @@ $config = array(
# padding: If using a pre-determined position you can
# adjust the padding from the edges by passing an amount
# in pixels. If using co-ordinates, this value is ignored.
'image_watermark_padding' => 0,
'image_watermark_padding' => 10,
//******************
// Default layout setting
@ -322,7 +347,7 @@ $config = array(
// if you want you can add html,css etc.
// but for security reasons it's NOT RECOMMENDED!
'editable_text_file_exts' => array( 'txt', 'log', 'xml', 'html', 'css', 'htm', 'js' ),
// Preview with Google Documents
'googledoc_enabled' => true,
'googledoc_file_exts' => array( 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx' , 'pdf', 'odt', 'odp', 'ods'),
@ -338,11 +363,18 @@ $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('7z', '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', 'tiff'), //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
//*********************
// If you insert an extensions blacklist array the filemanager don't check any extensions but simply block the extensions in the list
// otherwise check Allowed extensions configuration
//*********************
'ext_blacklist' => false, //['jpg'],
/******************
* AVIARY config
@ -352,7 +384,7 @@ $config = array(
'aviary_language' => "fr",
'aviary_theme' => "light",
'aviary_tools' => "all",
'aviary_maxSize' => "1920",
'aviary_maxSize' => "1400",
// 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

7
core/vendor/filemanager/css/style.css

File diff suppressed because one or more lines are too long

100
core/vendor/filemanager/dialog.php

@ -44,13 +44,16 @@ include 'include/utils.php';
$subdir_path = '';
if (isset($_GET['fldr']) && !empty($_GET['fldr'])) {
$subdir_path = rawurldecode(trim(strip_tags($_GET['fldr']),"/"));
}elseif(isset($_SESSION['RF']['fldr']) && !empty($_SESSION['RF']['fldr'])){
$subdir_path = rawurldecode(trim(strip_tags($_SESSION['RF']['fldr']),"/"));
}
if (strpos($subdir_path,'../') === FALSE
&& strpos($subdir_path,'./') === FALSE
&& strpos($subdir_path,'..\\') === FALSE
&& strpos($subdir_path,'.\\') === FALSE)
{
$subdir = $subdir_path ."/";
$subdir = strip_tags($subdir_path) ."/";
$_SESSION['RF']['fldr'] = $subdir_path;
$_SESSION['RF']["filter"]='';
}
else { $subdir = ''; }
@ -143,7 +146,19 @@ if(!$ftp){
if (!is_dir($thumbs_path.$subdir))
{
create_folder(FALSE, $thumbs_path.$subdir);
create_folder(FALSE, $thumbs_path.$subdir,$ftp,$config);
}
}
$multiple=null;
if (isset($_GET['multiple'])){
if($_GET['multiple'] == 1){
$multiple = 1;
$config['multiple_selection'] = true;
$config['multiple_selection_action_button'] = true;
}elseif($_GET['multiple'] == 0){
$multiple = 0;
$config['multiple_selection'] = false;
$config['multiple_selection_action_button'] = false;
}
}
if (isset($_GET['callback']))
@ -253,22 +268,27 @@ if (isset($_GET['editor']))
$editor = strip_tags($_GET['editor']);
} else {
if($_GET['type']==0){
$editor=false;
$editor=null;
} else {
$editor='tinymce';
}
}
if (!isset($_GET['field_id'])) $_GET['field_id'] = '';
$field_id = isset($_GET['field_id']) ? fix_get_params($_GET['field_id']) : '';
$field_id = isset($_GET['field_id']) ? fix_get_params($_GET['field_id']) : null;
$type_param = fix_get_params($_GET['type']);
if ($type_param==1) $apply = 'apply_img';
elseif($type_param==2) $apply = 'apply_link';
elseif($type_param==0 && $_GET['field_id']=='') $apply = 'apply_none';
elseif($type_param==3) $apply = 'apply_video';
else $apply = 'apply';
$apply = null;
if($multiple){
$apply = 'apply_multiple';
}
if ($type_param==1) $apply_type = 'apply_img';
elseif($type_param==2) $apply_type = 'apply_link';
elseif($type_param==0 && !$field_id) $apply_type = 'apply_none';
elseif($type_param==3) $apply_type = 'apply_video';
else $apply_type = 'apply';
if(!$apply){
$apply = $apply_type;
}
$get_params = array(
'editor' => $editor,
@ -278,6 +298,7 @@ $get_params = array(
'crossdomain' => $crossdomain,
'extensions' => ($extensions) ? urlencode(json_encode($extensions)) : null ,
'field_id' => $field_id,
'multiple' => $multiple,
'relative_url' => $return_relative_url,
'akey' => (isset($_GET['akey']) && $_GET['akey'] != '' ? $_GET['akey'] : 'key')
);
@ -334,7 +355,6 @@ $get_params = http_build_query($get_params);
<script>
var ext_img=new Array('<?php echo implode("','", $ext_img)?>');
var allowed_ext=new Array('<?php echo implode("','", $ext)?>');
var image_editor=<?php echo $aviary_active?"true":"false";?>;
if (image_editor) {
var featherEditor = new Aviary.Feather({
@ -408,11 +428,13 @@ $get_params = http_build_query($get_params);
<input type="hidden" id="view" value="<?php echo $view;?>" />
<input type="hidden" id="subdir" value="<?php echo $subdir;?>" />
<input type="hidden" id="field_id" value="<?php echo $field_id;?>" />
<input type="hidden" id="multiple" value="<?php echo $multiple;?>" />
<input type="hidden" id="type_param" value="<?php echo $type_param;?>" />
<input type="hidden" id="upload_dir" value="<?php echo $upload_dir;?>" />
<input type="hidden" id="cur_dir" value="<?php echo $cur_dir;?>" />
<input type="hidden" id="cur_dir_thumb" value="<?php echo $thumbs_path.$subdir;?>" />
<input type="hidden" id="insert_folder_name" value="<?php echo trans('Insert_Folder_Name');?>" />
<input type="hidden" id="rename_existing_folder" value="<?php echo trans('Rename_existing_folder');?>" />
<input type="hidden" id="new_folder" value="<?php echo trans('New_Folder');?>" />
<input type="hidden" id="ok" value="<?php echo trans('OK');?>" />
<input type="hidden" id="cancel" value="<?php echo trans('Cancel');?>" />
@ -429,8 +451,8 @@ $get_params = http_build_query($get_params);
<input type="hidden" id="descending" value="<?php echo $descending?1:0;?>" />
<input type="hidden" id="current_url" value="<?php echo str_replace(array('&filter='.$filter,'&sort_by='.$sort_by,'&descending='.intval($descending)),array(''),$base_url.$_SERVER['REQUEST_URI']);?>" />
<input type="hidden" id="lang_show_url" value="<?php echo trans('Show_url');?>" />
<input type="hidden" id="copy_cut_files_allowed" value="<?php if($copy_cut_files) echo 1; else echo 0;?>" />
<input type="hidden" id="copy_cut_dirs_allowed" value="<?php if($copy_cut_dirs) echo 1; else echo 0;?>" />
<input type="hidden" id="copy_cut_files_allowed" value="<?php if($config['copy_cut_files']) echo 1; else echo 0;?>" />
<input type="hidden" id="copy_cut_dirs_allowed" value="<?php if($config['copy_cut_dirs']) echo 1; else echo 0;?>" />
<input type="hidden" id="copy_cut_max_size" value="<?php echo $copy_cut_max_size;?>" />
<input type="hidden" id="copy_cut_max_count" value="<?php echo $copy_cut_max_count;?>" />
<input type="hidden" id="lang_copy" value="<?php echo trans('Copy');?>" />
@ -652,7 +674,7 @@ foreach($files as $k=>$file){
'date'=>$date,
'size'=>$size,
'permissions' => $file['permissions'],
'extension'=>strtolower($file_ext)
'extension'=>fix_strtolower($file_ext)
);
}else{
@ -673,7 +695,7 @@ foreach($files as $k=>$file){
'date'=>$date,
'size'=>$size,
'permissions' =>'',
'extension'=>strtolower($file_ext)
'extension'=>fix_strtolower($file_ext)
);
if($show_folder_size){
$sorted[$k]['nfiles'] = $nfiles;
@ -760,10 +782,22 @@ $files=$sorted;
<?php if($create_folders){ ?>
<button class="tip btn new-folder" title="<?php echo trans('New_Folder')?>"><i class="icon-plus"></i><i class="icon-folder-open"></i></button>
<?php } ?>
<?php if($copy_cut_files || $copy_cut_dirs){ ?>
<?php if($config['copy_cut_files'] || $config['copy_cut_dirs']){ ?>
<button class="tip btn paste-here-btn" title="<?php echo trans('Paste_Here');?>"><i class="rficon-clipboard-apply"></i></button>
<button class="tip btn clear-clipboard-btn" title="<?php echo trans('Clear_Clipboard');?>"><i class="rficon-clipboard-clear"></i></button>
<?php } ?>
<div id="multiple-selection" style="display:none;">
<?php if($config['multiple_selection']){ ?>
<?php if($config['delete_files']){ ?>
<button class="tip btn multiple-delete-btn" title="<?php echo trans('Erase');?>" data-confirm="<?php echo trans('Confirm_del');?>"><i class="icon-trash"></i></button>
<?php } ?>
<button class="tip btn multiple-select-btn" title="<?php echo trans('Select_All');?>"><i class="icon-check"></i></button>
<button class="tip btn multiple-deselect-btn" title="<?php echo trans('Deselect_All');?>"><i class="icon-ban-circle"></i></button>
<?php if($apply_type!="apply_none" && $config['multiple_selection_action_button']){ ?>
<button class="btn multiple-action-btn btn-inverse" data-function="<?php echo $apply_type;?>"><?php echo trans('Select'); ?></button>
<?php } ?>
<?php } ?>
</div>
</div>
<div class="span2 half view-controller">
<button class="btn tip<?php if($view==0) echo " btn-inverse";?>" id="view0" data-value="0" title="<?php echo trans('View_boxes');?>"><i class="icon-th <?php if($view==0) echo "icon-white";?>"></i></button>
@ -772,7 +806,7 @@ $files=$sorted;
</div>
<div class="span6 entire types">
<span><?php echo trans('Filters');?>:</span>
<?php if($_GET['type']!=1 && $_GET['type']!=3 && $show_filter_buttons){ ?>
<?php if($_GET['type']!=1 && $_GET['type']!=3 && $config['show_filter_buttons']){ ?>
<?php if(count($ext_file)>0 or false){ ?>
<input id="select-type-1" name="radio-sort" type="radio" data-item="ff-item-type-1" checked="checked" class="hide" />
<label id="ff-item-type-1" title="<?php echo trans('Files');?>" for="select-type-1" class="tip btn ff-label-type-1"><i class="icon-file"></i></label>
@ -892,7 +926,7 @@ $files=$sorted;
foreach ($files as $file_array) {
$file=$file_array['file'];
if($file == '.' || ( substr($file, 0, 1) == '.' && isset( $file_array[ 'extension' ] ) && $file_array[ 'extension' ] == strtolower(trans( 'Type_dir' ) )) || (isset($file_array['extension']) && $file_array['extension']!=strtolower(trans('Type_dir'))) || ($file == '..' && $subdir == '') || in_array($file, $hidden_folders) || ($filter!='' && $n_files>$file_number_limit_js && $file!=".." && stripos($file,$filter)===false)){
if($file == '.' || ( substr($file, 0, 1) == '.' && isset( $file_array[ 'extension' ] ) && $file_array[ 'extension' ] == fix_strtolower(trans( 'Type_dir' ) )) || (isset($file_array['extension']) && $file_array['extension']!=fix_strtolower(trans('Type_dir'))) || ($file == '..' && $subdir == '') || in_array($file, $hidden_folders) || ($filter!='' && $n_files>$file_number_limit_js && $file!=".." && stripos($file,$filter)===false)){
continue;
}
$new_name=fix_filename($file,$config);
@ -920,7 +954,7 @@ $files=$sorted;
}
?>
<li data-name="<?php echo $file ?>" class="<?php if($file=='..') echo 'back'; else echo 'dir';?>" <?php if(($filter!='' && stripos($file,$filter)===false)) echo ' style="display:none;"';?>><?php
<li data-name="<?php echo $file ?>" class="<?php if($file=='..') echo 'back'; else echo 'dir';?> <?php if(!$config['multiple_selection']){ ?>no-selector<?php } ?>" <?php if(($filter!='' && stripos($file,$filter)===false)) echo ' style="display:none;"';?>><?php
$file_prevent_rename = false;
$file_prevent_delete = false;
if (isset($filePermissions[$file])) {
@ -958,14 +992,14 @@ $files=$sorted;
<input type="hidden" class="name" value="<?php echo $file_array['file_lcase'];?>"/>
<input type="hidden" class="date" value="<?php echo $file_array['date'];?>"/>
<input type="hidden" class="size" value="<?php echo $file_array['size'];?>"/>
<input type="hidden" class="extension" value="<?php echo trans('Type_dir');?>"/>
<input type="hidden" class="extension" value="<?php echo fix_strtolower(trans('Type_dir'));?>"/>
<div class="file-date"><?php echo date(trans('Date_type'),$file_array['date']);?></div>
<?php if($show_folder_size){ ?>
<div class="file-size"><?php echo makeSize($file_array['size']);?></div>
<input type="hidden" class="nfiles" value="<?php echo $file_array['nfiles'];?>"/>
<input type="hidden" class="nfolders" value="<?php echo $file_array['nfolders'];?>"/>
<?php } ?>
<div class='file-extension'><?php echo trans('Type_dir');?></div>
<div class='file-extension'><?php echo fix_strtolower(trans('Type_dir'));?></div>
<figcaption>
<a href="javascript:void('')" class="tip-left edit-button rename-file-paths <?php if($rename_folders && !$file_prevent_rename) echo "rename-folder";?>" title="<?php echo trans('Rename')?>" data-folder="1" data-permissions="<?php echo $file_array['permissions']; ?>" data-path="<?php echo $rfm_subfolder.$subdir.$file;?>">
<i class="icon-pencil <?php if(!$rename_folders || $file_prevent_rename) echo 'icon-white';?>"></i></a>
@ -984,7 +1018,7 @@ $files=$sorted;
foreach ($files as $nu=>$file_array) {
$file=$file_array['file'];
if($file == '.' || $file == '..' || $file_array['extension']==trans('Type_dir') || !in_array(fix_strtolower($file_array['extension']), $ext) || ($filter!='' && $n_files>$file_number_limit_js && stripos($file,$filter)===false))
if($file == '.' || $file == '..' || $file_array['extension']==fix_strtolower(trans('Type_dir')) || (!$config['ext_blacklist'] && !in_array(fix_strtolower($file_array['extension']), $ext)) || ($config['ext_blacklist'] && in_array(fix_strtolower($file_array['extension']), $config['ext_blacklist'])) || ($filter!='' && $n_files>$file_number_limit_js && stripos($file,$filter)===false))
continue;
foreach ( $hidden_files as $hidden_file ) {
if ( fnmatch($hidden_file, $file, FNM_PATHNAME) ) {
@ -1089,7 +1123,7 @@ $files=$sorted;
}
if((!($_GET['type']==1 && !$is_img) && !(($_GET['type']==3 && !$is_video) && ($_GET['type']==3 && !$is_audio))) && $class_ext>0){
?>
<li class="ff-item-type-<?php echo $class_ext;?> file" data-name="<?php echo $file;?>" <?php if(($filter!='' && stripos($file,$filter)===false)) echo ' style="display:none;"';?>><?php
<li class="ff-item-type-<?php echo $class_ext;?> file <?php if(!$config['multiple_selection']){ ?>no-selector<?php } ?>" data-name="<?php echo $file;?>" <?php if(($filter!='' && stripos($file,$filter)===false)) echo ' style="display:none;"';?>><?php
$file_prevent_rename = false;
$file_prevent_delete = false;
if (isset($filePermissions[$file])) {
@ -1103,11 +1137,25 @@ $files=$sorted;
<a href="javascript:void('')" class="link" data-file="<?php echo $file;?>" data-function="<?php echo $apply;?>">
<div class="img-precontainer">
<?php if($is_icon_thumb){ ?><div class="filetype"><?php echo $file_array['extension'] ?></div><?php } ?>
<?php if($config['multiple_selection']){ ?><div class="selector">
<label class="cont">
<input type="checkbox" class="selection" name="selection[]" value="<?php echo $file;?>">
<span class="checkmark"></span>
</label>
</div>
<?php } ?>
<div class="img-container">
<img class="<?php echo $show_original ? "original" : "" ?><?php echo $is_icon_thumb ? " icon" : "" ?>" data-src="<?php echo $src_thumb;?>">
</div>
</div>
<div class="img-precontainer-mini <?php if($is_img) echo 'original-thumb' ?>">
<?php if($config['multiple_selection']){ ?><div class="selector">
<label class="cont">
<input type="checkbox" class="selection" name="selection[]" value="<?php echo $file;?>">
<span class="checkmark"></span>
</label>
</div>
<?php } ?>
<div class="filetype <?php echo $file_array['extension'] ?> <?php if(in_array($file_array['extension'], $editable_text_file_exts)) echo 'edit-text-file-allowed' ?> <?php if(!$is_icon_thumb){ echo "hide"; }?>"><?php echo $file_array['extension'] ?></div>
<div class="img-container-mini">
<?php if($mini_src!=""){ ?>
@ -1118,8 +1166,6 @@ $files=$sorted;
<?php if($is_icon_thumb){ ?>
<div class="cover"></div>
<?php } ?>
</a>
<a href="javascript:void('')" class="link" data-file="<?php echo $file;?>" data-function="<?php echo $apply;?>">
<div class="box">
<h4 class="<?php if($ellipsis_title_after_first_row){ echo "ellipsis"; } ?>">
<?php echo $filename;?></h4>

108
core/vendor/filemanager/execute.php

@ -57,26 +57,55 @@ while($cycle && $i<$max_cycles)
$path = fix_dirname($path)."/";
}
$path = $current_path.$_POST['path'];
$path_thumb = $thumbs_base_path.$_POST['path'];
if($ftp){
$path = $ftp_base_folder.$upload_dir.$_POST['path'];
$path_thumb = $ftp_base_folder.$ftp_thumbs_dir.$_POST['path'];
function returnPaths($_path,$_name,$config){
global $ftp;
$path = $config['current_path'].$_path;
$path_thumb = $config['thumbs_base_path'].$_path;
$name = null;
if($ftp){
$path = $config['ftp_base_folder'].$config['upload_dir'].$_path;
$path_thumb = $config['ftp_base_folder'].$config['ftp_thumbs_dir'].$_path;
}
if ($_name)
{
$name = fix_filename($_name,$config);
if (strpos($name,'../') !== FALSE || strpos($name,'..\\') !== FALSE)
{
response(trans('wrong name').AddErrorLocation())->send();
exit;
}
}
return array($path,$path_thumb,$name);
}
if (isset($_POST['name']))
{
$name = fix_filename($_POST['name'],$config);
if (strpos($name,'../') !== FALSE || strpos($name,'..\\') !== FALSE)
{
response(trans('wrong name').AddErrorLocation())->send();
exit;
if(isset($_POST['paths'])){
$paths = $paths_thumb = $names = array();
foreach ($_POST['paths'] as $key => $path) {
$name = null;
if(isset($_POST['names'][$key])){
$name = $_POST['names'][$key];
}
list($path,$path_thumb,$name) = returnPaths($path,$name,$config);
$paths[] = $path;
$paths_thumb[] = $path_thumb;
$names = $name;
}
}else{
$name = null;
if(isset($_POST['name'])){
$name = $_POST['name'];
}
list($path,$path_thumb,$name) = returnPaths($_POST['path'],$name,$config);
}
$info = pathinfo($path);
if (isset($info['extension']) && !(isset($_GET['action']) && $_GET['action']=='delete_folder') && !in_array(strtolower($info['extension']), $ext) && $_GET['action'] != 'create_file')
if (isset($info['extension']) && !(isset($_GET['action']) && $_GET['action']=='delete_folder') &&
(
(!$config['ext_blacklist'] && !in_array(strtolower($info['extension']), $ext)) ||
($config['ext_blacklist'] && in_array(fix_strtolower($file_array['extension']),$config['ext_blacklist']))
)
&& $_GET['action'] != 'create_file' )
{
response(trans('wrong extension').AddErrorLocation())->send();
exit;
@ -87,49 +116,15 @@ if (isset($_GET['action']))
switch($_GET['action'])
{
case 'delete_file':
if ($delete_files){
if($ftp){
try{
$ftp->delete("/".$path);
@$ftp->delete("/".$path_thumb);
}catch(FtpClient\FtpException $e){
return;
}
}else{
unlink($path);
if (file_exists($path_thumb)){
unlink($path_thumb);
}
}
$info=pathinfo($path);
if (!$ftp && $relative_image_creation){
foreach($relative_path_from_current_pos as $k=>$path)
{
if ($path!="" && $path[strlen($path)-1]!="/") $path.="/";
if (file_exists($info['dirname']."/".$path.$relative_image_creation_name_to_prepend[$k].$info['filename'].$relative_image_creation_name_to_append[$k].".".$info['extension']))
{
unlink($info['dirname']."/".$path.$relative_image_creation_name_to_prepend[$k].$info['filename'].$relative_image_creation_name_to_append[$k].".".$info['extension']);
}
}
}
if (!$ftp && $fixed_image_creation)
{
foreach($fixed_path_from_filemanager as $k=>$path)
{
if ($path!="" && $path[strlen($path)-1] != "/") $path.="/";
deleteFile($path,$path_thumb,$config);
$base_dir=$path.substr_replace($info['dirname']."/", '', 0, strlen($current_path));
if (file_exists($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension']))
{
unlink($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension']);
}
}
}
break;
case 'delete_files':
foreach ($paths as $key => $p) {
deleteFile($p,$paths_thumb[$key],$config);
}
break;
case 'delete_folder':
if ($delete_folders){
@ -166,7 +161,10 @@ if (isset($_GET['action']))
$name = fix_filename($_POST['name'],$config);
$path .= $name;
$path_thumb .= $name;
create_folder(fix_path($path,$config),fix_path($path_thumb,$config),$ftp,$config);
$res = create_folder(fix_path($path,$config),fix_path($path_thumb,$config),$ftp,$config);
if(!$res){
response(trans('Rename_existing_folder').AddErrorLocation())->send();
}
}
break;
case 'rename_folder':

71
core/vendor/filemanager/include/utils.php

@ -94,6 +94,63 @@ if ( ! function_exists('trans'))
}
}
/**
* Delete file
*
* @param string $path
* @param string $path_thumb
* @param string $config
*
* @return nothing
*/
function deleteFile($path,$path_thumb,$config){
if ($config['delete_files']){
$ftp = ftp_con($config);
if($ftp){
try{
$ftp->delete("/".$path);
@$ftp->delete("/".$path_thumb);
}catch(FtpClient\FtpException $e){
return;
}
}else{
if (file_exists($path)){
unlink($path);
}
if (file_exists($path_thumb)){
unlink($path_thumb);
}
}
$info=pathinfo($path);
if (!$ftp && $config['relative_image_creation']){
foreach($config['relative_path_from_current_pos'] as $k=>$path)
{
if ($path!="" && $path[strlen($path)-1]!="/") $path.="/";
if (file_exists($info['dirname']."/".$path.$config['relative_image_creation_name_to_prepend'][$k].$info['filename'].$config['relative_image_creation_name_to_append'][$k].".".$info['extension']))
{
unlink($info['dirname']."/".$path.$config['relative_image_creation_name_to_prepend'][$k].$info['filename'].$config['relative_image_creation_name_to_append'][$k].".".$info['extension']);
}
}
}
if (!$ftp && $config['fixed_image_creation'])
{
foreach($config['fixed_path_from_filemanager'] as $k=>$path)
{
if ($path!="" && $path[strlen($path)-1] != "/") $path.="/";
$base_dir=$path.substr_replace($info['dirname']."/", '', 0, strlen($current_path));
if (file_exists($base_dir.$config['fixed_image_creation_name_to_prepend'][$k].$info['filename'].$config['fixed_image_creation_to_append'][$k].".".$info['extension']))
{
unlink($base_dir.$config['fixed_image_creation_name_to_prepend'][$k].$info['filename'].$config['fixed_image_creation_to_append'][$k].".".$info['extension']);
}
}
}
}
}
/**
* Delete directory
*
@ -462,10 +519,13 @@ function create_folder($path = null, $path_thumbs = null,$ftp = null,$config = n
$ftp->mkdir($path);
$ftp->mkdir($path_thumbs);
}else{
if(file_exists($path)){
return false;
}
$oldumask = umask(0);
if ($path && ! file_exists($path))
if ($path && !file_exists($path))
{
$permission = 0755;
$permission = $config['folderPermission'];
if(isset($config['folderPermission'])){
$permission = $config['folderPermission'];
}
@ -473,9 +533,10 @@ function create_folder($path = null, $path_thumbs = null,$ftp = null,$config = n
} // or even 01777 so you get the sticky bit set
if ($path_thumbs && ! file_exists($path_thumbs))
{
mkdir($path_thumbs, 0755, true) or die("$path_thumbs cannot be found");
mkdir($path_thumbs, $config['folderPermission'], true) or die("$path_thumbs cannot be found");
} // or even 01777 so you get the sticky bit set
umask($oldumask);
return true;
}
}
@ -731,7 +792,7 @@ function image_check_memory_usage($img, $max_breedte, $max_hoogte)
*
* @return bool
*/
function endsWith($haystack, $needle)
function ends_with($haystack, $needle)
{
return $needle === "" || substr($haystack, -strlen($needle)) === $needle;
}
@ -780,7 +841,7 @@ function new_thumbnails_creation($targetPath, $targetFile, $name, $current_path,
{
create_folder($targetPath . $path, false);
}
if ( ! endsWith($targetPath, $path))
if ( ! ends_with($targetPath, $path))
{
if ( ! create_img($targetFile, $targetPath . $path . $config['relative_image_creation_name_to_prepend'][ $k ] . $info['filename'] . $config['relative_image_creation_name_to_append'][ $k ] . "." . $info['extension'], $config['relative_image_creation_width'][ $k ], $config['relative_image_creation_height'][ $k ], $config['relative_image_creation_option'][ $k ]))
{

4
core/vendor/filemanager/js/include.js

File diff suppressed because one or more lines are too long

4
core/vendor/filemanager/js/plugins.js

File diff suppressed because one or more lines are too long

2
core/vendor/filemanager/lang/fr_FR.php

@ -3,6 +3,8 @@
return array(
'Select' => 'Sélectionner',
'Deselect_All' => 'Deselect All',
'Select_All' => 'Select All',
'Erase' => 'Effacer',
'Open' => 'Ouvrir',
'Confirm_del' => 'Êtes-vous sûr de vouloir effacer ce fichier ?',

2
core/vendor/filemanager/plugin.min.js

@ -1 +1 @@
tinymce.PluginManager.add("filemanager",function(e){function n(t){0===e.settings.external_filemanager_path.toLowerCase().indexOf(t.origin.toLowerCase())&&"responsivefilemanager"===t.data.sender&&(tinymce.activeEditor.windowManager.getParams().setUrl(t.data.url),tinymce.activeEditor.windowManager.close(),window.removeEventListener?window.removeEventListener("message",n,!1):window.detachEvent("onmessage",n))}function t(t,i,a,s){var r=window.innerWidth-30,g=window.innerHeight-60;if(r>1800&&(r=1800),g>1200&&(g=1200),r>600){var d=(r-20)%138;r=r-d+10}urltype=2,"image"==a&&(urltype=1),"media"==a&&(urltype=3);var o="RESPONSIVE FileManager";"undefined"!=typeof e.settings.filemanager_title&&e.settings.filemanager_title&&(o=e.settings.filemanager_title);var l="key";"undefined"!=typeof e.settings.filemanager_access_key&&e.settings.filemanager_access_key&&(l=e.settings.filemanager_access_key);var f="";"undefined"!=typeof e.settings.filemanager_sort_by&&e.settings.filemanager_sort_by&&(f="&sort_by="+e.settings.filemanager_sort_by);var m=0;"undefined"!=typeof e.settings.filemanager_descending&&e.settings.filemanager_descending&&(m=e.settings.filemanager_descending);var c="";"undefined"!=typeof e.settings.filemanager_subfolder&&e.settings.filemanager_subfolder&&(c="&fldr="+e.settings.filemanager_subfolder);var v="";"undefined"!=typeof e.settings.filemanager_crossdomain&&e.settings.filemanager_crossdomain&&(v="&crossdomain=1",window.addEventListener?window.addEventListener("message",n,!1):window.attachEvent("onmessage",n)),tinymce.activeEditor.windowManager.open({title:o,file:e.settings.external_filemanager_path+"dialog.php?type="+urltype+"&descending="+m+f+c+v+"&lang="+e.settings.language+"&akey="+l,width:r,height:g,resizable:!0,maximizable:!0,inline:1},{setUrl:function(n){var i=s.document.getElementById(t);if(i.value=e.convertURL(n),"createEvent"in document){var a=document.createEvent("HTMLEvents");a.initEvent("change",!1,!0),i.dispatchEvent(a)}else i.fireEvent("onchange")}})}return tinymce.activeEditor.settings.file_browser_callback=t,!1});
tinymce.PluginManager.add("filemanager",function(e){function n(t){0===e.settings.external_filemanager_path.toLowerCase().indexOf(t.origin.toLowerCase())&&"responsivefilemanager"===t.data.sender&&(tinymce.activeEditor.windowManager.getParams().setUrl(t.data.url),tinymce.activeEditor.windowManager.close(),window.removeEventListener?window.removeEventListener("message",n,!1):window.detachEvent("onmessage",n))}function t(t,i,a,s){var r=window.innerWidth-30,g=window.innerHeight-60;if(r>1800&&(r=1800),g>1200&&(g=1200),r>600){var d=(r-20)%138;r=r-d+10}urltype=2,"image"==a&&(urltype=1),"media"==a&&(urltype=3);var o="RESPONSIVE FileManager";"undefined"!=typeof e.settings.filemanager_title&&e.settings.filemanager_title&&(o=e.settings.filemanager_title);var l="key";"undefined"!=typeof e.settings.filemanager_access_key&&e.settings.filemanager_access_key&&(l=e.settings.filemanager_access_key);var f="";"undefined"!=typeof e.settings.filemanager_sort_by&&e.settings.filemanager_sort_by&&(f="&sort_by="+e.settings.filemanager_sort_by);var m=0;"undefined"!=typeof e.settings.filemanager_descending&&e.settings.filemanager_descending&&(m=e.settings.filemanager_descending);var c="";"undefined"!=typeof e.settings.filemanager_subfolder&&e.settings.filemanager_subfolder&&(c="&fldr="+e.settings.filemanager_subfolder);var v="";"undefined"!=typeof e.settings.filemanager_crossdomain&&e.settings.filemanager_crossdomain&&(v="&crossdomain=1",window.addEventListener?window.addEventListener("message",n,!1):window.attachEvent("onmessage",n)),tinymce.activeEditor.windowManager.open({title:o,file:e.settings.external_filemanager_path+"dialog.php?type="+urltype+"&descending="+m+f+c+v+"&lang="+e.settings.language+"&akey="+l,width:r,height:g,resizable:!0,maximizable:!0,inline:1},{setUrl:function(n){var i=s.document.getElementById(t);if(i.value=e.convertURL(n),"createEvent"in document){var a=document.createEvent("HTMLEvents");a.initEvent("change",!1,!0),i.dispatchEvent(a)}else i.fireEvent("onchange")}})}return e.settings.file_browser_callback=t,!1});

265
core/vendor/filemanager/upload.php

@ -1,141 +1,166 @@
<?php
if (!isset($config)){
$config = include 'config/config.php';
}
try{
if (!isset($config)){
$config = include 'config/config.php';
}
include 'include/utils.php';
include 'include/utils.php';
if ($_SESSION['RF']["verify"] != "RESPONSIVEfilemanager")
{
response(trans('forbiden').AddErrorLocation(), 403)->send();
exit;
}
if ($_SESSION['RF']["verify"] != "RESPONSIVEfilemanager")
{
response(trans('forbiden').AddErrorLocation(), 403)->send();
exit;
}
include 'include/mime_type_lib.php';
include 'include/mime_type_lib.php';
$ftp=ftp_con($config);
if($ftp){
$source_base = $config['ftp_base_folder'].$config['upload_dir'];
$thumb_base = $config['ftp_base_folder'].$config['ftp_thumbs_dir'];
$ftp=ftp_con($config);
if($ftp){
$source_base = $config['ftp_base_folder'].$config['upload_dir'];
$thumb_base = $config['ftp_base_folder'].$config['ftp_thumbs_dir'];
}else{
$source_base = $config['current_path'];
$thumb_base = $config['thumbs_base_path'];
}
if(isset($_POST["fldr"])){
$_POST['fldr'] = str_replace('undefined','',$_POST['fldr']);
$storeFolder = $source_base.$_POST["fldr"];
$storeFolderThumb = $thumb_base.$_POST["fldr"];
}else{
return;
}
}else{
$source_base = $config['current_path'];
$thumb_base = $config['thumbs_base_path'];
}
if(isset($_POST["fldr"])){
$_POST['fldr'] = str_replace('undefined','',$_POST['fldr']);
$storeFolder = $source_base.$_POST["fldr"];
$storeFolderThumb = $thumb_base.$_POST["fldr"];
}else{
return;
}
$fldr = rawurldecode(trim(strip_tags($_POST['fldr']),"/") ."/");
$fldr = rawurldecode(trim(strip_tags($_POST['fldr']),"/") ."/");
if (strpos($fldr,'../') !== FALSE
|| strpos($fldr,'./') !== FALSE
|| strpos($fldr,'..\\') !== FALSE
|| strpos($fldr,'.\\') !== FALSE )
{
response(trans('wrong path'.AddErrorLocation()))->send();
exit;
}
if (strpos($fldr,'../') !== FALSE
|| strpos($fldr,'./') !== FALSE
|| strpos($fldr,'..\\') !== FALSE
|| strpos($fldr,'.\\') !== FALSE )
{
response(trans('wrong path'.AddErrorLocation()))->send();
exit;
}
$path = $storeFolder;
$cycle = TRUE;
$max_cycles = 50;
$i = 0;
//GET config
while ($cycle && $i < $max_cycles)
{
$i++;
if ($path == $config['current_path']) $cycle = FALSE;
if (file_exists($path."config.php"))
$path = $storeFolder;
$cycle = TRUE;
$max_cycles = 50;
$i = 0;
//GET config
while ($cycle && $i < $max_cycles)
{
$configTemp = include $path.'config.php';
$config = array_merge($config,$configTemp);
//TODO switch to array
$cycle = FALSE;
$i++;
if ($path == $config['current_path']) $cycle = FALSE;
if (file_exists($path."config.php"))
{
$configTemp = include $path.'config.php';
$config = array_merge($config,$configTemp);
//TODO switch to array
$cycle = FALSE;
}
$path = fix_dirname($path).'/';
}
$path = fix_dirname($path).'/';
}
require('UploadHandler.php');
$messages = null;
if(trans("Upload_error_messages")!=="Upload_error_messages"){
$messages = trans("Upload_error_messages");
}
require('UploadHandler.php');
$messages = null;
if(trans("Upload_error_messages")!=="Upload_error_messages"){
$messages = trans("Upload_error_messages");
}
if(isset($_POST['url'])){
$temp = tempnam('/tmp','RF');
$ch = curl_init($_POST['url']);
$fp = fopen($temp, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
$_FILES['files'] = array(
'name' => array(basename($_POST['url'])),
'tmp_name' => array($temp),
'size' => array(filesize($temp)),
'type' => null
);
}
$info = pathinfo($_FILES['files']['name'][0]);
$mime_type = $_FILES['files']['type'][0];
if (function_exists('mime_content_type')){
$mime_type = mime_content_type($_FILES['files']['tmp_name'][0]);
}elseif(function_exists('finfo_open')){
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime_type = finfo_file($finfo, $_FILES['files']['tmp_name'][0]);
}else{
include 'include/mime_type_lib.php';
$mime_type = get_file_mime_type($_FILES['files']['tmp_name'][0]);
}
$extension = get_extension_from_mime($mime_type);
if(isset($_POST['url'])){
$temp = tempnam('/tmp','RF');
$ch = curl_init($_POST['url']);
$fp = fopen($temp, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
$_FILES['files'] = array(
'name' => array(basename($_POST['url'])),
'tmp_name' => array($temp),
'size' => array(filesize($temp)),
'type' => null
);
}
if($config['mime_extension_rename']){
$info = pathinfo($_FILES['files']['name'][0]);
$mime_type = $_FILES['files']['type'][0];
if (function_exists('mime_content_type')){
$mime_type = mime_content_type($_FILES['files']['tmp_name'][0]);
}elseif(function_exists('finfo_open')){
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime_type = finfo_file($finfo, $_FILES['files']['tmp_name'][0]);
}else{
include 'include/mime_type_lib.php';
$mime_type = get_file_mime_type($_FILES['files']['tmp_name'][0]);
}
$extension = get_extension_from_mime($mime_type);
if($extension=='so' || $extension=='' || $mime_type == "text/troff"){
$extension = $info['extension'];
}
$filename = $info['filename'].".".$extension;
}else{
$filename = $_FILES['files']['name'][0];
}
$_FILES['files']['name'][0] = fix_filename($filename,$config);
// LowerCase
if ($config['lower_case'])
{
$_FILES['files']['name'][0] = fix_strtolower($_FILES['files']['name'][0]);
}
if (!checkresultingsize($_FILES['files']['size'][0])) {
$upload_handler->response['files'][0]->error = sprintf(trans('max_size_reached'),$MaxSizeTotal).AddErrorLocation();
echo json_encode($upload_handler->response);
exit();
}
$uploadConfig = array(
'config' => $config,
'storeFolder' => $storeFolder,
'storeFolderThumb' => $storeFolderThumb,
'ftp' => $ftp,
'upload_dir'=> dirname($_SERVER['SCRIPT_FILENAME']).'/'.$storeFolder,
'upload_url' => $config['base_url'].$config['upload_dir'].$_POST['fldr'],
'mkdir_mode' => $config['folderPermission'],
'max_file_size' => $config['MaxSizeUpload']*1024*1024,
'correct_image_extensions' => true,
'print_response' => false
);
if(!$config['ext_blacklist']){
$uploadConfig['accept_file_types'] = '/\.('.implode('|',$config['ext']).')$/i';
}else{
$uploadConfig['accept_file_types'] = '/\.(?!('.implode('|',$config['ext_blacklist']).')$)/i';
}
if($extension=='so' || $extension=='' || $mime_type == "text/troff"){
$extension = $info['extension'];
}
$_FILES['files']['name'][0] = fix_filename($info['filename'].".".$extension,$config);
// LowerCase
if ($config['lower_case'])
{
$_FILES['files']['name'][0] = fix_strtolower($_FILES['files']['name'][0]);
}
if (!checkresultingsize($_FILES['files']['size'][0])) {
$upload_handler->response['files'][0]->error = sprintf(trans('max_size_reached'),$MaxSizeTotal).AddErrorLocation();
echo json_encode($upload_handler->response);
exit();
}
$uploadConfig = array(
'config' => $config,
'storeFolder' => $storeFolder,
'storeFolderThumb' => $storeFolderThumb,
'ftp' => $ftp,
'upload_dir'=> dirname($_SERVER['SCRIPT_FILENAME']).'/'.$storeFolder,
'upload_url' => $config['base_url'].$config['upload_dir'].$_POST['fldr'],
'mkdir_mode' => $config['folderPermission'],
'accept_file_types' => '/\.('.implode('|',$config['ext']).')$/i',
'max_file_size' => $config['MaxSizeUpload']*1024*1024,
'correct_image_extensions' => true,
'print_response' => false
);
if($ftp){
if (!is_dir($config['ftp_temp_folder'])) {
mkdir($config['ftp_temp_folder'], $config['folderPermission'], true);
if($ftp){
if (!is_dir($config['ftp_temp_folder'])) {
mkdir($config['ftp_temp_folder'], $config['folderPermission'], true);
}
if (!is_dir($config['ftp_temp_folder']."thumbs")) {
mkdir($config['ftp_temp_folder']."thumbs", $config['folderPermission'], true);
}
$uploadConfig['upload_dir'] = $config['ftp_temp_folder'];
}
if (!is_dir($config['ftp_temp_folder']."thumbs")) {
mkdir($config['ftp_temp_folder']."thumbs", $config['folderPermission'], true);
$upload_handler = new UploadHandler($uploadConfig,true, $messages);
}catch(Exception $e){
$return = array();
foreach($_FILES['files']['name'] as $i => $name){
$return[] = array(
'name' => $name,
'error' => $e->getMessage(),
'size' => $_FILES['files']['size'][$i],
'type' => $_FILES['files']['type'][$i]
);
}
$uploadConfig['upload_dir'] = $config['ftp_temp_folder'];
echo json_encode(array("files"=>$return));
}
$upload_handler = new UploadHandler($uploadConfig,true, $messages);

4
index.php

@ -19,6 +19,10 @@ if(version_compare(PHP_VERSION, '5.6.0', '<')) {
exit('PHP 5.6+ required.');
}
/* Set locale to French */
date_default_timezone_set('Europe/Paris');
setlocale (LC_TIME, 'fra_fra');
/**
* Initialisation de Zwii
*/

6
module/blog/blog.php

@ -106,7 +106,8 @@ class blog extends common {
// Met en forme le tableau
$comment = $comments[$commentIds[$i]];
self::$comments[] = [
date('d/m/Y H:i', $comment['createdOn']),
//date('d/m/Y H:i', $comment['createdOn']),
strftime('%d %B %Y à %H:%M', $comment['createdOn']),
$comment['content'],
$comment['userId'] ? $this->getData(['user', $comment['userId'], 'firstname']) . ' ' . $this->getData(['user', $comment['userId'], 'lastname']) : $comment['author'],
template::button('blogCommentDelete' . $commentIds[$i], [
@ -161,7 +162,8 @@ class blog extends common {
// Met en forme le tableau
self::$articles[] = [
$this->getData(['module', $this->getUrl(0), $articleIds[$i], 'title']),
date('d/m/Y H:i', $this->getData(['module', $this->getUrl(0), $articleIds[$i], 'publishedOn'])),
// date('d/m/Y H:i', $this->getData(['module', $this->getUrl(0), $articleIds[$i], 'publishedOn'])),
strftime('%d %B %Y à %H:%M', $this->getData(['module', $this->getUrl(0), $articleIds[$i], 'publishedOn'])),
self::$states[$this->getData(['module', $this->getUrl(0), $articleIds[$i], 'state'])],
template::button('blogConfigEdit' . $articleIds[$i], [
'href' => helper::baseUrl() . $this->getUrl(0) . '/edit/' . $articleIds[$i],

35
module/blog/view/article/article.php

@ -1,10 +1,18 @@
<!--
<div id="blogArticlePicture" style="background-image:url('<?php echo helper::baseUrl(false) . 'site/file/source/' . $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'picture']); ?>');"></div>
<h4 class="textAlignRight">
<?php echo $this->getData(['user', $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'userId']), 'firstname']); ?>
<?php echo $this->getData(['user', $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'userId']), 'lastname']); ?>
le <?php echo date('d/m/Y H:i', $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'publishedOn'])); ?>
</h4>
-->
<div><img src="<?php echo helper::baseUrl(false) . 'site/file/source/' . $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'picture']); ?>"></div>
<?php echo $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'content']); ?>
<!-- <h4 class="textAlignRight"> -->
<p class="signature">
<?php echo $this->getData(['user', $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'userId']), 'firstname']); ?>
<?php echo $this->getData(['user', $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'userId']), 'lastname']); ?>
le <?php echo strftime('%d %B %Y à %H:%M', $this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'publishedOn'])); ?>
<!-- </h4> -->
</p>
<div class="clearBoth"></div>
<h2 id="comment">
<?php $commentsNb = count($this->getData(['module', $this->getUrl(0), $this->getUrl(1), 'comment'])); ?>
@ -84,7 +92,7 @@
<?php else: ?>
<?php echo $comment['author']; ?>
<?php endif; ?>
le <?php echo date('d/m/Y - H:i', $comment['createdOn']); ?>
le <?php echo strftime('%d %B %Y à %H:%M', $comment['createdOn']); ?>
</h4>
<?php echo $comment['content']; ?>
</div>
@ -93,8 +101,6 @@
</div>
<?php if($this->getUser('group') >= self::GROUP_ADMIN): ?>
<div class="row">
<div class="col4">
</div>
<div class="col2">
<?php echo template::button('blogBack', [
'class' => 'buttonGrey',
@ -103,20 +109,13 @@
'value' => 'Retour'
]); ?>
</div>
<div class="col2">
<div class="col2 offset8">
<?php echo template::button('blogEdit', [
'class' => 'buttonGrey',
<<<<<<< HEAD
'href' => helper::baseUrl() . $this->getUrl(0). '/edit/' . $this->getUrl(1),
=======
'class' => 'buttonBlue',
'href' => helper::baseUrl() . $this->getUrl(0) . '/edit/' . $this->getUrl(1),
>>>>>>> 8.3.14
'value' => 'Editer'
]); ?>
</div>
<div class="col4">
</div>
</div>
<?php else: ?>
<div class="row">
@ -126,7 +125,7 @@
'href' => helper::baseUrl() . $this->getUrl(0),
'ico' => 'left',
'value' => 'Retour'
]); ?>
]); ?>
</div>
<div class="col10">
</div>

7
module/blog/view/index/index.php

@ -4,8 +4,8 @@
<?php foreach($module::$articles as $articleId => $article): ?>
<div class="block">
<h4>
<?php echo $this->getData(['user', $article['userId'], 'firstname']) . ' ' . $this->getData(['user', $article['userId'], 'lastname']); ?>
le <?php echo date('d/m/Y H:i', $article['publishedOn']); ?>
<!-- Le <?php echo date('d M Y à H:i', $article['publishedOn']); ?> -->
Le <?php echo strftime('%d %B %Y à %H:%M', $article['publishedOn']); ?>
<div class="blogComment">
<a href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/' . $articleId; ?>#comment">
<?php echo count($article['comment']); ?>
@ -25,6 +25,9 @@
<?php echo helper::subword(strip_tags($article['content']), 0, 150); ?>...
<a href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/' . $articleId; ?>">Lire la suite</a>
</p>
<p class="signature">
<?php echo $this->getData(['user', $article['userId'], 'firstname']) . ' ' . $this->getData(['user', $article['userId'], 'lastname']); ?>
</p>
</div>
<?php endforeach; ?>
</div>

6
module/news/view/index/index.php

@ -4,11 +4,13 @@
<?php foreach($module::$news as $newsId => $news): ?>
<div class="block">
<h4>
<?php echo $this->getData(['user', $news['userId'], 'firstname']) . ' ' . $this->getData(['user', $news['userId'], 'lastname']); ?>
le <?php echo date('d/m/Y H:i', $news['publishedOn']); ?>
Le <?php echo strftime('%d %B %Y à %H:%M', $news['publishedOn']); ?>
</h4>
<h2><?php echo $news['title']; ?></h2>
<?php echo $news['content']; ?>
<p class="signature">
<?php echo $this->getData(['user', $news['userId'], 'firstname']) . ' ' . $this->getData(['user', $news['userId'], 'lastname']); ?>
</p>
<div class="clearBoth"></div>
</div>
<?php endforeach; ?>

38
module/redirection/view/index/index.js.php

@ -12,21 +12,25 @@
* @link http://zwiicms.com/
*
*
**/
*
*
* if (document.referrer.indexOf("edit") === -1)
* {
* core.confirm(
* "Souhaitez-vous accéder à l'interface de modification de la page ? En cas de refus, vous serez redirigé vers l'URL saisie dans le module de redirection.",
* function() {
* $(location).attr("href", "<?php echo helper::baseUrl(); ?>page/edit/<?php echo $this->getUrl(0); ?>");
* },
* function() {
* $(location).attr("href", "<?php echo helper::baseUrl() . $this->getUrl(); ?>/force");
* }
* );
* }
* else
* {
* $(location).attr("href", "<?php echo helper::baseUrl(); ?>");
* }
**/
if (document.referrer.indexOf("edit") === -1)
{
core.confirm(
"Souhaitez-vous accéder à l'interface de modification de la page ? En cas de refus, vous serez redirigé vers l'URL saisie dans le module de redirection.",
function() {
$(location).attr("href", "<?php echo helper::baseUrl(); ?>page/edit/<?php echo $this->getUrl(0); ?>");
},
function() {
$(location).attr("href", "<?php echo helper::baseUrl() . $this->getUrl(); ?>/force");
}
);
}
else
{
$(location).attr("href", "<?php echo helper::baseUrl(); ?>");
}
self.location='<?php echo helper::baseUrl(); ?>page/edit/<?php echo $this->getUrl(0); ?>';

126
site/data/custom.css

@ -1,126 +0,0 @@
/**
* Voici une feuille de style type, bien entendu vous pouvez ajouter
* ou supprimer des propriétés CSS en fonction de vos besoins.
*/
/**
* Éléments principaux
*/
/* Fond du site */
body {
}
/* Site */
#site {
}
/* Bannière */
header {
}
/* Titre de la bannière */
header span {
}
/* Menu */
nav {
}
/* Items du menu */
nav a {
}
/* Items au survol du menu */
nav a:hover {
}
/* Item courant du menu */
nav a.active {
}
/* Bas de page */
footer {
}
/* Liens du bas de page */
footer a {
}
/* Réseaux sociaux dans le bas de page */
#footerSocials {
}
/* Texte libre dans le bas de page */
#footerText {
}
/* Copyright dans le bas de page */
#footerCopyright {
}
/**
* Éléments de contenu
*/
/* Titres */
h1,
h2,
h3,
h4 {
}
/* Liens */
a {
}
/* Liens au survol */
a:hover {
}
/* Liens au clic */
a:active {
}
/* Boutons */
.button,
button[type='submit'],
.pagination a {
}
/* Boutons au survol */
.button:hover,
button[type='submit']:hover,
.pagination a:hover {
}
/* Boutons au clic */
.button:active,
button[type='submit']:active,
.pagination a:active {
}
/* Cases à cocher */
input[type='checkbox']:checked + label:before {
}
/* Cases à cocher au survol */
input[type='checkbox']:not(:active):checked:hover + label:before,
input[type='checkbox']:active + label:before {
}
/* Champs de formulaire */
input[type='text'],
input[type='password'],
.inputFile,
select,
textarea {
}
/* Champs de formulaire au survol */
input[type='text']:hover,
input[type='password']:hover,
.inputFile:hover,
select:hover,
textarea:hover {
}

1
site/data/data.json

File diff suppressed because one or more lines are too long

5
site/data/theme.css

@ -1,5 +0,0 @@
<<<<<<< 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;