création de répertoires pour les images

Bonjour,
je voulais savoir si vous aviez une version de test du gestionnaire d'image avec la création de répertoire (prévu pour la V4.2) ?

Car j'ai un petit pluxml d'expérimentation (http://www.aktiq.fr/monblogpluxml/) qui ne demande que de tester la création de dossier pour les images.

Réponses

  • gok6tmgok6tm Member
    mars 2009 modifié
    Salut

    Voici une version expérimentale à tester, avis aux amateurs

    modif à appliquer

    remplacer core/admin/images.php par :
    <?php
    
    /**
     * Gestion des images
     *
     * @package PLX
     * @author	Stephane F. et Florent MONTHEL
     **/
    include('prepend.php');
    
    # Taille MAX pour Upload
    $maxUpload = strtoupper(ini_get("upload_max_filesize"));
    if (substr_count($maxUpload, 'K'))
    	$TmaxUpload = str_replace('K', '', $maxUpload) * 1024;
    elseif (substr_count($maxUpload, 'M'))
    	$TmaxUpload = str_replace('M', '', $maxUpload) * 1024 * 1024;
    else
    	$TmaxUpload=0;
    
    # Variables pour le redimensionnement
    $width = 200;
    $height = 100;
    $quality = 80;
    
    $dir = ( isset($_GET['dir']) && preg_match('#^[a-zA-Z0-9/-]+$#',$_GET['dir']) ) ? $_GET['dir'] : './';
    $path = PLX_ROOT.$plxAdmin->aConf['images'];
    
    # Détail du dossier actuel
    $view = ViewArbo(PLX_ROOT.$plxAdmin->aConf['images'], $dir);
    if ($view === false)
    	die('Le dossier demandé n\'existe pas !');
    
    # Recupère tous les dossiers contenus dans images/
    $alldir = GetAllDir( PLX_ROOT.$plxAdmin->aConf['images'], PLX_ROOT.$plxAdmin->aConf['images']);
    if (count($alldir) == 0)
    	$alldir = false;
    
    
    
    
    # Création d'un dossier
    if (isset($_POST['newdir']) && trim($_POST['newdir']) != '') {
    	$newdir = plxUtils::title2filename(trim($_POST['newdir']));
    	$path = $path.(($dir == './')?'':$dir.'/').$newdir;
    	if (!is_dir($path)) {
    		# on créer le dossier
    		if (!@mkdir($path,0777))
    			$msg = 'Impossible de créer le dossier';
    		else
    			$msg = 'Dossier créer à '.date('H:i:s');
    		header('Location: images.php?dir='.$dir.'&msg='.urlencode($msg));
    		exit;
    	}
    } 
    # Suppression d'un dossier
    elseif (isset($_GET['deldir']) && preg_match('#^[a-zA-Z0-9/-]+$#',$_GET['deldir']) && isset($_GET['hash']) && $_GET['hash'] == $_SESSION['hash'] && is_dir($path.$_GET['deldir'])) {
    	# on supprimme le dossier et tout son contenu
    	if (!@rmdir_recurse($path.$_GET['deldir']))
    		$msg = 'Impossible de supprimer le dossier ('.htmlspecialchars($_GET['deldir'], ENT_QUOTES, PLX_CHARSET).')';
    	else
    		$msg = 'Dossier supprimer à '.date('H:i:s');
    	header('Location: images.php?dir='.$dir.'&msg='.urlencode($msg));
    	exit;
    }
    # Suppression d'une Image
    if (isset($_GET['del']) && !empty($_GET['hash']) && $_GET['hash'] == $_SESSION['hash'] && isset($view['files'][ $_GET['del'] ])) {
    	# On supprime le document
    	if(!@unlink($path.(($dir == './')?'':$dir.'/').$view['files'][ $_GET['del'] ])) # Erreur de suppression
    		$msg = 'Impossible de supprimer l\'image (problème d\'écriture dans le dossier)';
    	else {# Ok
    		$msg = 'Image supprimé à '.date('H:i:s');
    		# Supression de la miniature
    		if (is_file($path.(($dir == './')?'':$dir.'/').$view['files'][ $_GET['del'] ].'.tb'))
    			@unlink($path.(($dir == './')?'':$dir.'/').$view['files'][ $_GET['del'] ].'.tb');
    	}
    	header('Location: images.php?dir='.$dir.'&msg='.urlencode($msg));
    	exit;
    }
    # Déplacement d'un document
    if (isset($_POST['modif'])) {
    	$msg = '';
    	$post = plxUtils::unSlash($_POST);
    	$c = count($view['files']);
    	$i = 0;
    	while ($i < $c) {
    		if (isset($post[$i.'_deplace']) && $post[$i.'_deplace'] != '0' && (in_array_recurse($post[$i.'_deplace'], $view['dirs']) OR $post[$i.'_deplace'] == './')) {
    			if (!@rename($path.(($dir == './')?'':$dir.'/').$view['files'][ $i ],
    		$path.(($post[$i.'_deplace'] == './')?'':$post[$i.'_deplace'].'/').$view['files'][ $i ]))
    				$msg = 'Impossible de déplacer l\'image ('.$view['files'][ $i ].')';
    			else {
    				$msg = 'Image(s) déplacée(s) à '.date('H:i:s');
    				#déplacement de la miniature
    				if (is_file($path.(($dir == './')?'':$dir.'/').$view['files'][ $i ].'.tb'))
    					@rename($path.(($dir == './')?'':$dir.'/').$view['files'][ $i ].'.tb',
    							$path.(($post[$i.'_deplace'] == './')?'':$post[$i.'_deplace'].'/').$view['files'][ $i ].'.tb');
    			}
    		}
    		$i++;
    	}
    	header('Location: images.php?dir='.$dir.'&msg='.urlencode($msg));
    	exit;
    }
    
    # Envoi d'un document
    if(!empty($_FILES) AND !empty($_FILES['img']['name'])) {
    	# On teste l'existence du doc et on formate le nom du fichier
    	$i = 0;
    	$upFile = $path.(($dir == './')?'':$dir.'/').plxUtils::title2filename(plxUtils::unSlash(basename($_FILES['img']['name'])));
    	while(file_exists($upFile)) {
    		$upFile = $path.(($dir == './')?'':$dir.'/').$i.plxUtils::title2filename(plxUtils::unSlash(basename($_FILES['img']['name'])));
    		$i++;
    	}
    	if ($_FILES['img']['size'] > $TmaxUpload)
    		$msg = 'Taille du fichier supérieur à '.$maxUpload;
    	elseif(!@move_uploaded_file($_FILES['img']['tmp_name'],$upFile)) # Erreur de copie
    		$msg = 'Impossible d\'envoyer l\'image (problème d\'écriture dans le dossier )';
    	else { # Ok
    		@chmod($upfile,0777);
    		@plxUtils::makeThumb($upFile, $upFile.'.tb',$width,$height,$quality);
    		@chmod($upfile.'.tb',0777);
    		$msg = 'Image envoyé à '.date('H:i:s');
    	}
    	# On redirige
    	header('Location: images.php?dir='.$dir.'&msg='.urlencode($msg));
    	exit;
    }
    
    
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <title>Galerie d'images - pluxml</title>
    <meta http-equiv="Content-Type" content="text/html; charset=<?php echo strtolower(PLX_CHARSET); ?>" />
    <link rel="stylesheet" type="text/css" href="admin.css" media="screen" />
    <script type="text/javascript" src="../lib/functions.js"></script>
    <script type="text/javascript">
    function prepins(where,name,width,height) {
    	var taille = document.getElementById('taille').value;
    	var align = document.getElementById('align').value;
    	var marge = document.getElementById('marge').value;
    	opener.insimg(where,name, width * taille / 100, height * taille / 100, align, marge);
    	window.close();
    }
    </script>
    </head>
    
    <body class="popup">
    <div><div>
    <?php 
    	echo (!empty($_GET['msg']))?plxUtils::showMsg(plxUtils::unSlash(urldecode(trim($_GET['msg'])))):'';
    
    	if (!empty($_GET['img']) AND file_exists($path.(($dir == './')?'':$dir.'/').plxUtils::unSlash(rawurldecode($_GET['img'])))) { # Image particulière
    ?>
    		<p><br /><a href="images.php?dir=<?php echo $dir; ?>" class="backupload">retour</a><br /><br /></p>
    		<div style="text-align:center;"><img src="<?php echo $path.(($dir == './')?'':$dir.'/').plxUtils::unSlash(rawurldecode($_GET['img'])); ?>" alt="" /></div>
    <?php 
    	} else { # Galerie
    ?>
    	<h2>Uploader et gérer les images</h2>
    		<form enctype="multipart/form-data" action="images.php?dir=<?php echo $dir; ?>" method="post">
    			<div style="float:left;width:45%;padding:0 10px 10px 10px;margin-right:9px;">
    			<p style="margin:0;padding:0;">Arborescence :</p>
    			<div style="border:1px solid #333333;">
    				<div style="height:112px;overflow:auto;">
    				<?php
    				$i = 1;
    				if ($view['dirs'] != false) {
    					foreach ($view['dirs'] as $k => $v) {
    						$i++;
    						echo '<div class="line-'.($i%2).'" style="padding:5px;">
    								'.(($k != '../') ? 
    									'<span style="float:right;">
    										<a href="images.php?hash='.$_SESSION['hash'].'&deldir='.$v.'&dir='.$dir.'" title="supprimmer le dossier" onclick="Check=confirm(\'Supprimer ce dossier et son contenu ?\');if(Check==false) return false;">
    										<img src="img/delete.png" alt="effacer" /></a>
    									</span>':'').'						
    								<a href="images.php?dir='.$v.'" title="Visualiser le contenu du dossier">
    									<img src="img/categorie.png" width="12" height="12" alt="" />  '.$k.'</a><br />
    							</div>';
    					}
    				} else
    					echo '<p style="padding:10px;">Aucun dossier</p>';
    				?>
    				</div>
    				<div style="background-color:#EDE9E3;padding:2px;border-top:1px solid #333333;">
    					<input name="newdir" type="text" size="15" /><input type="submit" name="create" value="Créer un dossier" />
    				</div>
    			</div>
    		</div>
    		<fieldset>
    			<legend>Upload d'images</legend>
    			<p><input name="img" size="17" type="file" /><input type="submit" value="envoyer" /><br /><br /> Taille max : <?php echo $maxUpload ?></p>
    		</fieldset>
    		<fieldset style="text-align:center;padding-bottom:0;">
    			<legend>Options d'insertion </legend><p>	
    			<select name="taille" id="taille">
    				<option value="100"> Taille  </option>
    				<option value="100"> 100 % </option>
    				<option value="90"> 90 %</option>
    				<option value="80"> 80 %</option>
    				<option value="70"> 70 %</option>
    				<option value="60"> 60 %</option>
    				<option value="50"> 50 %</option>
    				<option value="40"> 40 %</option>
    				<option value="30"> 30 %</option>
    				<option value="20"> 20 %</option>
    				<option value="10"> 10 %</option>
    			</select>   | 
    			<select name="align" id="align">
    				<option value="0"> Alignement </option>
    				<option value="left"> Gauche </option>
    				<option value="right"> Droite </option>
    			</select>  | 
    			<select name="marge" id="marge">
    				<option value="0"> Marges </option>
    				<option value="0"> 0 px </option>
    				<option value="1"> 1 px </option>
    				<option value="2"> 2 px </option>
    				<option value="3"> 3 px </option>
    				<option value="4"> 4 px </option>
    				<option value="5"> 5 px </option>
    				<option value="6"> 6 px </option>
    				<option value="7"> 7 px </option>
    				<option value="8"> 8 px </option>
    				<option value="9"> 9 px </option>
    				<option value="10"> 10 px </option>
    				<option value="15"> 15 px </option>
    				<option value="20"> 20 px </option>
    			</select> </p>
    		</fieldset>
    		<h2  style="clear:both;">Images de "<?php echo ($dir == './')? './': './'.$dir; ?>"</h2>
    		<div style="overflow:auto;">
    	<?php 
    		# Aucune image
    		if($view['files'] == false)
    			echo '<p><br />Pas d\'image</p>';
    		# On a des images
    		else {
    			$i = 0;
    			foreach ($view['files'] as $k => $v) { 
    				echo '<div class="bloc_gal"><p class="thumb">';
    				
    				# On a une miniature
    				if(file_exists( $path.(($dir == './') ? '': $dir.'/' ).$v.'.tb'))
    					echo '<img src="'.$path.(($dir == './')?'':$dir.'/').$v.'.tb'.'" alt="'.$v.'"/><br />'.$v.'</p>';
    				# Pas de miniatures
    				else
    					echo '<span>'.$v.'</span><br /></p>';
    
    				# On affiche les différents liens
    				echo '<p class="thumb_link">';
    				
    				echo '<a href="images.php?img='.rawurlencode($v).'&dir='.$dir.'">
    							<img src="img/eye.png" alt="Voir" title="Voir l\'image" /></a>   ';
    				# Récupère taille de l'image
    				list($width, $height) = @getimagesize($path.(($dir == './')?'':$dir.'/').$v);
    				list($widthtb, $heighttb) = @getimagesize($path.(($dir == './')?'':$dir.'/').$v.'.tb');
    				
    				echo '<a href="javascript:prepins(\'id_chapo\',\''.str_replace('../', '', $path.(($dir == './')?'':$dir.'/').$v).'\',\''.$width.'\',\''.$height.'\');window.close();" title="Ajouter l\'image dans le chapo">
    							<img src="img/layout-chapo.png" alt="Ajouter chapo" /></a>   ';
    							
    				echo '<a href="javascript:prepins(\'id_chapo\',\''.str_replace('../', '', $path.(($dir == './')?'':$dir.'/').$v).'.tb\',\''.$widthtb.'\',\''.$heighttb.'\');window.close();" title="Ajouter la miniature dans le chapo">
    							<img src="img/layout-chapo-mini.png" alt="Ajouter miniature chapo" /></a>   ';
    							
    				echo '<a href="javascript:prepins(\'id_content\',\''.str_replace('../', '', $path.(($dir == './')?'':$dir.'/').$v).'\',\''.$width.'\',\''.$height.'\');window.close();" title="Ajouter l\'image dans le contenu">
    							<img src="img/layout-content.png" alt="Ajouter contenu" /></a>   ';
    							
    				echo '<a href="javascript:prepins(\'id_content\',\''.str_replace('../', '', $path.(($dir == './')?'':$dir.'/').$v).'.tb\',\''.$widthtb.'\',\''.$heighttb.'\');window.close();" title="Ajouter la miniature dans le contenu">
    							<img src="img/layout-content-mini.png" alt="Ajouter miniature contenu" /></a>   ';
    							
    				echo '<a href="images.php?del='.$k.'&hash='.$_SESSION['hash'].'&dir='.$dir.'" title="Supprimer cette image" onclick="Check=confirm(\'Supprimer ce fichier ?\');if(Check==false) return false;">
    						<img src="img/delete.png" alt="Supprimer" /></a><br />';
    						
    				echo '	<select name="'.$k.'_deplace">'.selectDir($alldir,$dir).'</select>';
    				echo '</p></div>'."\n";
    				$i++;
    			} # Fin for liste des images
    		} # Fin else on a des documents
    	?>
    		</div>
    			<p style="clear:both;float:right;"><input type="submit" name="modif" value="Appliquer les changements" /></p>
    			<p style="clear:both;"></p>
    	</form>
    		
    	<?php } # Fin else galerie
    include('foot.php');
    
    /*
    Retourne arborescence du dossiers images
    */
    function ViewArbo($path, $dirview = './') {
    
    	$array = array(	'files' => false,
    					'dirs' => false);
    
    	if ($dirview == './') {
    		$dirlist = $path;
    		$dirview = '';
    	} else {
    		if (preg_match('#^[a-zA-Z0-9/-]+$#',$dirview))
    			$dirlist = $path.$dirview;
    		else
    			return false;
    	}
    	if (is_dir($dirlist)) {
    		if ($dirview != '')
    			$array['dirs']['../'] = preg_replace('#/?[a-zA-Z0-9-]+$#','',$dirview);
    		if ($open = @opendir($dirlist)) {
    			while ($f = readdir($open)) {
    				if ($f != "." && $f != "..") {		
    					if (is_dir($dirlist.'/'.$f)) {
    						$array['dirs'][$f] = (($dirview == '')? '': $dirview.'/').$f;
    					} elseif ($f != '.htaccess' && substr($f, -3) != '.tb') {
    						$array['files'][] = $f;
    					}
    				}
    			}
    			closedir($open);
    		}
    		if ($array['dirs'] != false)
    			ksort($array['dirs']);
    		if ($array['files'] != false)
    		asort($array['files']);
    	} else
    		$array = false;
    	return $array; 
    }
    
    /*
    Retourne array de tous les dossiers du path
    */
    function GetAllDir($path, $folder, $level=0) {
    
    	$files = array();
    	if ($dir = @opendir($folder)) {
    		while ($file = readdir($dir)) {
    			if ($file == '.' || $file == '..') 
    				continue;
    			if (is_dir($folder.$file)) {
    				
    				$files[] =array('level' => $level,
    								'name' => $file,
    								'get' => str_replace($path,'',$folder).$file);
    				$files = array_merge($files, GetAllDir($path, $folder.$file.'/', $level+1));
    			}
    		}
    		closedir($dir);
    	}
    	return $files;
    }
    
    function selectDir($array, $id='') {
    	$string = '<option value="0">   Déplacer ?   </option>';
    	if ($id != './')
    		$string .= '<option value="./">   ./ racine   </option>';
    	if ($array != false) {
    		foreach ($array as $k => $v) {
    			if ($id != $v['get']) {
    				if ($v['level']!=0) {
    					$prefixe = '';
    					$i = 0;
    					while($i < $v['level']) {
    						$prefixe .= '|';
    						$i++;
    					}
    					$prefixe .= ' ';
    				} else
    					$prefixe = '';
    
    				$string .= '<option value="'.$v['get'].'">'.$prefixe.$v['name'].'</option>';
    			}
    		}
    	}
    	return $string;
    }
    
    /*
    from php.net :
    ornthalas at NOSPAM dot gmail dot com
    */
    function rmdir_recurse($filepath) {
    	if (is_dir($filepath) && !is_link($filepath)) {
    		if ($dh = @opendir($filepath)) {
    			while (($sf = readdir($dh)) !== false) {
    				if ($sf == '.' || $sf == '..') {
    					continue;
    				}
    				if (!rmdir_recurse($filepath.'/'.$sf)) {
    					//throw new Exception($filepath.'/'.$sf.' could not be deleted.');
    				} 
    			}
    			closedir($dh);
    		}
    		return rmdir($filepath);
    	}
    	return unlink($filepath);
    }
    
    function in_array_recurse($needle, $haystack) {
        foreach ($haystack as $stalk) {
            if ($needle === $stalk || (is_array($stalk) && in_array_recurse($needle, $stalk))) {
                return true;
            }
        }
        return false;
    }
    
    et modif dans /core/lib/function.js :
    remplacer la fonction insimg par :
    function insimg(where,src,width,height,align,margin) {
    	var option = ' ';
    	if ((align != 0) && (margin != 0)) {
    		option = ' style="float:'+align+';margin:'+margin+'px;" ';
    	} else if ((align != 0) && (margin == 0)) {
    		option = ' style="float:'+align+';" ';
    	} else if ((align == 0) && (margin != 0)) {
    		option = ' style="margin:'+margin+'px;" ';
    	}
    	AddText(where, '<img src="'+src+'" width="'+width+'" height="'+height+'"'+option+'alt="" />');
    }
    
  • StéphaneStéphane Member, Former PluXml Project Manager
    Wow !!! Alors là bravo. Tout simplement excellent

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • StéphaneStéphane Member, Former PluXml Project Manager
    Une petite faute de frappe s'est glissée dans ton code.
    Il faut remplacer la ligne:
    <meta http-equiv="Content-Type" content="text/html; charset=<?php echo strtolower(X2W_CHARSET); ?>" />
    
    par
    <meta http-equiv="Content-Type" content="text/html; charset=<?php echo strtolower(PLX_CHARSET); ?>" />
    
    X2W_CHARSET devient PLX_CHARSET

    ;)

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Alors la les gars : merveilleux, et quelle rapidité. Ce sytème fonctionne comme une horloge. Merci beaucoup.
  • gok6tmgok6tm Member
    @stephane : correction appliqué sur le premier post

    Par contre j'ai testé sur servhome.org, c'est incompatible avec le safemode

    P-être serait il plus intéressant d'émuler la création de dossier via un fichier xml.
  • Bonjour,
    Je viens de tester le code et il marche aussi à merveille chez moi. Bravo pour ça car j'en avais bien besoin.
    Et dans la foulée, je tiens à féliciter les auteurs de PluXml. C'est la solution parfaite à mon besoin et le blog familial n'en est que plus beau!
    Le site est désormais dans mes bookmarks. ;)
  • J'oubliais...
    Y aurait-il un moyen d'imposer que la fenêtre de gestion des images soit en plein écran? Etant donné que la fenêtre se ferme d'elle même lors de l'insertion d'une image, il pourrait être sympa de pouvoir paramétrer son comportement.

    Une autre fonction super cool serait de lister les repertoire d'images par date (plus récent d'abord) ou par nom.


    Je précise que tout cela n'est pas une critique mais bien un feedback due mon utilisation intensive. J'ai une trentaine de repertoires et scroller tout le temps est une perte de temps.
    Le code reste excellent comme il est, là.
  • Bonjour,
    Penses-tu qu'il serait possible d'ajouter le nom du fichier image au dessous de celle-ci? En effet, lorsque l'on a toute une tripotée d'images, voir leur nom accélère l'identification/ insertion dans les articles.
  • gok6tmgok6tm Member
    Merci FredFred pour le feed back, par contre je n'ai pas prévu de faire de modif pour l'instant dessus.

    en ce qui concerne la taille de la fenetre, tout se joue dans : core/admin/top.php :
    34 . 	<li><a href="images.php" id="link_images" title="Uploader et insérer une image" onclick="openPopup('images.php','Images','740','500');return false;">Images</a></li>
    
    740 et 500 correspondent à la largeur et hauteur du pop up

    Pluxml devrait intégré prochainement un gestionnaire de dossiers pour les images et documents en natif, il serai souhaitable d'informer les développeurs sur les attentes des utilisateurs comme tu le fait.

    Est ce que Stephane ou marama peuvent nous dire ou en est le développement du gestionnaire de dossiers
  • FredFredFredFred Member
    mars 2009 modifié
    Super merci.
    Je vais de ce pas y jeter un oeil et modifier le tout selon mes besoins ;)

    Edit: Je viens de faire la modif. Tout marche impec' Merci encore!
  • gok6tmgok6tm Member
    mars 2009 modifié
    En ce qui concerne, afficher le nom de l'image = appliquer les modifs suivantes (ligne 246) :
    244.				# On a une miniature
    245.				if(file_exists( $path.(($dir == './') ? '': $dir.'/' ).$v.'.tb'))
    246.					echo '<img src="'.$path.(($dir == './')?'':$dir.'/').$v.'.tb'.'" alt="'.$v.'"/><br />'.$v.'</p>';
    247.				# Pas de miniatures
    248.				else
    249.					echo '<span>'.$v.'</span><br /></p>';
    
    Pour le classement dans la liste déroulante (" déplacer ? ") des dossiers, normalement il y a classement alphabétique et affichage des sous dossiers si présent.

    astuce : (incompatible avec les sous dossiers) clique sur le select (il s'ouvre) tape la première lettre du nom recherché et hop il est sélectionné
  • maramamarama Member
    gok6tm a écrit:
    Pluxml devrait intégré prochainement un gestionnaire de dossiers pour les images et documents en natif, il serai souhaitable d'informer les développeurs sur les attentes des utilisateurs comme tu le fait.
    Est ce que Stephane ou marama peuvent nous dire ou en est le développement du gestionnaire de dossiers.
    Nous travaillons sur une solution plus perenne que celle actuelle, nous ne pouvons pas en parler pour le moment.

    Notez tout de même que le développement de PluXml est peut être moins rapide comparé à d'autres CMS mais nous passons énormément de temps à optimiser les temps de traitement, factoriser et produire un code propre et réfléchi.
    Nous voulons aussi avoir un certain retour face à nos développements.

    Bien cordialement
  • memiksmemiks Member
    Ok alors j'attendrai ;).

    Merci.
  • gok6tm a écrit:
    En ce qui concerne, afficher le nom de l'image = appliquer les modifs suivantes (ligne 246) :
    Quel talent!
    Ca marche nickel chrome!

    Merci beaucoup. Avec les +1000 photos réparties dans +60 dossiers ça commençait à être coton pour les retrouver, d'autant que la migration vers pluxml se fait à la main ;)
    Mais là, je n'ai plus d'excuse pour ne pas mettre tout à jour.

    Merci encore.
  • Je viens de me rendre compte d'un petit bug. Je ne sais pourtant pas si cela viens de moi, d'une erreur que j'ai pu faire en copiant/collant le plugin ou pas.

    Comportement:
    Lorsque j'insère une image dans un article en cours de rédaction via le manager d'images, cela me rajoute en plus de l'image, tout le texte déjà écrit au dessus du point d'insertion. J'obtien donc des doublons de texte que je dois effacer à la main.

    Je viens seulement de le découvrir car je ne faisais que des copier/coller des autres liens d'images et puis changeais les noms à la main, pour un gain de temps.
    Ce n'est pas très grave, mais ça vaut le coup de le signaler tout de même.
  • gok6tmgok6tm Member
    j'ai tester rapidement pas eu ce problème

    si erreur de manipulation dans le code de ta part, cela doit se situer dans /core/lib/function.js p être la fonction AddText compare avec une version original de pluxml
  • Salut, je voulais savoir s'il était possible dans les options d'insertion de choisir une largeur (en somme, fixer le width="xxx")

    Au lieu que les dimensions soient en %.

    merci ;).
  • En fin de compte, ça ne me concerne plus, j'ai fixé une largeur dans le CSS...

    :D
  • AndreaAndrea Member
    mai 2009 modifié
    gok6tm a écrit:
    c'est incompatible avec le safemode
    Or chez free.fr, le safemode est "on" de mémoire !
    C'est ce qui expliquerait que l'insertion ne fonctionne pas avec moi ?

    La création de dossier, pas de soucis, l'up-loade d'image non plus et je peux voir l'image en cliquant sur l'icone de l'oeil
    mais les 4 liens d'insertion rien de rien :-( ne se passe

    PS: Firefox 3 (Javascript activé) Win XP

    Ceci dit, avec la version d'origine du PluXML beta4 c'est Ok l'insertion du code

    En tout cas, c'est vraiment dommage pour moi ;-)) ça à l'air drôlement pratique
  • AndreaAndrea Member
    aarch!! plus de problème avec IE (6 du moins)

    une idée pour corriger ce soucis avec Firefox ?
  • DeevadDeevad Member
    juin 2009 modifié
    Hello Andrea ;
    Pour corriger sur Firefox, j'ai réadapter l'ancien code d'inclusion avec les thumbnails
    Voici les 4 lignes pour les icones en dessous de chaques images, elles sont vers la ligne 250 :
    echo '<a href="javascript:void(0)" onclick="opener.insimg(\'chapo\', \''.str_replace('../', '', $path.(($dir == './')?'':$dir.'/').$v).'\')" title="Ajouter l\'image dans le chapo">
                                <img src="img/layout-chapo.png" alt="Ajouter chapo" /></a>   ';
                                
                    echo '<a href="javascript:void(0)" onclick="opener.insimg(\'chapo\', \''.str_replace('../', '', $path.(($dir == './')?'':$dir.'/').$v).'.tb'.'\')" title="Ajouter la miniature dans le chapo">
                                <img src="img/layout-chapo-mini.png" alt="Ajouter chapo" /></a>   ';
                                
                    echo '<a href="javascript:void(0)" onclick="opener.insimg(\'content\', \''.str_replace('../', '', $path.(($dir == './')?'':$dir.'/').$v).'\')" title="Ajouter l\'image dans le contenu">
                                <img src="img/layout-content.png" alt="Ajouter chapo" /></a>   ';
                                
                    echo '<a href="javascript:void(0)" onclick="opener.insimg(\'content\', \''.str_replace('../', '', $path.(($dir == './')?'':$dir.'/').$v).'.tb'.'\')" title="Ajouter la miniature dans le contenu">
                                <img src="img/layout-content-mini.png" alt="Ajouter chapo" /></a>   ';
    
    Aussi , il faut revenir dans functions.js à l'ancien code :
    function insimg(where, src) {
    	AddText(where, '<img src="'+src+'" alt="" />');
    }
    
    Bon... ça rends les fonctions alignement et width/height obsolète, mais profiter des dossiers est ma priorité vue le nombre d'image que je vais gérer sur mon site en préparation.
  • vidub2001vidub2001 Member
    août 2009 modifié
    Bonjour,

    Je voudrais adapter cette modification géniale à MyPluxml (dernière version)

    Est-ce que quelqu'un l'a fait ?
    Je n'y arrive pas car le code entre ces 2 versions est assez différent et pas mal de variables ne correspondent pas

    Si une personne peut m'aider, cela serait très gentil

    Cordialement
    Fabrice
  • @vidub2001 : je te conseille de migrer peut être sous PluXml beta 4 sauf si cette version répond spécifiquement à tes besoins....
    Pour migrer => http://forum.pluxml.org/viewtopic.php?id=1277
  • vidub2001vidub2001 Member
    août 2009 modifié
    Bonsoir Marama,

    Je vais suivre ton conseil et migrer sur la v4 de Pluxml (c'est en cours à cette heure :-) !!

    Merci

    Cordialement
    Fabrice
Connectez-vous ou Inscrivez-vous pour répondre.