Plugin home made : Changer mot par un lien en js, est-ce possible ?

J'ai tenté d'installer un petit javascript pour remplacer des mots par des liens, ça fonctionne nickel dans un fichier html mais ça ne fonctionne pas dans pluxml.

Voici le script en question
lienauto.js :
[== Indéfini ==]
function motcleauto()
{
	code = document.getElementById("id_body").innerHTML;
	code = code.replace("'","\'");
	code = code.replace("cartes d'affaires","<a href='./index.php?categorie9/cartes-d-affaires' alt='cartes d'affaires' />cartes d'affaires</a>");
	code = code.replace("brochure format 11X17","<a href='./index.php?categorie10/brochures' alt='brochure format 11X17' />brochure format 11X17</a>");
	document.getElementById("id_body").innerHTML = code;
}

et le fichier html qui fonctionne
[== Indéfini ==]
<html>
 
<head>
 
	<script type="text/javascript" src="lienauto.js"></script>
 
</head>
 
<body id="id_body" onload="javascript:motcleauto();">
 
cartes d'affaires nom !<br />
<br />
Tu as brochure ect<br />
<br />
 
Blablabla...
 
</body>
 
</html> 

Le résultat est que les mots cartes d'affaires et brochure deviennent automatiquement des liens vers des sous-catégories.

Je présume que ça bug dans pluxml étant donné que le contenu est importé à partir de fichier externe xml. Mais auriez-vous une idée comment je pourrais patenter un petit script du genre qui fonctionnerait dans Pluxml ?

p-.s. j'ai aussi essayé des script en php, ça bug tout autant...

Réponses

  • Je pense que le lien vers ton js n'est pas bon.
    Que dit la console javascript ?
  • Cool, en mettant le lien réel (sans la mention <?php $plxShow->template(); ?>/) ça fonctionne :) merci pour la piste de solution. Faut pas oublier de mettre «id="id_body"» dans la balise body, sinon ça marche pas.
    Si vous voulez vous pouvez utiliser ce petit script pour vous faire des liens de partenaires ou des liens de définition de mots, moi c'est l'idée que je veux faire avec ça. J'imagine que ça peut se convertir facilement en plugin, c'est juste que je m'y connais pas assez en développement de plugin pour le faire moi-même. :D
    Il y a juste un petit soucis pour l'instant, ca fait planter mon widget twitter qui est en bas de page! Une idée pourquoi ?
  • Il faut voir ce que dit la console js...
  • Voici les infos de la console

    Invalid App Id: Must be a number or numeric string representing the application id.
    FB.getLoginStatus() called before calling FB.init().
    SCRIPT5007: Impossible d’obtenir la propriété « id » d’une référence null ou non définie
    widgets.js, Ligne 36 Caractère 336


    Et ceci en jaune dans le script twitter

    return e.id?e.id:(t=e.getAttribute("data-twttr-id"))?t:(t="twttr-sandbox-"+o++,e.setAttribute("data-twttr-id",t),t

    J'ai changé le nom de mon compte il y a quelques semaine, vuque j'ai changé d'adresse de site web, mais j'ai bien vérifié dans mon profil que j'ai la bonne adresse et j'ai refait la manip de création widget.

    Hier j'ai tenté d'enlever le petit script de lien automatique pour voir si c'était vraiment ca le bug, et le widget twitter ne fonctionne pas plus. Donc c'est pas le petit script qui cause ce bug. N'empêche que je ne comprends pas pourquoi le widget twitter ne veut pas prendre ma nouvelle adresse !!!
  • Jerry WhamJerry Wham Member
    novembre 2013 modifié
    [del]Je pense que c'est le fait d'appeler la fonction initi() dans la balise body qui le fait planter :[/del]
    console a écrit:
    [del]FB.getLoginStatus() called before calling FB.init(). [/del]

    J'ai rien dit. Tu as essayé avec une page html basique?
  • Bon, suite a plusieurs tests, c'est bel et bien le script de mot clé auto qui fait planter le widget twitter et/ou Facebook. Pour contourner le problème j'ai tenté de mettre un script de RSS embed, pour Facebook ca fonctionne, mais comme twitter ne nous donne plus accès au RSS de nos tweet, ça règle pas vraiment mon problème. Avant de jeter l'éponge et renoncer au widget Facebook et twitter, as-tu une piste de solution à me proposer ?
  • ah et pour répondre à ta question, oui les widget fonctionne dans un html simple et dans mon template pluxml si j'enlève le script de lienauto
  • Je reviens sur ce que j'ai dit :Je pense que c'est le fait d'appeler la fonction initi() dans la balise body qui le fait planter.
  • Ou vois-tu cette fonction ? Je n'ai que ceci dans mon body
    <body id="id_body" onload="javascript:motcleauto();">

    Est-ce que je devrais essayer de renommer le id_body ?
  • bah je viens de l'essayer, ça bug quand même :( grrrr
  • C'est le onload="javascript:motcleauto();" qui le fait planter...
  • si je met pas le onload, le script ne fonctionne pas (je présume qu'avec ce onload dans le body il scan la page qui s'ouvre pour y trouver les mots à mettre en lien, donc si je met juste le script dans le header ca scan juste le fichier header)... y a t'il une autre manière de le loader sans avoir besoin du onload dans le body ?
Connectez-vous ou Inscrivez-vous pour répondre.