Gestion des formats de fichiers dans le gestionnaire de médias

Bonjour à tous, avec l'arrivé de la gestion de plusieurs niveaux d'utilisateur il m'a semblé logique que le webmaster puisse choisir quelle format de fichier il autorise sur son site, surtout vis à vis des rédacteurs.

Première étape, modifier le fichier core/admin/parametres_avances.php. Après la ligne 84 ajouté :
<fieldset class="withlabel">
                <legend>Extensions des fichiers dans le gestionnaire de médias :</legend>
                <p class="field">
                        <label>Extensions des images authorisées dans le gestionnaire de médias :</label>
                        <a class="help" title="Sépaées par des virgules"> </a>
                </p>
                <?php plxUtils::printInput('extensions_images_medias', $plxAdmin->aConf['extensions_images_medias']); ?>
                <p class="field">
                        <label>Extensions des documents authorisées dans le gestionnaire de médias :</label>
                        <a class="help" title="Séprées par des virgules"> </a>
                </p>
                <?php plxUtils::printInput('extensions_documents_medias', $plxAdmin->aConf['extensions_documents_medias']); ?>
        </fieldset>
Dans le fichier core/admin/media.php, ligne 184, remplace les lignes :
# Envoi d'un fichier
elseif(!empty($_POST['send']) AND !empty($_FILES)) {
        $plxMedias->upload($dir, $_FILES['file'], $medias);
    header('Location: medias.php?dir='.urlencode($dir).($view!=''?'&v='.$view:''));
    exit;
}
Par
# Envoi d'un fichier
elseif(!empty($_POST['send']) AND !empty($_FILES)) {
        $plxMedias->upload($dir, $_FILES['file'], $medias, $plxAdmin->aConf['extensions_images_medias'], $plxAdmin->aConf['extensions_documents_medias']);
    header('Location: medias.php?dir='.urlencode($dir).($view!=''?'&v='.$view:''));
    exit;
}
Dans le fichier code/lib/class.plx.medias.php, ligne 312, remplacé :
public function upload($dir, $files, $medias) {
Par
public function upload($dir, $files, $medias, $ext_image, $ext_document) {
Ligne 319, après
$ext = strtolower(strrchr(basename($files['name'][$numfile]),'.'));
Ajouter
$ext_images = explode(',', $ext_image);
                                        $ext_documents = explode(',', $ext_document);
Remplacer
if($medias=='images' AND !in_array($ext, array('.gif', '.jpg', '.png')))

						$msg_error = 'Vérifiez le format de vos images: gif, jpg et png uniquement';

					elseif($medias=='documents' AND (substr($ext,0,4)=='.php' OR in_array($ext, array('.cgi'))))

						$msg_error = "Type de fichier non autorisé: php, cgi";
Par
if($medias=='images' AND !in_array($ext, $ext_images))
                                                $msg_error = 'Vérifiez le format de vos images. Seul les images aux formats '.$ext_image.' sont autorisé';
                                        elseif($medias=='documents' AND !in_array($ext, $ext_documents))
                                                $msg_error = 'Type de fichier non autorisé. Seul les fichiers aux formats : '.$ext_document.' sont autorisé';
Voila la modification est terminé. Maintenant aller sur la page http://www.votresitefr/core/admin/parametres_avances.php et en bas ajouter les extensions de fichiers que vous autorisé sous la forme :
.jpg,.bmp,.gif
Pareil pour les documents.

Pour les dev, dans le fichier install.php je pense qu'en ajoutant des valeurs par défaut au tableau de paramètre comme ça devrait être ok :
'extensions_images_medias' => '.jpg,.gif,.png',
'extensions_documents_medias' => '.doc,.odt',

J'ai un string de l'array

Réponses

  • Merci Flipflip, vraiment pas mal :)
  • Cette modif est compatible avec quelles versions?
  • Avec la version 5.0.2. Je pense en faire un plugin pour la 5.1.2 mais pour le moment j'ai pas le temps.

    J'ai un string de l'array

  • Il me semblait aussi que les lignes de code ne collaient pas :)
  • NedNed Member
    février 2012 modifié
    Hello,

    je me permet de réveiller le thread : est-il toujours prévu d'adapter ça pour la version la plus récente (5.1.5 à l'heure où je poste) ?
    J'en aurai furieusement besoin dans la mesure où je tente d'utiliser pluXML pour faire un mini-site de téléchargement d'installeurs divers & variés (*.exe) : je bosse dans la formation professionnelle, et mes users - des formateurs - ne sont pas forcément à l'aise avec la gestion de fichiers, donc d'expérience je préfère leur passer les outils que je développe sous forme d'installeurs plutôt que de zip....
  • Bonjour,

    est-ce que le code sur le wiki pour modifier les formats de fichier (extensions) est valable pour du 5.2 ?

    sinon, comment faudrait-il faire ? Quel paramètres dans quels fichiers ?
  • Bonjour,

    Je ne sais pas trop, il faudrait que je me replonge dans le code de pluxml mais pour le moment j'ai pas trop le temps. L'idéal serait que se soit intégré à pluxml ou dans le pire des cas en faire un plugin...

    J'ai un string de l'array

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