[Résolu] Affichage erratique de l'accueil

Bonjour !
Vous vous dites sans doute, « mais elle n’arrête pas de poser des questions et d’avoir des problèmes », eh bien sachez que j’en ai bien marre.
Ce matin, je voulais travailler un peu sur le site de l’asso et là, je vois que la page d’accueil n’affiche pas ce qu’elle est censée faire, alors qu’elle le faisait hier, que je n’ai pas changé ces fichiers depuis deux jours et que je suis la seule à avoir accès aux fichiers spip.

Le site concerné est : Café Associatif "Baba Yaga" - Un lieu entièrement tenu par des bénévoles où les [...]
Pour cela, j’utilise le plugin Kamakura.

Ce qui pose problème, on le voit sans problème : je suis censée montrer les 6 prochains événements (il y en a 4 actuellement) ; et là, ils sont répétés x fois, sans raison.

Voici le code concerné :
sommaire_actu.html

<B_art>
<!-- home-row-1  -->
<div class="home-row-1">
	<div class="content container">
		<div class="row">
			<div class="col-md-12">
				<h2 class="h2-home">Les événements à venir</h2>
			</div>
		</div>

		[(#REM) affichage des trois derniers articles d'un secteur spécifique ]
		<div class="row row-cols-1 row-cols-md-3">
			
            <BOUCLE_art(ARTICLES){par date}{1,#GET{nb_articles_actu}} {id_secteur==4}>
				<INCLURE{fond=inc/article_card, id_article} />
			</BOUCLE_art>
          
            
       
		</div>
        
        
        <div class="row">
			<div class="col-md-12">
				<h2 class="h2-home">Les dernières news !</h2>
			</div>
		</div>

		[(#REM) 3 cards ]
		<div class="row row-cols-1 row-cols-md-3">
			
            <BOUCLE_art1(ARTICLES){par date}{inverse}{1,#GET{nb_articles_actu}}{id_rubrique=15} {0,3}>
				<INCLURE{fond=inc/article_card-ok, id_article} />
			</BOUCLE_art1>
          
            
       
		</div>
	</div>
    
</div>

<!-- #home-row-1  -->
</B_art>



et celui qui est dans article_card.html

<BOUCLE_agenda(EVENEMENTS){evenement_a_venir}{par date}{statut=publie} {id_secteur==4}>
<!-- card art #ID_ARTICLE -->
<div class="col-lg-4 mb-5">
	<div class="card-event h-100">
		<div class="card-event-top">
			<div class="card-event-img">
			[(#REM)
				on recherche la meilleure image
				si un logo  est trouvé, on lui applique la centre / direction  artistique
				https://23forward.com/Plugin-centre_image
			]
			[(#SET{illus,#CHEMIN{img/logo-generique.jpg}})]
			[(#SET{l,360})]
			[(#SET{h,360})]
			[(#LOGO_ARTICLE|oui)
				[<a href="#URL_ARTICLE">(#LOGO_ARTICLE|image_proportions{#GET{l},#GET{h},focus}|inserer_attribut{class,no_logo})</a>]
			]
			[(#LOGO_ARTICLE|non)
				[<a href="#URL_ARTICLE">(#GET{illus}|image_passe_partout{#GET{l},#GET{h}}|image_recadre{#GET{l},#GET{h}}|inserer_attribut{class,no_logo})</a>]
			]
			</div>
			<div class="rubrique_#ID_RUBRIQUE">
				<BOUCLE_rub(RUBRIQUES){id_rubrique}>
				<a href="#URL_RUBRIQUE" class="rubrique_#ID_RUBRIQUE">
					[<span>(#TITRE|couper{50})</span>]
				</a>
				</BOUCLE_rub>
			</div>
		</div>
		<div class="card-event-body">
			
            
			<div class="card-event-titre">
				<a href="#URL_ARTICLE">#TITRE</a>
			</div>
<div class="card-event-date">
           
				[(#DATE_DEBUT|Agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE})]
              
                
			</div>
		</div>
	</div>
</div>
</BOUCLE_agenda>

J’avoue que je commence à me décourager. :expressionless:

bonjour,

les événements plus que répétés x fois, le sont 6 fois. Le même nombre que les événements qui doivent être affichés
Y’a-t-il un rapport ?
Quelle est la boucle qui demande 6 evt ?

Claude

Celle-ci

 <BOUCLE_art(ARTICLES){par date}{1,#GET{nb_articles_actu}} {id_secteur==4}>
				<INCLURE{fond=inc/article_card, id_article} />
			</BOUCLE_art>

le nb_articles_actu est géré par le plugin kamakura où j’ai indiqué 6.

rajoute le critère {doublons} à cette boucle et ça devrait le faire.

Ça n’a rien changé. :-/

Dans article_card.html il manque un id_article sur la boucle EVENEMENTS il me semble non ?

A priori non, la boucle est « correcte ».

Je viens d’installer Kamakura en local et je n’ai pas de souci : j’ai demandé 6 articles et je n’ai que 6 articles qui s’affichent.
Vous n’auriez pas une surcharge dans le dossier squelettes ?

J’ai modifié le code parce que j’utilise le plugin agenda et donc des événements. Je ne veux pas juste les 6 derniers articles publiés.
Et je n’utilise pas de dossier squelette.

Alors où appliquez-vous vos modifications ? Si c’est directement dans les plugins il ne faut surtout pas faire ça. Voir Où placer les fichiers de squelettes ? - SPIP

SI vous surchargez ce que vous voulez modifier dans le dossier squelettes il est relativement facile de revenir en arrière et de voir ce qui cloche… sinon :confused:

1 « J'aime »

Je comprends, par contre, ça ne résout pas mon problème :smiley:

Que veux-tu dire par là ?

Tu travailles directement dans squelettes-dist ? Si oui, très mauvaise pratique, parce que ça t’empêche de mettre à jour SPIP sereinement.

Ou directement dans le dossier du plugin kamakura ? Si oui, aussi très mauvaise pratique, parce que ça t’empêche de mettre à jour ce plugin sereinement.

Si tu veux modifier un fichier d’un de ces 2 dossiers, il faut le copier dans squelettes/ (avec le même chemin relatif, par exemple, sommaire.html · master · spip-contrib-squelettes / kamakura · GitLab devrait être copié dans squelettes/sommaire.html ou inc/sommaire_actu.html · master · spip-contrib-squelettes / kamakura · GitLab dans squelettes/inc_sommaire_actu.html ) et c’est là que doivent être tes personnalisations.

C’est malheureusement ça.

J’ai utilisé spip à ses débuts et pendant pas mal de temps et j’utilisais évidemment le dossier squelette, puis je l’ai laissé de côté pas mal de temps aussi et j’y suis revenue en ayant oublié une partie des bonnes pratiques.

Je vais repartir sur une bonne base pour éviter effectivement le gros problème de la mise à jour du plugin, mais pour autant le problème de la boucle qui retourne des doublons reste là.

Je vais commencer par tout remettre au propre.

Quand tu auras mis au propre tu reviens nous dire ce que tu as fait comme surcharge et pourquoi et on essaiera de regarder le souci :slight_smile:

La surcharge est la même qu’indiquée plus haut pour les mêmes raisons à savoir :

une boucle événements d’une rubrique spécifique pour avoir les événements à venir de cette fameuse rubrique avec la limitation de 6 occurrences.

EDIT : comme c’est ma journée, le serveur est en rade.
Je vais aller boire frais, attendre que ça se règle et je terminerai de remettre tout à plat pour régler ce problème de résultats en doublons. Merci bien évidemment pour votre temps et votre réactivité inégalable ! <3

Voilà, mes fichiers sont dans le dossier squelettes, et j’ai supprimé et réinstallé Kamakura.

J’ai modifié la config du plugin pour qu’il affiche seulement les 3 occurrences. Je voulais voir s’il allait bien supprimer l’affichage du 4e événement, ce qui n’est pas le cas. On peut voir que ce sont bien 4 occurrences qui se répètent.

Sur la boucle evenements je vois {id_secteur==4}, c’est plus la boucle article ça
Sans surcharge, le site affiche quoi ?

ça me permet de ne pas avoir tous les événements du site, mais uniquement le secteur des événements culturels.

Sans surcharge j’obtiens bien 3 résultats, mais ce sont les derniers articles évidemment.
Je vais repartir d’un fichier propre.

C’est ma boucle événements qui met la zone (même si je ne comprends pas pourquoi ça a marché sans problème 2 jours et puis plouf !).

<BOUCLE_agenda(EVENEMENTS){evenement_a_venir}{par date}{statut=publie} {id_secteur==4}>

le code natif du bloc concerné est le suivant

<BOUCLE_art(ARTICLES){id_article}>

<!-- card art #ID_ARTICLE -->
<div class="col-lg-4 mb-5">
	<div class="card-event h-100">
		<div class="card-event-top">
			<div class="card-event-img">
			[(#REM)
				on recherche la meilleure image
				si un logo  est trouvé, on lui applique la centre / direction  artistique
				https://23forward.com/Plugin-centre_image
			]
			[(#SET{illus,#CHEMIN{img/logo-generique.png}})]
			[(#SET{l,360})]
			[(#SET{h,360})]
			[(#LOGO_ARTICLE|oui)
				[<a href="#URL_ARTICLE">(#LOGO_ARTICLE|image_proportions{#GET{l},#GET{h},focus}|inserer_attribut{class,no_logo})</a>]
			]
			[(#LOGO_ARTICLE|non)
				[<a href="#URL_ARTICLE">(#GET{illus}|image_passe_partout{#GET{l},#GET{h}}|image_recadre{#GET{l},#GET{h}}|inserer_attribut{class,no_logo})</a>]
			]
			</div>
			<div class="card-event-keyword">
				<BOUCLE_rub(RUBRIQUES){id_rubrique}>
				<a href="#URL_RUBRIQUE" class="card-event-keyword-link">
					[<span>(#TITRE|couper{50})</span>]
				</a>
				</BOUCLE_rub>
			</div>
		</div>
		<div class="card-event-body">
			<div class="card-event-date">
				[(#DATE|nom_jour|ucfirst)]
				[(#DATE|affdate{'j'})]
				[(#DATE|nom_mois|ucfirst)]
			</div>
			<div class="card-event-titre">
				<a href="#URL_ARTICLE">#TITRE</a>
			</div>

		</div>
	</div>
</div>
</BOUCLE_art>

Si tu remplaces (ARTICLES){id_article} par (EVENEMENTS){id_article4}{evenement_a_venir}{par date}{statut=publie} cela donne quoi ?