Gestionnaires de média

danielsandanielsan Member
octobre 2012 modifié dans Entraide
Bonjour à vous,


je ne me rappelle plus, existe-t-il d'autres gestionnaires de média que celui par défaut ?


J'ai un petit problème avec ce dernier,
comme je crée un dossier image par article et qu'il y a plusieurs centaines d'articles (regroupés dans une centaine de dossier ... chaque article a des images je vous rassure),
je me retrouve avec un menu déroulant imbuvable.


Existe-t-il donc un autre gestionnaire de média avec une meilleure présentation des dossiers et des fonctionnalités comme le renommage ?


Merci à vous.

Réponses

  • danielsandanielsan Member
    octobre 2012 modifié
    Concernant l'affichage du menu déroulant,
    pour lister par ordre alphabétique (c'est déjà une avancée):
    dans la class plxMedias.php, function contentFolder(), ligne 146, remplacez
    	/**
    	 * Méthode qui formate l'affichage de la liste déroulante des dossiers
    	 *
    	 * @return	string	chaine formatée à afficher
    	 * @author	Stephane F
    	 **/
    	public function contentFolder() {
    
    		$str  = "\n".'<select class="folder" id="folder" size="1" name="folder">'."\n";
    		$selected = (empty($this->dir)?'selected="selected" ':'');
    		$str .= '<option '.$selected.'value=".">|. ('.L_PLXMEDIAS_ROOT.') &nbsp; </option>'."\n";
    		# Dir non vide
    		if(!empty($this->aDirs)) {
    			foreach($this->aDirs as $k => $v) {
    				$prefixe = '|&nbsp;&nbsp;';
    				$i = 0;
    				while($i < $v['level']) {
    					$prefixe .= '&nbsp;&nbsp;';
    					$i++;
    				}
    				$selected = ($v['path']==$this->dir?'selected="selected" ':'');
    				$str .= '<option '.$selected.'value="'.$v['path'].'">'.$prefixe.$v['name'].'</option>'."\n";
    			}
    		}
    		$str  .= '</select>'."\n";
    
    		# On retourne la chaine
    		return $str;
    	}
    
    par
    	/**
    	 * Méthode qui formate l'affichage de la liste déroulante des dossiers
    	 *
    	 * @return	string	chaine formatée à afficher
    	 * @author	Stephane F
    	 **/
    	public function contentFolder() {
    
    		$str  = "\n".'<select class="folder" id="folder" size="1" name="folder">'."\n";
    		$selected = (empty($this->dir)?'selected="selected" ':'');
    		$str .= '<option '.$selected.'value=".">|. ('.L_PLXMEDIAS_ROOT.') &nbsp; </option>'."\n";
    		# Dir non vide
    		if(!empty($this->aDirs)) {
    			ksort($this->aDirs);
    			foreach($this->aDirs as $k => $v) {
    				$prefixe = '|&nbsp;&nbsp;';
    				$i = 0;
    				while($i < $v['level']) {
    					$prefixe .= '&nbsp;&nbsp;';
    					$i++;
    				}
    				$selected = ($v['path']==$this->dir?'selected="selected" ':'');
    				$str .= '<option '.$selected.'value="'.$v['path'].'">'.$prefixe.$v['name'].'</option>'."\n";
    			}
    		}
    		$str  .= '</select>'."\n";
    
    		# On retourne la chaine
    		return $str;
    	}
    


    ( j'ai juste réalisé un tri (ksort) avant la boucle )
    si stéphane peut me confirmer cette modif' ( et éventuellement l'intégrer ?)


    Cordialement,
  • danielsandanielsan Member
    octobre 2012 modifié
    Autre modification, ajout à chaque élément d'une class selon le niveau ( cela permet au moins de mettre un code couleur différent )
    	/**
    	 * Méthode qui formate l'affichage de la liste déroulante des dossiers
    	 *
    	 * @return	string	chaine formatée à afficher
    	 * @author	Stephane F
    	 **/
    	public function contentFolder() {
    
    		$str  = "\n".'<select class="folder" id="folder" size="1" name="folder">'."\n";
    		$selected = (empty($this->dir)?'selected="selected" ':'');
    		$str .= '<option '.$selected.'value=".">|. ('.L_PLXMEDIAS_ROOT.') &nbsp; </option>'."\n";
    		# Dir non vide
    		if(!empty($this->aDirs)) {
    			ksort($this->aDirs);
    			foreach($this->aDirs as $k => $v) {
    				$prefixe = '|&nbsp;&nbsp;';
    				$i = 0;
    				while($i < $v['level']) {
    					$prefixe .= '&nbsp;&nbsp;';
    					$i++;
    				}
    				$selected = ($v['path']==$this->dir?'selected="selected" ':'');
    				//$str .= '<option '.$selected.'value="'.$v['path'].'">'.$prefixe.$v['name'].'</option>'."\n";
    				$str .= '<option class="level_'.$v['level'].'" '.$selected.'value="'.$v['path'].'">'.$prefixe.$v['name'].'</option>'."\n";
    			}
    		}
    		$str  .= '</select>'."\n";
    
    		# On retourne la chaine
    		return $str;
    	}
    


    avec un style css de ce type:
    select#folder option.level_0{background-color: #FFFFFF; color: #000000}
    select#folder option.level_1{background-color: #BBBBBB; color: #444444}
    select#folder option.level_2{background-color: #888888}
    select#folder option.level_3{background-color: #444444; color: #BBBBBB}
    select#folder option.level_4{background-color: #000000; color: #FFFFFF}
    
  • StéphaneStéphane Member, Former PluXml Project Manager
    Salut Daniel

    Je prends en compte les points suivants:
    - ajout du tri des dosssiers (mais avec la fonction asort, plutot que ksort)
    - ajout d'une classe css au niveau de l'affichage des dossiers

    Je ne prends pas en compte l'ajout des couleurs: je ne trouve pas que ça rend l'affichage plus clair

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • StéphaneStéphane Member, Former PluXml Project Manager
    Hum, finalement je ne sais pas ce qui est le mieux, un tri avec asort ou ksort
    Danielsan peux-tu me dire quel tri tu préfères stp ?

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Bonjour, je m'incruste pour faire remarque que pas mal de clients m'ont dit concernant le gestionnaire de média : "C'est pas clair". Plus détaillé il faut comprendre que la présentation en liste déroulante perturbe et il vrai que parfois on est vite perdu et il n'est pas facile de savoir si est bien dans le répertoire ou alors si on l'a juste sélectionné dans la liste. Une autre remarque : "Quand je suis dans un dossier je ne vois pas les sous dossiers s'afficher", comprendre que les sous-dossiers visible uniquement dans la liste déroulante pose aussi problème.

    Je pense qu'une présentation plus traditionnel sous forme de dossier cliquable serait plus simple à utiliser.

    J'ai un string de l'array

  • Salut,


    merci de te pencher sur ma demande.
    Je cherche à obtenir un classement par ordre alphabétique des dossiers et sous-dossiers du menu déroulant ... alors après tenir compte des clefs et des index ... je vais te dire que je ne sais pas !
    J'ai l'impression que les clefs sont créées en fonction des index, du coup je trouvais ça un peu pareil ;-)


    Concernant les couleurs, je suis d'accord avec toi, libre à chacun d'intégrer celles qu'il souhaite.
    Juste prévoir qu'on puisse le faire (d'où la class en fonction du level).
    Cela permet aussi de faire un menu amélioré avec jQuery ... tout ça se fait aisément avec un petit plugin qui ajoute une css ou autre
  • @flipflip: effectivement, les clients m'appellent pour me dire "les images ne s'affichent pas"
    en fait ils les ont mises dans le dossier racine ...


    On pourrait, comme il a été suggéré, de faire ce gestionnaire de média en tant que plugin livré par défaut ?
    Celui-ci me va car j'ai l'habitude, je l'utilise donc en mode création ( idem avec les éditeurs ), et quand je livre je mets un autre éditeur et gestionnaire média.
  • Je plussoie pour un gestionnaire de médias qui ferait apparaître les sous-dossiers et la racine. La version actuelle marche bien, mais elle n'est pas très ergonomique.
Connectez-vous ou Inscrivez-vous pour répondre.