Dans le cadre de mes fonctions de mise à disposition de documents PDF auprès de mes utilisateurs, comme le navigateur utilisé et forcément celui de la fondation Mozilla, chaque fois que l'utilisateur clique sur un fichier PDF, le navigateur Firefox charge sa bibliothèque pdf.js, intégrée au navigateur, dont la principale fonctionnalité et d'afficher au cœur même du navigateur le contenu d'un fichier PDF.
La problématique
Avec ce fonctionnement fort intéressant de la part du navigateur Firefox, je me heurte à la problématique suivante qui reste une problématique métier : comment l'utilisateur peut-il télécharger le fichier si cet utilisateur n'est pas à l'aise avec l'outil informatique ? (ce qui représente une majorité de mes utilisateurs)
Après réflexion, pour faciliter la tâche, et après recherche sur le site du W3C, la solution réside simplement en rajoutant dans le lien
<a href
pointant vers un fichier PDF, une propriété target
à la valeur _blank.Mon plugin
Ainsi, je viens de créer un tout petit plugin de contenu, qui permet de rajouter automatiquement, uniquement si le lien pointe vers un fichier PDF, l'extension target avec une valeur à _blank.
Ainsi, sur une page web, chaque fois qu'un fichier PDF est détecté, l'extension target est mise à jour automatiquement avec sa propriété _blank.
Dans tous les autres cas, surtout les autres liens, si vous souhaitez mettre une propriété target, ce sera à vous de l'ajouter manuellement.
J'ai opté pour deux lignes de recherches car certains continues a utiliser les simples cotes dans un fichier HTML, ce qui est proscrit par la norme édictée par le W3C.
targetpdf.php
<?php
defined('_JEXEC') or die('Access deny');
class plgContentTargetPDF extends JPlugin
{
function onContentPrepare($content, $article, $params, $limit){
$article->text = str_ireplace('.pdf"','.pdf" target="_blank" ',$article->text);
$article->text = str_ireplace(".pdf'",".pdf' target=\"_blank\" ",$article->text);
}
}
?>
targetpdf.xml
<?xml version="1.0" encoding="utf-8"?>
<extension version="1.0" type="plugin" group="content" method="upgrade">
<name>Target _blank pdf only</name>
<author>Sébastien LHUILLIER</author>
<creationDate>Avril 2024</creationDate>
<copyright></copyright>
<license></license>
<authorEmail>Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.</authorEmail>
<authorUrl>www.sebastien-lhuillier.com</authorUrl>
<version>1.0</version>
<description>
Force l'ouverture des fichiers PDF d'une page dans un nouvel onglet/nouvelle parge en jouant sur le target
</description>
<files>
<filename>targetpdf.xml</filename>
<filename plugin="targetpdf">targetpdf.php</filename>
</files>
<config>
</config>
</extension>