24if (empty($conf) || !is_object($conf)) {
 
   25  print 
"Error, template page filemanager.tpl.php can't be called as URL";
 
   31<!-- BEGIN PHP TEMPLATE core/tpl/filemanager.tpl.php -->
 
   32<!-- Doc of fileTree plugin at https:
 
   36require_once DOL_DOCUMENT_ROOT.
'/ecm/class/ecmdirectory.class.php';
 
   47if ($module == 
'ecm') {
 
   48  $permtoadd = $user->hasRight(
"ecm", 
"setup");
 
   49  $permtoupload = $user->hasRight(
"ecm", 
"upload");
 
   52if ($module == 
'medias') {
 
   53  $permtoadd = ($user->hasRight(
"mailing", 
"creer") || $user->hasRight(
"website", 
"write"));
 
   54  $permtoupload = ($user->hasRight(
"mailing", 
"creer") || $user->hasRight(
"website", 
"write"));
 
   58if (!isset($section)) {
 
   63if (($action == 
'delete' || $action == 
'file_manager_delete') && empty($conf->use_javascript_ajax)) {
 
   65  print $form->formconfirm($_SERVER[
"PHP_SELF"].
'?section='.$section.
'&urlfile='.urlencode(
GETPOST(
"urlfile")), $langs->trans(
'DeleteFile'), $langs->trans(
'ConfirmDeleteFile'), 
'confirm_deletefile', 
'', 
'', 1);
 
   70<!-- Begin div 
id=
"containerlayout" -->
 
   71<div 
id=
"containerlayout">
 
   72<div 
id=
"ecm-layout-north" class=
"toolbar largebutton">
 
   76print 
'<div class="inline-block toolbarbutton centpercent">';
 
   80  $websitekeyandpageid = (!empty($websitekey) ? 
'&website='.urlencode($websitekey) : 
'').(!empty($pageid) ? 
'&pageid='.urlencode((
string) $pageid) : 
'');
 
   81  print 
'<a id="acreatedir" href="'.DOL_URL_ROOT.
'/ecm/dir_add_card.php?action=create&module='.urlencode($module).$websitekeyandpageid.
'&backtopage='.urlencode($_SERVER[
"PHP_SELF"].
'?file_manager=1'.$websitekeyandpageid).
'" class="inline-block valignmiddle toolbarbutton paddingtop" title="'.
dol_escape_htmltag($langs->trans(
'ECMAddSection')).
'">';
 
   82  print 
img_picto(
'', 
'folder-plus', 
'', 
false, 0, 0, 
'', 
'size15x marginrightonly');
 
   85  print 
'<a id="acreatedir" href="#" class="inline-block valignmiddle toolbarbutton paddingtop" title="'.$langs->trans(
"NotAllowed").
'">';
 
   86  print 
img_picto(
'', 
'folder-plus', 
'disabled', 
false, 0, 0, 
'', 
'size15x marginrightonly');
 
   89if ($module == 
'ecm') {
 
   90  $tmpurl = ((!empty($conf->use_javascript_ajax) && !
getDolGlobalString(
'MAIN_ECM_DISABLE_JS')) ? 
'#' : ($_SERVER[
"PHP_SELF"].
'?action=refreshmanual'.($module ? 
'&module='.$module : 
'').($section ? 
'&section='.$section : 
'')));
 
   91  print 
'<a id="arefreshbutton" href="'.$tmpurl.
'" class="inline-block valignmiddle toolbarbutton paddingtop" title="'.
dol_escape_htmltag($langs->trans(
'ReSyncListOfDir')).
'">';
 
   92  print 
img_picto(
'', 
'refresh', 
'id="refreshbutton"', 
false, 0, 0, 
'', 
'size15x marginrightonly');
 
   95if ($permtoadd && GETPOSTISSET(
'website')) {  
 
   96  print 
'<a id="agenerateimgwebp" href="'.$_SERVER[
"PHP_SELF"].
'?action=confirmconvertimgwebp&token='.
newToken().
'&website='.urlencode($website->ref).
'" class="inline-block valignmiddle toolbarbutton paddingtop" title="'.
dol_escape_htmltag($langs->trans(
"GenerateImgWebp")).
'">';
 
   97  print 
img_picto(
'', 
'images', 
'', 
false, 0, 0, 
'', 
'size15x flip marginrightonly');
 
   99} elseif ($permtoadd && $module == 
'ecm') { 
 
  101    print 
'<a id="agenerateimgwebp" href="'.$_SERVER[
"PHP_SELF"].
'?action=confirmconvertimgwebp&token='.
newToken().
'" class="inline-block valignmiddle toolbarbutton paddingtop" title="'.
dol_escape_htmltag($langs->trans(
"GenerateImgWebp")).
'">';
 
  102    print 
img_picto(
'', 
'images', 
'', 
false, 0, 0, 
'', 
'size15x flip marginrightonly');
 
  108$('#acreatedir').on('click', function() { 
  110    section_dir = $('.directory.expanded')[$('.directory.expanded').length-1].children[0].rel; 
  111    section = $('.directory.expanded')[$('.directory.expanded').length-1].children[0].id.split('_')[2]; 
  113if ($module == 
'ecm') {
 
  116  print 
"section_dir.substring(0, section_dir.length - 1);";
 
  123if ($module == 
'ecm') {
 
  126  print 
"section_dir;";
 
  130  console.log('We click to create a new directory, we set current section_dir='+section_dir+' into href url of button acreatedir'); 
  131  $('#acreatedir').attr('href', $('#acreatedir').attr('href')+'%26section_dir%3D'+encodeURI(section_dir)+'%26section%3D'+encodeURI(section)+'§ion_dir='+encodeURI(section_dir)+'§ion='+encodeURI(section)+'&catParent='+encodeURI(catParent)); 
  132  console.log($('#acreatedir').attr('href')); 
  134$('#agenerateimgwebp').on('click', function() { 
  136    section_dir = $('.directory.expanded')[$('.directory.expanded').length-1].children[0].rel; 
  137    section = $('.directory.expanded')[$('.directory.expanded').length-1].children[0].id.split('_')[2]; 
  142  console.log('We click to generate webp image, we set current section_dir='+section_dir+' into href url of button agenerateimgwebp'); 
  143  $('#agenerateimgwebp').attr('href', $('#agenerateimgwebp').attr('href')+'§ion_dir='+encodeURI(section_dir)+'§ion='+encodeURI(section)); 
  144  console.log($('#agenerateimgwebp').attr('href')); 
  149$nameforformuserfile = 
'formuserfileecm';
 
  151print 
'<div class="inline-block valignmiddle floatright">';
 
  154if ((!empty($conf->use_javascript_ajax) && !
getDolGlobalString(
'MAIN_ECM_DISABLE_JS')) || !empty($section)) {
 
  155  if ((empty($section) || $section == -1) && ($module != 
'medias')) {
 
  158    jQuery(document).ready(
function() {
 
  159      jQuery(
'#<?php echo $nameforformuserfile ?>').hide();
 
  167  print 
'<!-- Start form to attach new file in filemanager.tpl.php sectionid='.$section.
' sectiondir='.$sectiondir.
' -->'.
"\n";
 
  168  include_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
 
  170  print $formfile->form_attach_new_file($_SERVER[
"PHP_SELF"], 
'none', 0, ($section ? $section : -1), $permtoupload, 48, null, 
'', 0, 
'', 0, $nameforformuserfile, 
'', $sectiondir, empty($formalreadyopen) ? 0 : $formalreadyopen, 0, 0, 1);
 
  184<div 
id=
"ecm-layout-west" class=
"inline-block">
 
  190if ($action == 
'delete_section') {
 
  191  print $form->formconfirm($_SERVER[
"PHP_SELF"].
'?section='.$section, $langs->trans(
'DeleteSection'), $langs->trans(
'ConfirmDeleteSection', $ecmdir->label), 
'confirm_deletesection', 
'', 
'', 1);
 
  196if ($action == 
'confirmconvertimgwebp') {
 
  199  $section_dir = 
GETPOST(
'section_dir', 
'alpha');
 
  200  $section = 
GETPOST(
'section', 
'alpha');
 
  201  $file = 
GETPOST(
'filetoregenerate', 
'alpha');
 
  202  $form = 
new Form($db);
 
  203  $formquestion = array();
 
  204  $formquestion[
'section_dir'] = array(
'type' => 
'hidden', 
'value' => $section_dir, 
'name' => 
'section_dir');
 
  205  $formquestion[
'section'] = array(
'type' => 
'hidden', 
'value' => $section, 
'name' => 
'section');
 
  206  $formquestion[
'filetoregenerate'] = array(
'type' => 
'hidden', 
'value' => $file, 
'name' => 
'filetoregenerate');
 
  207  if ($module == 
'medias') {
 
  208    $formquestion[
'website'] = array(
'type' => 
'hidden', 
'value' => $website->ref, 
'name' => 
'website');
 
  211  if (!empty($sortfield)) {
 
  212    $param .= 
'&sortfield='.urlencode($sortfield);
 
  214  if (!empty($sortorder)) {
 
  215    $param .= 
'&sortorder='.urlencode($sortorder);
 
  217  print $form->formconfirm($_SERVER[
"PHP_SELF"].($param ? 
'?'.$param : 
''), empty($file) ? $langs->trans(
'ConfirmImgWebpCreation') : $langs->trans(
'ConfirmChosenImgWebpCreation'), empty($file) ? $langs->trans(
'ConfirmGenerateImgWebp') : $langs->trans(
'ConfirmGenerateChosenImgWebp', basename($file)), 
'convertimgwebp', $formquestion, 
"yes", 1);
 
  218  $action = 
'file_manager';
 
  222if ($action == 
'convertimgwebp' && $permtoadd) {
 
  223  $file = 
GETPOST(
'filetoregenerate', 
'alpha');
 
  225  if ($module == 
'medias') {
 
  231  include_once DOL_DOCUMENT_ROOT.
'/core/lib/images.lib.php';
 
  235    $filelist[][
"fullname"] = 
dol_osencode($imagefolder.
'/'.$file); 
 
  239    $filelist = 
dol_dir_list($imagefolder, 
"files", 0, $regeximgext);
 
  244  foreach ($filelist as $filename) {
 
  245    $filepath = $filename[
'fullname'];
 
  246    if (!(substr_compare($filepath, 
'webp', -strlen(
'webp')) === 0)) {
 
  247      if (!empty($file) || !
dol_is_file($filepathnoext.
'.webp')) { 
 
  249          $filepathnoext = preg_replace(
"/\.[a-z0-9]+$/i", 
"", $filepath);
 
  271  $action = 
'file_manager';
 
  274if (empty($action) || $action == 
'editfile' || $action == 
'file_manager' || preg_match(
'/refresh/i', $action) || $action == 
'delete') {
 
  277  print 
'<table class="liste centpercent">'.
"\n";
 
  279  print 
'<!-- Title for manual directories -->'.
"\n";
 
  280  print 
'<tr class="liste_titre">'.
"\n";
 
  281  print 
'<th class="liste_titre left">';
 
  282  print 
'<span style="padding-left: 5px; padding-right: 5px;">'.$langs->trans(
"ECMSections").
'</span>';
 
  285  $showonrightsize = 
'';
 
  288  $htmltooltip = $langs->trans(
"ECMAreaDesc2a");
 
  289  $htmltooltip .= 
'<br>'.$langs->trans(
"ECMAreaDesc2b");
 
  291  if (!empty($conf->use_javascript_ajax) && !
getDolGlobalString(
'MAIN_ECM_DISABLE_JS')) {
 
  294      print 
'<tr class="oddeven nohover"><td><div style="padding-left: 5px; padding-right: 5px;"><a href="'.$_SERVER[
"PHP_SELF"].
'?file_manager=1'.(!empty($websitekey) ? 
'&website='.urlencode($websitekey) : 
'').
'&pageid='.urlencode((
string) $pageid).
'">';
 
  295      if ($module == 
'medias') {
 
  296        print $langs->trans(
"RootOfMedias");
 
  298        print $langs->trans(
"Root");
 
  300      print 
'</a></div></td></tr>';
 
  303    print 
'<tr class="oddeven nohover"><td>';
 
  306    print 
'<div id="filetree" class="ecmfiletree"></div>';
 
  308    if ($action == 
'deletefile') {
 
  309      print $form->formconfirm(
'eeeee', $langs->trans(
'DeleteFile'), $langs->trans(
'ConfirmDeleteFile'), 
'confirm_deletefile', 
'', 
'', 
'deletefile');
 
  315    print 
'<tr><td style="padding-left: 20px">';
 
  317    $_POST[
'modulepart'] = $module;
 
  318    $_POST[
'openeddir'] = 
GETPOST(
'openeddir');
 
  319    $_POST[
'dir'] = empty($_POST[
'dir']) ? 
'/' : 
GETPOST(
'dir');
 
  322    print 
'<div id="filetree" class="ecmfiletree">';
 
  329      $url = DOL_URL_ROOT.
'/ecm/index.php';
 
  331    include DOL_DOCUMENT_ROOT.
'/core/ajax/ajaxdirtree.php';
 
  345<div 
id=
"ecm-layout-center" class=
"inline-block">
 
  346<div 
class=
"pane-in ecm-in-layout-center">
 
  347<div 
id=
"ecmfileview" class=
"ecmfileview">
 
  353  if (!empty($module) && $module == 
'medias' && !
GETPOST(
'website')) {
 
  354    $url = DOL_URL_ROOT.
'/ecm/index_medias.php';
 
  355  } elseif (GETPOSTISSET(
'website')) {
 
  356    $url = DOL_URL_ROOT.
'/website/index.php';
 
  358    $url = DOL_URL_ROOT.
'/ecm/index.php';
 
  361include DOL_DOCUMENT_ROOT.
'/core/ajax/ajaxdirpreview.php'; 
 
  370</div> <!-- End div 
id=
"containerlayout" -->
 
  374if (!empty($conf->use_javascript_ajax) && !
getDolGlobalString(
'MAIN_ECM_DISABLE_JS')) { 
 
  380  if (
GETPOST(
'section_dir', 
'alpha')) {
 
  381    $preopened = 
GETPOST(
'section_dir', 
'alpha');
 
  384  include DOL_DOCUMENT_ROOT.
'/ecm/tpl/enablefiletreeajax.tpl.php';
 
  388<!-- END PHP TEMPLATE core/tpl/filemanager.tpl.php -->
 
dol_is_file($pathoffile)
Return if path is a file.
 
dol_dir_list($utf8_path, $types="all", $recursive=0, $filter="", $excludefilter=null, $sortcriteria="name", $sortorder=SORT_ASC, $mode=0, $nohook=0, $relativename="", $donotfollowsymlinks=0, $nbsecondsold=0)
Scan a directory and return a list of files/directories.
 
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
 
dol_osencode($str)
Return a string encoded into OS filesystem encoding.
 
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
 
newToken()
Return the value of token currently saved into session with name 'newtoken'.
 
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
 
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0)
Set event messages in dol_events session object.
 
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
 
dol_sanitizePathName($str, $newstr='_', $unaccent=1)
Clean a string to use it as a path name.
 
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
 
getListOfPossibleImageExt($acceptsvg=0)
Return if a filename is file name of a supported image format.
 
dol_imageResizeOrCrop($file, $mode, $newWidth, $newHeight, $src_x=0, $src_y=0, $filetowrite='', $newquality=0)
Resize or crop an image file (Supported extensions are gif, jpg, png, bmp and webp)
 
image_format_supported($file, $acceptsvg=0)
Return if a filename is file name of a supported image format.