PluXml Forum Home Documentation Ressources Forum Blog PluCSS Github

[PLUGIN]linkMyComments : urls des coms transformées en liens

Suite à une remarque de Deevad, j'ai écrit un plugin vite fait en me basant sur des fonctions de FluxBB.

Les liens écrits dans les commentaires sont transformés en liens cliquables. Aucun hook n'est nécessaire. Il suffit d'activer le plugin.

Rappel : le dossier du plugin doit être renommé de manière à supprimer le "-master" ajouté par Github.

Enjoy :P

Historique :
14/01/2014 : V1.0 Première mise en ligne

Réponses

  • Intéressant, merci Jerry.

    Ça suppose évidemment de valider tous les commentaires, parce que j'en ai vu, des trucs pas cher et des machins discount, qui trouvaient très intéressant un blog paroissial ! Même ne fois à propos d'une page qui n'était plus dans le menu, ça sent bien le robot n'est-ce pas ?! :lol:
  • Ah oui Francis, ça n'empêche pas le spam. A chacun de modérer comme il l'entend (a priori ou a posteriori). ;)
  • SuricatSuricat Member
    Bonjour,

    Il serait intéressant de pouvoir rendre cliquable uniquement les liens de commentaires écrit par l'administrateur du site.
    Et éventuellement pour une liste d'auteurs de commentaires répertoriée dans la configuration du Plugin...
  • DeevadDeevad Member
    Alors avec un gros délai ( 1 an et demi plus tard ) , un grand merci Jerry Wham pour ce plugin.
    Je l'ai découvert sur le forum que récemment. Et c'est nickel dans les commentaires.
    ( eg : http://www.davidrevoy.com/article195/article-books-i-recommend-for-learning-to-draw-and-paint#c1386459941-1 )
    Merci!
  • P'tain, j'ai failli me vexer ]:D
  • DeevadDeevad Member
    O:) he he
  • Hello,
    Est-ce que ce plugin est toujours d'actualité ?
    Est-ce quelqu'un l'a testé sur la dernière version de pluxml ?

    Merci

    Jol5926
  • StéphaneStéphane Member, Former PluXml Project Manager
    ça fonctionne mais avec quelques petites modifs

    dans le fichier functions.php remplacer
    		if($callback) 
    			$replaced = preg_replace_callback($pattern, create_function('$matches', 'return '.$replace.';'), $subject);
    		else
    			$replaced = preg_replace($pattern, $replace, $subject);

    par
    		if($callback) 
    			$replaced = @preg_replace_callback($pattern, create_function('$matches', 'return '.$replace.';'), $subject);
    		else
    			$replaced = @preg_replace($pattern, $replace, $subject);

    sinon y a des warnings partout à l'écran

    et perso je supprimerais
    	public function __do_clickable($text) {
    		return do_clickable($text);
    	}

    et je remplacerais
    	public function plxMotorParseCommentaire() {
    		$string = '
    		$com[\'content\'] = $this->plxPlugins->aPlugins[\'linkMyComments\']->__do_clickable($com[\'content\']);
    		';
    		echo "<?php ".$string."?>";
    	}

    par
    	public function plxMotorParseCommentaire() {
    		echo '<?php  $com["content"] = do_clickable($com["content"]); ?>';
    	}

    sinon c'est tout bon :cool:

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Cool !

    Sinon, c'est quoi les warnings qui s'affichent ? Autant essayer de les corriger...
  • StéphaneStéphane Member, Former PluXml Project Manager
    Notice: Undefined offset: 10 in \PluXml\plugins\linkMyComments\functions.php(253) : runtime-created function on line 1

    Call Stack
    #	Time	Memory	Function	Location
    1	0.0000	381944	{main}( )	...\index.php:0
    2	0.0210	1568152	plxMotor->demarrage( )	...\index.php:36
    3	0.0210	1568224	plxMotor->getCommentaires( )	...\class.plx.motor.php:311
    4	0.0220	1574624	plxMotor->parseCommentaire( )	...\class.plx.motor.php:810
    5	0.0220	1587720	eval( '?>plxPlugins->aPlugins['linkMyComments']->__do_clickable($com['content']); ?> )	...\class.plx.motor.php:764
    6	0.0220	1587720	linkMyComments->__do_clickable( )	...\class.plx.motor.php(764) : eval()'d code:2
    7	0.0220	1587720	do_clickable( )	...\linkMyComments.php:36
    8	0.0220	1588280	ucp_preg_replace_callback( )	...\functions.php:288
    9	0.0220	1588280	ucp_preg_replace( )	...\functions.php:279
    10	0.0220	1590152	preg_replace_callback ( )	...\functions.php:253
    11	0.0220	1590824	__lambda_func( )	...\functions.php:253

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Merci. Je vais essayer d'arranger ça.
  • AndreaAndrea Member

    Une fois les modifications suggérées par @Stéphane ça semble encore fonctionner (avec PluXml 5.8.19)

    Mais apparait l'erreur suivante

    message : Undefined offset: 12 
    file : /pluxml-5.8/test/plugins/linkMyComments/functions.php(254) : runtime-created function 
    line : 1 

    PS: ça n'était pas le cas avec une ancienne version (5.8.7) si ça peut aider. ;) à trouver comment régler ce problème

  • Bonjour,

    @Andrea
    je viens de regarder le plugin pour qu'il fonctionne en PHP8 , j'ai finalement virer le code basé sur du code de FluxBB pour des regex communément utilisées https://ressources.pluxopolis.net/banque-plugins/plugins/linkMyComments.1.1.zip

    Sur le fond je ne conseille pas trop d'utiliser ce genre de fonctionnalité si les commentaires ne sont pas modérés.

    cdt


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • kowalskykowalsky Member

    Oui, attention avec ce plugin car la désactivation des liens dans les commentaires est principalement faite pour raison de sécurité afin qu'une personne malveillante ne puisse pas injecter du code non désiré et non contrôlé par le propriétaire du site web.

  • AndreaAndrea Member

    Merci @gcyrillus-nomade testé et approuvé ;) oui les commentaires sont modérés

    Quand vous dites @kowalsky "injecter du code non désiré" vous ne parlez pas que d'un lien ?

  • AndreaAndrea Member

    Je n'en suis pas forcément très fan mais peut-être ajouter l'ouverture dans une autre fenêtre

    C'était fait précedemment avec du JS ainsi

    "<a href=\"mailto:\\1\">\\1</a>", $l);
    "<a href=\"mailto:\\1\" rel=\"nofollow\" onclick=\"window.open(this.href);return false;\">\\1</a>", $l);

    Et pourquoi pas ;) un rel="nofollow" aussi

  • ooui on peut ajouter le rel et le target en attributs sur les liens aussi .

    Bon bah cela fait quelques plugin qui ressuscitent un peu du coup :)


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • AndreaAndrea Member

    Bon bah cela fait quelques plugin qui ressuscitent un peu du coup :)

    Celui là n'est peut-petre pas dès plus indispensable voir déconseillé ;) mais certains de @DjbWebmaster tels que Events, FAQ, MyTeam et Testimonials je les trouve intéressants pour de petits sites web' ou un blog

  • kowalskykowalsky Member

    @Andrea

    Quand vous dites @kowalsky "injecter du code non désiré" vous ne parlez pas que d'un lien ?

    Si, le lien sera formé de telle manière que lorsque l'on clique dessus, le code sera exécuté : voir https://fr.wikipedia.org/wiki/Injection_de_code_dans_les_applications_web

    D'où la mesure de sécurité de ne pas les activer dans les commentaires, sauf si modérés avant publication.

  • AndreaAndrea Member
    19 mars modifié

    Intéressant ;) merci @kowalsky pour cette précision

Connectez-vous ou Inscrivez-vous pour répondre.