Est-il possible de créer un bouton pour parcourir les fichiers images du dossier /data/medias ?

Bonjour, je me pose la question suivante :

J'ai créer un formulaire dans le menu admin pour ajouter géré un slider. Grosso-modo il permet de définir chaque diapo du slider (gestion d'ordre, titre, contenu, lien, ajout/modification/suppression etc...).

Je voudrais donc savoir si c'était possible de créer un bouton qui permettrait de parcourir les fichiers images du dossier : /data/medias.


Merci d'avance 🙂

Réponses

  • SudwebdesignSudwebdesign Member
    septembre 2019 modifié

    @SkipNoT

    Oui c'est possible, regarde la source de core/admin/article.php.

    À la ligne (362) de notre ami PluXml se trouve se code :

                      <a title="<?php echo L_THUMBNAIL_SELECTION ?>" id="toggler_thumbnail" href="javascript:void(0)" onclick="mediasManager.openPopup('id_thumbnail', true)" style="outline:none; text-decoration: none">+</a>
    

    Ici se trouve le système qui permet d'ouvrir la popup du media manager, c'est déclenché grâce au onclick.

    onclick="mediasManager.openPopup('id_thumbnail', true)"
    

    Copie le code du lien et ensuite change le 'id_thumbnail' par l'id du champ qui doit recevoir l'info du gestionnaire de médias.

    Ou fait comme ci-dessous avec l'exemple 'id_my_action' :

    <a class="h3 blue button" title="<?php $plxPlugin->lang('L_MY_ACTION') ?>" href="javascript:void(0)" onclick="mediasManager.openPopup('id_my_action', true)" style="outline:none; text-decoration: none">+</a>
    <?php plxUtils::printInput('my_action',$my_action,'text','20-255') ?>
    

    Ce code devrais faire l'affaire en l'adaptant un temps soit peu ;)

    Note : plxUtils::printInput() ajoute un préfixe "id_" ds identifiant du champs, du moins ds cette config. D'où le 'id_my_action'


    Tiens nous au jus...

    Notre temps est la seule monnaie vraie ;)

    Site, Dépôt, framagit, MyShop, Factux

    #mozinor président

  • SkipNoTSkipNoT Member
    septembre 2019 modifié

    Merci pour ton temps @Sudwebdesign

    Le code à l'air de fonctionner, mais je ne comprends pas comment retourner la valeur dans l'input justement. Lors de la sélection d'une image avec la checkbox coché en cliquant sur le bouton "Ok" rien ne ce passe.

    Entre temps, je me suis développé un petit bouton qui ouvre une fenêtre modal qui parcourt le dossier et qui affiche sous forme de miniature les images, la sélection ce fait lors d'un clique sur l'une d'entre elles. Je vais chercher à comprendre comment fonctionne ce que tu m'as donné, mais je pense rester sur mon système qui est plus simple pour l'administrateur je trouve.


    Encore merci.


    Edit: Après réflexion avec un collègue, je vais rester sur celui que tu m'as donner car il est natif et permet également d'ajouter un média si besoin.

  • SkipNoTSkipNoT Member
    septembre 2019 modifié

    Ce que je ne comprend pas avec ce code c'est que si je le met dans ma boucle pour remplir ce tableau, je me retrouve avec les input générer par plxUtils::printInput() en dehors du tableau... il devrais être à la suite du bouton dans la colonne image :/


    Edit: Résolu, il fallait changer la fonction printInput pour faire un return et non un echo étant donner que je suis déjà dans un echo au moment de faire la boucle.

    Merci pour l'aide :)

  • SudwebdesignSudwebdesign Member
    septembre 2019 modifié

    @SkipNoT Chouette que cela roule ...

    Par contre et si j'ai bien saisi, tu as modifié la funk plxUtils printInput du cœur de ton PluXml afin qu'il fasse un "return". incertain que cela fonctionne avec la prochaine MAJ de PluXml.

    Edit: Résolu, il fallait changer la fonction printInput pour faire un return et non un echo étant donner que je suis déjà dans un echo au moment de faire la boucle.


    Il semble plus judicieux de "couper" ton "echo" comme ci-dessous :

    echo '</td><td>';
    plxUtils::printInput(...);
    echo '</td><td>';
    

    et de replacer le "echo" de la funk, car comme elle sert à de nombreux endroits, ça peut perturber beaucoup de choses, (un effet de bord comme dirait @Stéphane)


    Tu nous prépare un plugin?

    Notre temps est la seule monnaie vraie ;)

    Site, Dépôt, framagit, MyShop, Factux

    #mozinor président

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