[plxEditor] Quelques idées

2»

Réponses

  • StéphaneStéphane Member, Former PluXml Project Manager
    Ok je vois ce que tu veux. Pour le moment il n'y a rien de dispo

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • RootardRootard Member
    juin 2013 modifié
    Bonjour,

    Je déterre un instant ce post pour apporter une modeste contribution au plugins plxEditor ! :)

    C'est au sujet des suggestions initiales de aruhuno qui souhaitait : 1 - Permettre l'ajout des liens avec un target="_blank"
    C'est à dire mettre un paramètre target sur les liens HTML afin d'ouvrir le lien dans un nouvelle fenêtre (ou un nouvel onglet selon le cas).

    J'ai réalisé ce bout de code et vous le soumet pour ceux qui sont toujours intéressés par la fonctionnalité. Pour information, je dispose du plugins plxeditor.1.2 et j'ai pluXML 5.1.7 installé.

    Les modifications à faire sont au nombre de 3 dans le fichier xxx/plxeditor/plxeditor/plxeditor.js

    [list=*]
    [*]Modification de la fenêtre des paramètres du lien[/*]
    [/list]

    J'ai ici ajouté une seule ligne (la troisième ligne "table +='<tr>...") pour créer une case à cocher, active par défaut, qui s'appelle "Nouvelle page". Si vous ne souhaitez pas avoir la case active par défaut, il suffit de supprimer le mot clé "checked" à la fin de la ligne.
    	create.prototype.panel=function() {
    		var table = '<table border="0" cellspacing="0" cellpadding="0">';
    		table += '<tr><td style="padding:0">Lien :</td><td style="padding:0"><input type="text" value="http://" id="txtHref" /></td></tr>';
    		table += '<tr><td style="padding:0 0 5px 0">Titre du lien :</td><td style="padding:0 0 5px 0"><input type="text" value="'+this.value+'" id="txtTitle" /></td></tr>';
    		table += '<tr"><td style="padding:0 2px 0 0">Nouvelle page :</td><td style="padding:6px 0 8px 0"><input type="checkbox" value="window.open(this.href);return false;" id="txtTarget" checked /></td></tr>';
    		table += '<tr><td style="border-top:#dedede 1px solid;padding:5px 0 0 0">class :</td><td style="border-top:#dedede 1px solid;padding:5px 0 0 0"><input type="text" value="" id="txtClass" /></td></tr>';
    		table += '<tr"><td style="padding:0">rel :</td><td style="padding:0"><input type="text" value="" id="txtRel" /></td></tr>';
    		table += '<tr><td colspan="2" style="text-align:center"><input type="submit" value="Ajouter" onclick="PLUXML.linker.setLink('+this.editor+')" />&nbsp;<input type="submit" name="btnCancel" id="btnCancel" value="Annuler" onclick="PLUXML.dialog.close(\'linker\')" /></td></tr>';
    		table += '</table>';
    		return table;
    	};
    
    


    [list=*]
    [*]Modification de la récupération de la variable + modification de l'utilisation de la valeur[/*]
    [/list]

    J'ai ici ajouté la ligne "var sTarget = (E$..." pour récupérer la valeur de la variable lorsque la case est cochée (en dessous de la ligne "var sTtitle = (E$...").
    J'ai ensuite modifié la ligne "editor.execCommand('inserthtml',..." pour ajouter "+sTarget" dans la construction des paramètres du lien.
    	setLink:function(editor) {
    		var sHref = (E$('txtHref') ? E$('txtHref').value : '');
    		var sTtitle = (E$('txtTitle') ? E$('txtTitle').value : '');
    		var sTarget = (E$('txtTarget') ? (E$('txtTarget').checked? ' onclick="'+E$('txtTarget').value+'"':'') : '');
    		var sClass = (E$('txtClass') ? (E$('txtClass').value!=''? ' class="'+E$('txtClass').value+'"':'') : '');
    		var sRel = (E$('txtRel') ? (E$('txtRel').value!=''? ' rel="'+E$('txtRel').value+'"':'') : '');
    		if(sTtitle=='' || PLUXML.linker.isUrl(sHref)==false) return;
    		editor.execCommand('inserthtml', '<a href="'+sHref+'" title="'+sTtitle+'"'+sClass+sRel+sTarget+'>'+sTtitle+'</a> ');
    		PLUXML.dialog.close('linker');
    	}
    

    Et c'est tout ! Une fois ce code modifié et mis en ligne, la petite fenêtre qui s'ouvre lorsque l'on veut faire un lien avec plxEditor contient une case à cocher en plus.

    Si la case à cocher est active => Le lien dans l'article s'ouvrira dans une nouvelle fenêtre
    Si la case à cocher est inactive => Le lien dans l'article s'ouvrira dans la fenêtre courante.

    Voilà en espérant avoir été clair et ne pas avoir commis d'erreur, en tout cas chez moi ça fonctionne du tonnerre.

    Bonne journée à tous, Rootard.

    Mise à Jour :
    Remplacement du : target="_blank"
    par : onclick="window.open(this.href);return false;"
    Ce qui est tout de même mieux non ? :P
Connectez-vous ou Inscrivez-vous pour répondre.