Lors de l'insertion d'une image dans un champ avec la fenetre popup habituelle, on peut préférer insérer la miniature de cette image. Voici une modification de xmedia.php ajoutant un bouton à cet effet :
/* Line to display a file */
function line_file($data,$i)
{
global $mode, $up_dir, $_PX_website_config, $m, $px_gd_version, $env, $_px_theme;
// 4 kinds of entry: "up" folder, folder, image and normal file
// 2 modes: popup and normal
$is_dir = false;
$is_file = false;
$is_image = false;
$is_updir = false;
$url = $data['url'];
$name = $data['name'];
$current_dir = $data['current_dir'];
switch ($data['type']) {
case 'file':
$is_image = isImage($name);
$is_file = !$is_image;
$ext = getFileExtension($name);
break;
case 'dir':
$is_dir = true;
break;
case 'updir':
$is_updir = true;
break;
}
$res = ''; //final string to be displayed.
$file_size = ''; //contains the height/width of the image or the size of the file, nothing
// if an image and impossible to get the size
$create_thumb = ''; //link to create the thumbnail
$send_thumb='';
$url2='';
$action_link2='';
$icons_dir = $GLOBALS['_PX_config']['manager_path'] . '/themes/'.$_px_theme.'/images/icons/';
$delete_link = '<a href="xmedia.php?dir='.rawurlencode($current_dir).'&file='.rawurlencode($current_dir.$name).'&del=1&mode='.$mode.'&env='.$env.'" '.
'title="'. __('Delete').'" onclick="return window.confirm(\''. __('Are you sure you want to delete this file?').'\')"><img src="themes/'.$_px_theme.'/images/delete.png" alt="'. __('Delete').'" /></a>';
// Get size of the file in $file_size format ready to be displayed
if ($is_image) {
$siz = @getimagesize($_PX_website_config['xmedia_root'].'/'.$current_dir.$name);
if ($siz !== false && 'html' == $m->user->getPref('content_format')) {
//HTML format
$file_size = __('<strong>size</strong>:') .' '.$siz[3];
} elseif ($siz !== false) {
//wiki format
$file_size = __('<strong>size</strong>:') .' '.$siz[0].'x'.$siz[1];
}
} elseif ($is_file) {
//size in kb
$file_size = __('<strong>size</strong>:') .' '.prettySize(filesize($_PX_website_config['xmedia_root'].'/'.$current_dir.$name));
}
if ($mode == 'popup' && ($is_image || $is_file)) {
//call from the popup
$act = ($is_image) ? 'img' : 'file';
$action_link = '<a href="#" '.
'onclick="insertImage(window.opener.document,\''.$url.'\',\''.$act.'\',\''.addslashes( __('Title of the file or image:')).'\'); '.
'window.close(); return false;">%s</a>';
} elseif ($is_dir || $is_updir) {
$slash = ($is_dir) ? '/' : '';
$action_link = '<a href="xmedia.php?dir='.$current_dir.$slash.'&mode='.$mode.'">%s</a>';
} else {
//call from the "normal" list of files page
$action_link = '<a href="http://'.$_PX_website_config['domain'].$url.'">%s</a>';
}
// create the thumbnail link
if ($is_file || $is_image) {
if (file_exists($up_dir.'/thumb/'.md5($current_dir.$name).'.jpg')) {
//thumbnail exists
$th = sprintf($action_link,
'<img class="thumbnail" '.
'src="http://'.$_PX_website_config['domain'].$_PX_website_config['rel_url_files'].'/thumb/'.md5($current_dir.$name).'.jpg" alt="" />');
$url2='http://'.$_PX_website_config['domain'].$_PX_website_config['rel_url_files'].'/thumb/'.md5($current_dir.$name).'.jpg';
$action_link2 = '<a href="#" title="'.__('Send the thumbnail').'" '.
'onclick="insertImage(window.opener.document,\''.$url2.'\',\''.$act.'\',\''.addslashes( __('Title of the file or image:')).'\'); '.
'window.close(); return false;">%s</a>';
$send_thumb= sprintf($action_link2,'<img src="themes/'.$_px_theme.'/images/ico_image.png" alt="Envoyer la miniature" />');
} elseif ($is_image && $px_gd_version) {
//image without thumbnail
if (file_exists($icons_dir.$ext.'-dist.png')) {
$img = 'themes/'.$_px_theme.'/images/icons/'.$ext.'-dist.png';
} else {
$img = 'themes/'.$_px_theme.'/images/icons/default-dist.png';
}
$th = sprintf($action_link, '<img class="thumbnailicon" src="'.$img.'" alt="" />');
$create_thumb = '<a href="xmedia.php?dir='.rawurlencode($current_dir).'&file='.rawurlencode($current_dir.$name).
'&thumb=1&mode='.$mode.'&env='.$env.'" title="'.__('Try to create the thumbnail').'"><img src="themes/'.$_px_theme.'/images/ico_createthumb.png" alt="'.__('Try to create the thumbnail').'" /></a>';
} else {
//normal file
$ext = getFileExtension($name);
if (file_exists($icons_dir.$ext.'-dist.png')) {
$img = 'themes/'.$_px_theme.'/images/icons/'.$ext.'-dist.png';
} else {
$img = 'themes/'.$_px_theme.'/images/icons/default-dist.png';
}
$th = sprintf($action_link, '<img class="thumbnailicon" src="'.$img.'" alt="" />');
}
$res = '<div class="icon">'."\n".
'<p class="legend action">'.$send_thumb.' '.$create_thumb.' '.$delete_link.'</p>'."\n".
'<p class="icon">'.$th.'</p>'."\n".
'<p class="legend">'.sprintf($action_link,$name).'<br />'."\n".
$file_size.'</p>'."\n".
'</div>'."\n";
} elseif ($is_dir || $is_updir) {
$ico = ($is_dir) ? 'ico_folder.png' : 'ico_folder_up.png';
$img = 'themes/'.$_px_theme.'/images/'.$ico;
$th = sprintf($action_link, '<img class="thumbnailicon" src="'.$img.'" alt="" />');
$res = '<div class="icon">'."\n".
'<p class="icon">'.$th.'</p>'."\n".
'<p class="legend">'.sprintf($action_link,$name).'</p>'."\n".
'</div>'."\n";
}
return $res;
}