webleads-tracker

Modifier un mx : text / ouvrir un PDF dans un nouvel onglet

pderathe
Avatar
Voilà ,

je voudrais modifier le contenu d'un "mx:text" qui appelle un lien vers un pdf en y ajoutant une balise span sur le texte du lien et une classe sur le lien.
Je ne me rappelle plus comment faire. Une idée ?

Merci

Pascal
Artisan du Web en Rhône-Alpes

Romain Sauger
Bonjour,
pourrais-tu nous en dire plus ? C'est dans quel template ?

pderathe
Avatar
Dans un template product****.html j'ai le mx:text id="fiche_pdf" qui génère un lien vers une pièce jointe. J'aimerai modifier le contenu de ce mx:text pour masquer le nom du fichier sur lequel se fait le lien et le substituer par l'icône qui représente le document. Cette icône permettant d'accéder à la pièce jointe.


Ligne concernée du template:

< mx : bloc id="fiche_pdf">
< span class="libelle"> < img src="/images/structure/icone-pdf-50x75.jpg" alt="Fiche PDF" /> Fiche PDF : < /span>
< /mx:bloc id="fiche_pdf">


Est-ce plus clair ?
Artisan du Web en Rhône-Alpes

Romain Sauger
Ok, j'y vois un peu plus clair.
Pourquoi pas simplement ajouter une class via une div englobante et transformer le lien en icone PDF ?
Quelque chose du genre :

<div class="pdf"><a […]</div>
.pdf a{display:block;width:100px;height:100px;background:url(pdf.png) no-repeat 0 0);text-indent:-9999px}

petite explication sur le text-indent (je ne sais pas si ce truc est connu de tous), cela permet de masquer le texte du lien en le déplaçant loin à gauche. C'est grosso-modo la même technique que le remplacement de titre par des images.

pderathe
Avatar
Merci Romain

Ca me permet de mieux présenter ma fiche. Effectivement je n'avais pas pensé à utiliser "text-indent" pour cacher le texte du lien généré par le mx:text, tellement habitué que je suis à placer le texte des liens dans une balise "span" et à l'envoyer promener au large en CSS.

Ceci dit j'aimerai bien pouvoir rajouter un petit bout de code js * dans mon lien généré par le mx:text, et j'en reviens à ma question initiale: Comment modifier le contenu d'un mx:text ?

*= onclick="window.open(this.href,'_blank');return false;"
Artisan du Web en Rhône-Alpes

Romain Sauger
Pascal,
voici une solution sans modifier ton mx:text.
Si je comprend bien, tu souhaites ouvrir les lien vers les PDF dans une nouvelle fenêtre.

ceci devrait faire l'affaire das une fichier js externe (via jquery):

$("a[href*=.pdf]").click(function(){
window.open(this.href);
return false;
});


Romain Sauger
Rebonjour Pascal,

voici donc la version complète, avec liaison de JQuery :

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
$("a[href*=.pdf]").click(function(){
window.open(this.href);
return false;
});
});
</script>


Il faut faire très attention à l'endroit où tu vas ajouter le code ci-joint (http://communaute.medialibs.com/forum/topic-1898.html).
e-majine faisant également appel à Jquery, mais de manière intermittente et pour ses propres fonctions, il faut IMPERATIVEMENT placer ce code juste avant la balise </head>

En ce qui concerne mon insertion de JQUERY,
Il existe plusieurs méthode, on aurait pu faire appel au JQuery installé sur e-majine. Par contre c'est seulement la version 1.3.2, je ne sais pas si elle est compatible avec le script que je viens de te donner.

<script src="http://www.monsite.fr/script-jquery" type="text/javascript" charset="utf-8"></script>

ps : il n'y a pas de faute de frappe, c'est bien /script-jquery sans ".js"

pderathe
Avatar
Merci Romain

Ainsi cela fonctionne bien

Ceci est à ranger au niveau des "astuces intéressantes" car je ne sais pas pour vous, mais moi je préfère ouvrir les PDF dans des nouveaux onglets.

Grâce à ces deux bouts de script ça se fait "tout seul"

Va falloir que je me mette au JQuery (... quand je serai vieux ! Nan Avant !)

A+

Pascal
Artisan du Web en Rhône-Alpes