Amélioration du code [ file ] avec un PDF

Si, on fait un lien vers une section (par exemple) avec le code Yacs [ section=xx ], Yacs a le bon goût d'ajouter cette toute petite icône après le texte du lien.

Par contre, si on fait la même chose avec un fichier PDF avec le code [ file=xx ], on obtient cette grande icône ET un saut de ligne après l'icône, avec le texte du lien en-dessous.

Pour ma part, je trouve cela fort inélégant, et pas très flexible, puisqu'il est impossible d'empêcher le saut de ligne car il est codé « en dur » à la ligne 1284 de files/files.php.

En fait, si j'ai bien compris, c'est le même bout de code qui va insérer cette grande icône dans le cas d'un fichier PDF, mais aussi carrément le lecteur vidéo dans le cas d'un fichier Flash (par exemple), ce qui explique le saut de ligne (qui serait approprié dans ce dernier cas).

J'aimerais bien une icône plus discrète quand on ne fait qu'un lien vers un fichier à télécharger, et pas de saut de ligne SVP.

----aux développeurs-----

Je ne suis pas peu fier d'avoir écrit moi-même une solution à ma requête (considérant que je balbutie en PHP) mais je ne peux pas la proposer vraiment comme suggestion de code car :

  • elle cible exclusivement le cas du PDF qui m'intéressait (elle devrait être généralisée)
  • elle ne se conforme pas aux usages de codage de Yacs (que je ne connais pas encore suffisamment)
  • je n'ai peut-être pas utilisé la fontion PHP la plus appropriée et je n'ai même pas fait les tests sur les paramètres qui s'imposaient probablement pour la robustesse du code

Je ne veux pas vous imposer d'être mes profs de PHP, mais si vous avez des commentaires, je les prendrai avec plaisir.

Voici ce que j'ai fait :

                // maybe we want to illustrate this file
                //if it is a PDF     MODAL 100401: exception (if... else) added to display smaller PDF icon
                if (strrchr($item['file_name'],'.') == '.pdf')
                  $output = '<img src="'.'/skins/_reference/files_inline/pdf.gif'.'" />';
                else
          $output = Files::interact($item);