Définir le nombre de commentaires sur une page

Lau029Lau029 Member
Bonjour,

Dans l'admin, il est possible de définir le nombre de commentaires affichés par page dans l'administration, mais est-il possible (et si oui où ?) de définir le nombre de commentaires affichés par page dans un article ?

Cela doit être possible, mais je n'ai pas trouvé où.

Faut-il modifier le code ou peut-on le faire directement dans la configuration des paramètres ?

Merci

Réponses

  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour. Non, ce n'est pas possible.
    En revanche j'avais rédigé cet article qui pourrait t’intéresser:

    Créer une pagination pour les commentaires:

    http://pluxopolis.net/article19/creer-une-pagination-pour-les-commentaires

    Consultant PluXml

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

  • Bonjour Stéphane,

    Merci. Effectivement, ton article m'intéresse, cependant je ne peux pas télécharger le fichier "paginate.zip" de ton article, car le lien est brisé...

    Pourrais-tu me dire où je peux le télécharger ?

    De plus, j'utilise déjà le jquery avec le plug in que tu as créé pour PluXml (jQuery 1.4.4 - Version 1.7.1 (24/12/2011)).

    Est-ce que cela peut poser un problème ?

    Merci d'avance.
  • StéphaneStéphane Member, Former PluXml Project Manager
    @Lau029: Le lien est réparé. Pour jquery, je n'ai pas ce qu'il faut sous la main pour tester. Je ne sais pas répondre pour le moment. A tester donc

    Consultant PluXml

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

  • Bonjour Stéphane,

    J'ai essayé ton tutorial, mais comme j'ai installé le plug in PluXml (jQuery 1.4.4 - Version 1.7.1 (24/12/2011)) que tu as créé, il y a un conflit, puisqu'il y a 2 jQuery sur la même page. Et la pagination ne marche pas...

    Si je désactive le plug in dans l'admin, la pagination fonctionne, mais plus ma galerie de photos...

    Il faudrait que je puisse désactiver ou ne pas afficher ton "plug in jQuery" uniquement dans la page des commentaires. Est-ce possible ?

    Merci d'avance... Cela fait un moment que je bloque là-dessus...
  • je-evrardje-evrard Member
    octobre 2015 modifié
    Dans ton thème tu peux changer la declaration de jaquery par un test.

    Par le cdn
    [== Indéfini ==]
    <script type="text/javascript">
    		/* <![CDATA[ */
    		!window.jQuery && document.write('<script  type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"><\/script>');
    		/* !]]> */
    </script>
    
    

    ou en local
    [== Indéfini ==]
    <script type="text/javascript">
    		/* <![CDATA[ */
    		!window.jQuery && document.write('<script  type="text/javascript" src="<?php $plxShow->template(); ?>/paginate/jquery-1.10.2.min.js"><\/script>');
    		/* !]]> */
    		</script>
    
    

    a+

    jéjé
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    octobre 2015 modifié
    Bonjour,

    Il vaut mieux tester strictement le type de jQuery.
    Dans mes plugins en php, je teste si la constante JQUERY_LOADED est définie :
    [== PHP ==]
    if (! defined('JQUERY_LOADED'')) { ?>
    <script type="text/javascript">
    		if (typeof jQuery === 'undefined')
    			document.write('<scr'+'ipt type="text/javascript" src'+'="//code.jquery.com/jquery-1.11.3.min.js"></sc'+'ript>');
    </script>
    <?php 
        define('JQUERY_LOADED', true);
    }
    
    les "'+'" sont là pour être compatibles avec d'anciennes versions de Pluxml. Avec la version 5.4, on peut les supprimer.
    Cela évite d'avoir plusieurs test pour jQuery dans l'entête de la page Web.
    Il faudrait qu'entre chaque développeur de plugin, on s'accorde à définir la même constante.

    Cordialement
  • Bonjour Jéjé,

    Merci, j'ai testé, mais cela ne fonctionne pas...

    En fait, sur ma page de commentaires, j'aimerais que la version jQuery de paginate soit présente, mais sur cette page, je n'ai pas besoin de celle du plug in PluXml qui vient par défaut... et je ne vois pas comment je peux la désactiver sur cette page uniquement, car elle s'inscrit automatiquement dans toutes les pages du site...

    Merci bazooka07, j'aimerais tester ton code, mais je ne sais pas exactement où le mettre... Je suppose dans le php du plug in pour PluXml développé par Stéphane, mais à quel endroit exactement ???

    Tout à la fin, il y a
    [== PHP ==]
    	public function addJQuery() {
    		echo "\t".'<script type="text/javascript" src="'.PLX_PLUGINS.'jquery/jquery.min.js"></script>'."\n";
    	}
    

    Merci d'avance pour votre aide.
  • @bazooka07

    merci pour ta méthode
  • Bonjour,

    En fait, dans ma page, il y a 3x le jQuery. La 1ère pour un menu pour les versions mobiles, la 2ème pour la pagination et la 3ème qui est affichée automatiquement par le plug in jQuery pour PluXml.

    Les 2 premières sont dans mon template header pour les commentaires et la 3ème est affichée automatiquement lorsque le plug in JQuery pour PluXml est activé.

    Si je désactive le plug in jQuery pour PluXml, mon menu pour les mobiles, ainsi que la pagination fonctionnent correctement, mais pas ma galerie de photos… ce qui pose problème…
    Et pour ma galerie de photos, j’ai besoin que le plug in jQuery soit activé…

    J’ai regardé dans le fichier du plug in et il y a :
    [== Indéfini ==]
    /**
    	 * Méthode qui ajoute l'insertion du fichier javascript de jquery dans la partie <head> du site
    	 *
    	 * @return	stdio
    	 * @author	Stephane F
    	 **/	
    	
    public function addJQuery() {
    		echo "\t".'<script type="text/javascript" src="'.PLX_PLUGINS.'jquery/jquery.min.js"></script>'."\n";
    	}
    
    

    Je pense que c'est peut-être à ce niveau qu'il faut agir, mais je ne sais pas trop comment...

    Est-il possible d’exclure une/des pages ou templates pour que ce code de s’insère pas automatiquement dans toutes les pages ?

    Merci !
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    octobre 2015 modifié
    Bonjour,

    A) As-tu essayer de déactiver le plugin de Stéphane. S'il n'amène que le téléchargement de JQuery, et que tu le télécharges avec Pagination, tu n'en a pas besoin.
    B) Il y a belle lurette qu'on n'utilise plus javascript ou jQuery pour gérer les menus sur les mobiles. Cela se gère très bien avec CSS3, <input[type='checkbox'] id="nav" /><label for="nav"> </label>, <ul> et <li> et media queries. Tu as un exemple ici : http://www.echecs-annonay.fr. Affiche le code source dans Firefox en tapant Ctrl-U et regardes ce qui est écrit entre <nav role="navigation"> et </nav>. Vas sur Google et cherches "menu déroulant css"
    C) T'es sûr d'avoir besoin de pagination pour afficher des commentaires ? Peut-être qu'en limitant la hauteur du container et en faisant overflow-y : auto dans la feuille CSS, cela suffirait. Tu comptes les commentaires par dizaine, centaine, ..

    A++
  • Bonjour Bazookay07,

    Merci. Voici les réponses à tes points :

    a) Oui, comme expliqué ci-dessus, si je désactive le plug in de Stéphane, tout fonctionne correctement dans ma page de commentaires (le menu + la pagination).
    Mais le problème que je rencontre est avec la galerie de photos… qui elle ne fonctionne plus correctement dans les autres pages du site…
    S’il est possible de ne pas activer le plug in de Stéphane uniquement dans ma page de commentaires, cela résoudrait le problème. Mais est-ce possible ???

    b) C’est quelqu’un d’autre qui m’a fait la partie « responsive design » et qui m’a mis en place ce menu qui fonctionne… Merci pour l’exemple, je m’y référerai pour un prochain site. Comme actuellement ce n’est pas le menu qui pose problème, je vais pour l’instant garder celui que j’ai. Je préfère ne pas toucher à quelque chose qui fonctionne…

    c) C’est Stéphane qui m’a renvoyé sur l’article qu’il avait créé. Cela me semblait être exactement ce dont j’avais besoin et une fois testé, j’ai pu constater que cela me convenait… Reste à voir comment désactiver le plug in de Stéphane juste sur cette page ou trouver une autre solution…
    Je n’ai pas des milliers de commentaires (20 – 30), mais certains sont longs... C’est pourquoi j’aimerais avoir un système de pagination.

    Merci !
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    Bonjour,

    T'utilises quel plugin pour ta galerie photo ?
    Envoie l'adresse de ton site par mail. Je regarderai le source généré de ta page html.
    Donne l'ordre de chargement de tes plugins. menu admin/plugins/gestion des plugins. Fais une copie d'écran cela sera plus clair.

    A++
  • Bonjour Bazooka07,

    J’utilise le plug in artGalerie (version 3.6) de Rockyhorror http://forum.pluxml.org/viewtopic.php?id=2877

    Chargement des plug ins :

    1) CKEditor - Version 1.5 (02/08/2013)
    CKEditor 3.6.4 + KCFinder 2.51
    Auteur : Stéphane F. et Francis D. - http://pluxml.org

    2) jQuery 1.4.4 - Version 1.7.1 (24/12/2011)
    Ajoute jQuery 1.7.1 à votre PluXml
    Auteur : Stéphane F. - http://pluxml.org

    3) ArtGalerie - Version 3.6 (11/02/2014)
    Ajout de galerie d'images à vos articles
    Auteur : Rockyhorror - http://thepoulpe.net

    4) MyBetterUrls - Version 1.2 (29/08/2013)
    Amélioration des urls de PluXml
    Auteur : Stephane F. - http://pluxopolis.net/

    Voici le code généré dans la partie <head> de ma page de commentaires :
    [== HTML ==]
    <script type="text/javascript" src="/themes/2015/plugins/jquery/jquery.min.js"></script>
    	<script type="text/javascript">
    	    jQuery(function($) { 
    		    $('.left .menu-btn>a').click(function(e){
    		    	var sidebar = $('#sidebar'),
    		    		content = $('#content');
    		    	e.preventDefault();
    		    	content.toggleClass('open');
    		    	sidebar.toggleClass('open').slideToggle();
    		    });
    
    		    $('.right .menu-btn>a').click(function(e){
    		    	var sidebar = $('#sidebar'),
    		    		slider = $('.slider-wrap');
    		    	e.preventDefault();
    		    	slider.toggleClass('open');
    		    	sidebar.toggleClass('open').slideToggle();
    		    });
    		});
    	</script>
    	<!-- <comments pagination> -->
    <script src="/themes/2015/paginate/jquery-1.10.2.min.js"></script>
    <script src="/themes/2015/paginate/paginate.min.js"></script>
    <script>
    $(document).ready(function(){
    	$('#paginate_container').pajinate({
    		item_container_id:'.paginate_content',
    		nav_panel_id:'.paginate_navigation',		
    		items_per_page:5,
    		nav_label_first:'«', // premier
    		nav_label_prev:'‹', // précédent 
    		nav_label_next:'›', // suivant
    		nav_label_last:'»', // dernier
    		abort_on_small_lists:true
    	});  
    	
    	$('.page_navigation a').click(function(){
    		var new_position = $('#comments').offset();
    		window.scrollTo(new_position.left,new_position.top);
    		return false;
    	});
    
    });
    </script>
    <style>
    #paginate_container li{
    	list-style: none;	
    	padding:0;
    	margin:0;
    }
    .paginate_navigation {
    	margin: 0 0 15px 60px;
    }
    .paginate_navigation a, .alt_paginate_navigation a{
    	margin:0 7px 0 0;
    	text-decoration:none;
    	font-family: Tahoma;
    	font-size: 12px;
    	color:#666;
    }
    .active_page{
    	color:#ff0000 !important;
    }
    </style>
    <!-- </comments pagination> -->
    
    	
    	<script src="/plugins/ckeditor/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script>
    	<script src="/plugins/ckeditor/syntaxhighlighter/scripts/shAutoloader.js" type="text/javascript"></script>
    	<link href="/plugins/ckeditor/syntaxhighlighter/styles/shCore.css" rel="stylesheet" type="text/css" />
    	<link href="/plugins/ckeditor/syntaxhighlighter/styles/shThemeDefault.css" rel="stylesheet" type="text/css" />
    	<style type="text/css">
    	.syntaxhighlighter { font-size:12px !important; padding-top:10px; padding-bottom:10px; }
    	</style>
    			
    	<script src="/plugins/ckeditor/lightbox/lightbox_plus-min.js" type="text/javascript"></script>
    				<script type="text/javascript" src="/plugins/jquery/jquery.min.js"></script>
    	<link rel="stylesheet" href="/plugins/artGalerie/themes/default/artGalerie.css" type="text/css" media="screen" />
    
    	<link rel="stylesheet" href="/plugins/artGalerie/themes/PrettyPhotos/galerie.css" type="text/css" media="screen" />
    	<link rel="stylesheet" href="/plugins/artGalerie/themes/PrettyPhotos/css/prettyPhoto.css" type="text/css" media="screen" />
    	<script type="text/javascript" src="/plugins/artGalerie/themes/PrettyPhotos/js/jquery.prettyPhoto.js"></script>
    <script type="text/javascript">
    	       jQuery(function($) { 
    	         $("a[rel^='prettyPhoto']").prettyPhoto({social_tools: false});
    		});
    	</script>
    
    

    Merci d'avance pour ton aide. ;)
  • Et voici le code du <head> que j’ai dans mon theme pour le template « header_commentaires.php », si cela peut aider…
    [== HTML ==]
    <script type="text/javascript" src="<?php $plxShow->template(); ?>/plugins/jquery/jquery.min.js"></script>
    	<script type="text/javascript">
    	    jQuery(function($) { 
    		    $('.left .menu-btn>a').click(function(e){
    		    	var sidebar = $('#sidebar'),
    		    		content = $('#content');
    		    	e.preventDefault();
    		    	content.toggleClass('open');
    		    	sidebar.toggleClass('open').slideToggle();
    		    });
    
    		    $('.right .menu-btn>a').click(function(e){
    		    	var sidebar = $('#sidebar'),
    		    		slider = $('.slider-wrap');
    		    	e.preventDefault();
    		    	slider.toggleClass('open');
    		    	sidebar.toggleClass('open').slideToggle();
    		    });
    		});
    	</script>
    	<?php if($plxShow->mode()=='article') : ?>
    <!-- <comments pagination> -->
    <script src="<?php $plxShow->template(); ?>/paginate/jquery-1.10.2.min.js"></script>
    <script src="<?php $plxShow->template(); ?>/paginate/paginate.min.js"></script>
    <script>
    $(document).ready(function(){
    	$('#paginate_container').pajinate({
    		item_container_id:'.paginate_content',
    		nav_panel_id:'.paginate_navigation',		
    		items_per_page:5,
    		nav_label_first:'«', // premier
    		nav_label_prev:'‹', // précédent 
    		nav_label_next:'›', // suivant
    		nav_label_last:'»', // dernier
    		abort_on_small_lists:true
    	});  
    	
    	$('.page_navigation a').click(function(){
    		var new_position = $('#comments').offset();
    		window.scrollTo(new_position.left,new_position.top);
    		return false;
    	});
    
    });
    </script>
    <style>
    #paginate_container li{
    	list-style: none;	
    	padding:0;
    	margin:0;
    }
    .paginate_navigation {
    	margin: 0 0 15px 60px;
    }
    .paginate_navigation a, .alt_paginate_navigation a{
    	margin:0 7px 0 0;
    	text-decoration:none;
    	font-family: Tahoma;
    	font-size: 12px;
    	color:#666;
    }
    .active_page{
    	color:#ff0000 !important;
    }
    </style>
    <!-- </comments pagination> -->
    <?php endif; ?>
    
    
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    Bonjour,

    Tu fais le tour de tous tes fichiers .php et tu remplaces chaque ligne qui contient jQuery par ceci :
    [== JavaScript ==]
    <script type="text/javascript">
    		if (typeof jQuery === 'undefined')
    			document.write('<scr'+'ipt type="text/javascript" src'+'="//code.jquery.com/jquery-1.11.3.min.js"></sc'+'ript>');
    </script>
    

    Cela dans le dossier de chaque plugin et pour tous les fichiers de ton theme

    A++
  • Bonjour,

    Je reviens sur mon "ancienne" demande. En effet, cela fait + d’un an que j’essaie de faire cette pagination sur les commentaires, mais sans succès.

    Merci (avec beaucoup de retard – je pensais que je l’avais fait…) à bazooka07. J’avais bien essayé de faire ce que tu m’avais dit, mais je n’ai pas réussi… Puis découragée, j’ai laissé de côté.

    Mais aujourd’hui, j’ai vraiment besoin d’avoir cette pagination.
    Je ne sais pas si maintenant avec les nouvelles versions (pluxml, plugins, etc.) c’est prévu, car je n’ai pas testé, ni fait de mise à jour…

    Mais pour l’instant, comme tout tourne bien avec pluXML Version 5.3.1, je préfère ne pas upgrader, car j’ai fait des adaptations et cela risque de me demander du temps pour tout reprendre.

    Merci d’avance pour votre aide et/ou vos éclairages.
  • Bonjour,

    Toujours pas d'idée ??? 8.(
  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour @Lau029

    Pour t'aider, peux-t-on reprendre depuis le début car les précédents posts sont anciens et les choses ont peut être évoluées.
    Je préfère repartir sur des bonnes bases.

    Quelle version de PluXml utilises-tu actuellement ?

    Idéalement tu pourrais peut etre m'envoyer par mail une copie de ton site, pour que je teste le système de pagination que j'avais donné sur mon site pour le faire fonctionner et voir les conflits qu'il peut avoir avec le reste de tes plugins. On pourrait partir la dessus pour gagner du temps et au final avoir + rapidement quelque chose de fonctionnel.

    Consultant PluXml

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

  • Bonjour Stéphane,

    Merci pour ton message.

    Oui, cela date depuis plus d'une année, mais rien n'a évolué depuis. Je n'ai pas fait de mise à jour et j'utilise toujours les mêmes versions des plug ins que celles indiquées dans mes anciens posts (voir 16/10/15).

    Mon site tourne sous pluXML Version 5.3.1.

    Donc le problème que j'ai décrit dans mes posts en octobre 2015 est toujours le même... rien n'a changé... j'aimerais vraiment pouvoir le résoudre rapidement.

    Merci d'avance.
  • Bonjour Stéphane,

    Voici un petit résumé :

    J’utilise pluXML Version 5.3.1 et les plug ins suivants :

    1) CKEditor - Version 1.5 (02/08/2013) / CKEditor 3.6.4 + KCFinder 2.51
    2) jQuery 1.4.4 - Version 1.7.1 (24/12/2011)
    3) ArtGalerie - Version 3.6 (11/02/2014)
    4) MyBetterUrls - Version 1.2 (29/08/2013)
    5) MyMailComment – Version 1.2.2 (04/06/2015)

    En fait, la pagination fonctionne très bien si je désactive le plug in jQuery 1.4.4 – version 1.7.1, mais dans ce cas ma galerie de photo ne marche plus… donc, j’ai besoin d’activer ce plug in pour qu’elle s’affiche correctement…

    Dans la page de commentaires, voici l’ordre d’apparition de jQuery (3 fois si le plug in jQuery 1.4.4 est activé).
    1) jQuery (version 1.11.1) = pour afficher le menu sur les versions mobiles
    2) jQuery (version 1.10.2) = pour la pagination (en me basant sur le tutoriel que tu as écrit)
    3) jQuery (version 1.7.1) = plug in jQuery pour pluXML (plug in jQuery que tu as mis en place)

    Voilà, j’espère que ces indications te sont utiles pour m’aider à résoudre ce « conflit ».

    Si malgré cela tu veux que je t’envoie quand même des fichiers par e-mail, dis-moi lesquels il te faut…

    Merci d’avance
  • StéphaneStéphane Member, Former PluXml Project Manager
    @Lau029: y a surement du ménage à faire dans les versions de jquery qui sont utilisées pour n'en utiliser qu'une seule. il doit y a voir un conflit.
    Le mieux est que tu me fasses un .zip de ton site complet, pour que je puisse regarder comment tout s'articule. Sinon je ne pourrais pas t'aider. Il faut vraiment mettre le nez dans le code.

    Consultant PluXml

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

  • Bonjour Stéphane,

    Merci pour ta proposition.

    Je me demandais s’il n’y avait pas une possibilité de dissocier une page d’un plug in, en l’occurrence celle avec les commentaires, du reste du site afin que le plug in « pluXML jQuery 1.4.4» ne s’affiche pas automatiquement dans la page en question…, sachant que dans mes templates, j’ai un « header.php » différent pour la partie commentaires.

    Je me dis que si c’était possible, cela serait plus simple et ferait gagner du temps, sans devoir reprendre tout le code…

    Qu’en penses-tu ?

    Merci
  • StéphaneStéphane Member, Former PluXml Project Manager
    C'est peut-être faisable oui, mais sans code sous les yeux je ne pas faire + pour le moment. c'est vraiment du cas par cas

    Consultant PluXml

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

  • Bonjour Stéphane,

    Est-ce que je peux t'envoyer seulement quelques fichiers / répertoires, car le fichier du site est "trop lourd" ?

    Si oui, lesquels, en sachant que j'utilise que des pages statiques ?

    A quel adresse e-mail puis-je t'envoyer le fichier ? Si je clique sur "e-mail" j'arrive sur un formulaire.

    Merci
  • StéphaneStéphane Member, Former PluXml Project Manager
    @Lau029: il me faut tout, sauf le dossier avec les images (data/medias/ ou data/images/) sans ce dossier ça devrait alléger suffisamment l'archive pour m'envoyer ton site par mail. tu peux me l'envoyer à: stephane @ pluxml . org

    Consultant PluXml

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

  • Bonjour Stéphane,

    Je t'ai envoyé le fichier par e-mail. J'espère que c'est tout bon et que tu pourras m'aider à trouver une solution.

    Un grand merci pour ta précieuse collaboration.
Connectez-vous ou Inscrivez-vous pour répondre.