Plugin NOTATION

J'utilise le plugin NOTATION pour affecter des notes à des images

Il est possible de récupérer les notes affectées par des auteurs

<BOUCLE_dernieres_notes_article(NOTATIONS){!par maj}{0,5}{id_article}{id_auteur>0}>
- <BOUCLE_a(AUTEURS){id_auteur}>#NOM</BOUCLE_a>, Note #NOTATION_ETOILE{#NOTE}<br />
</BOUCLE_dernieres_notes_article>

cependant l'accès au site est ouvert et donc les visiteurs ne sont pas
forcement connectés et donc j'ai opté pour une identification des
votants par "hash" ("IP" éventuellement)

Comment pourrait-on utiliser cette boucle avec le paramêtre HASH du
visiteur ??
(cf https://contrib.spip.net/Notation-d-elements-SPIP#comment507158 )

Merci

--
*Marc Ferraton*

Le 28/12/2020 à 16:23, lebardix a écrit :
> Il est possible de récupérer les notes affectées par des auteurs
> <BOUCLE_dernieres_notes_article(NOTATIONS){!par maj}{0,5}{id_article}{id_auteur>0}>
> - <BOUCLE_a(AUTEURS){id_auteur}>#NOM</BOUCLE_a>, Note #NOTATION_ETOILE{#NOTE}<br />
> </BOUCLE_dernieres_notes_article>
>
> cependant l'accès au site est ouvert et donc les visiteurs ne sont pas
> forcement connectés et donc j'ai opté pour une identification des
> votants par "hash" ("IP" éventuellement)
> Comment pourrait-on utiliser cette boucle avec le paramêtre HASH du
> visiteur ??
> (cf https://contrib.spip.net/Notation-d-elements-SPIP#comment507158 )

hash et IP sont 2 champs de spip_notations
donc tu peux appliquer un critère les concernant directement dans la boucle
pour comparer les hash des notations avec le hash de l'internaute.

C'est la fonction notation_identifier_visiteur qui calcule le hash
https://git.spip.net/spip-contrib-extensions/notation/src/branch/master/inc/notation.php#L72
donc il faudra peut être ajouter include_spip('inc/notation');
dans ton mes_fonctions ou dans le fichier de fonctions de cette noisette,
pour pouvoir précalculer le hash et le mettre en critère de la boucle

#SET{empreinte,#REM|notation_identifier_visiteur}
#SET{hash,#GET{empreinte/hash}}
ou #SET{hash,#GET{empreinte}|table_valeur{hash}} sur un vieux spip
<BOUCLE_truc(NOTATIONS){id_article}{hash=#GET{hash}}>...

Par contre il ne faut plus de boucle AUTEUR
ou alors un boucle non corrélée à la boucle NOTATION
mais qui teste directement la session s'il y en a une.

JL

Le 28/12/2020 à 17:45, JLuc a écrit :

Le 28/12/2020 à 16:23, lebardix a écrit :
> Il est possible de récupérer les notes affectées par des auteurs
> <BOUCLE_dernieres_notes_article(NOTATIONS){!par maj}{0,5}{id_article}{id_auteur>0}>
> - <BOUCLE_a(AUTEURS){id_auteur}>#NOM</BOUCLE_a>, Note #NOTATION_ETOILE{#NOTE}<br />
> </BOUCLE_dernieres_notes_article>
>
> cependant l'accès au site est ouvert et donc les visiteurs ne sont pas
> forcement connectés et donc j'ai opté pour une identification des
> votants par "hash" ("IP" éventuellement)
> Comment pourrait-on utiliser cette boucle avec le paramêtre HASH du
> visiteur ??
> (cf Notation d'éléments SPIP - SPIP-Contrib )

hash et IP sont 2 champs de spip_notations
donc tu peux appliquer un critère les concernant directement dans la boucle
pour comparer les hash des notations avec le hash de l'internaute.

C'est la fonction notation_identifier_visiteur qui calcule le hash
inc/notation.php · master · spip-contrib-extensions / notation · GitLab
donc il faudra peut être ajouter include_spip('inc/notation');
dans ton mes_fonctions ou dans le fichier de fonctions de cette noisette,
pour pouvoir précalculer le hash et le mettre en critère de la boucle

#SET{empreinte,#REM|notation_identifier_visiteur}
#SET{hash,#GET{empreinte/hash}}
ou #SET{hash,#GET{empreinte}|table_valeur{hash}} sur un vieux spip
<BOUCLE_truc(NOTATIONS){id_article}{hash=#GET{hash}}>...

Par contre il ne faut plus de boucle AUTEUR
ou alors un boucle non corrélée à la boucle NOTATION
mais qui teste directement la session s'il y en a une.

Il se posera alors la question du cache :
au plus simple, tu peux mettre tout ça dans une noisette dédiée,
aussi petite que possible, que tu <INCLURAS> dynamiquement (pas avec #INCLURE)
et à laquelle tu attribueras un #CACHE{0} :-/

JL

On Tue, 29 Dec 2020 10:01:04 +0100
JLuc <jluc@no-log.org> wrote:

Le 28/12/2020 à 17:45, JLuc a écrit :
>
> Le 28/12/2020 à 16:23, lebardix a écrit :
> > Il est possible de récupérer les notes affectées par des auteurs
> > <BOUCLE_dernieres_notes_article(NOTATIONS){!par
> > maj}{0,5}{id_article}{id_auteur>0}>
> > - <BOUCLE_a(AUTEURS){id_auteur}>#NOM</BOUCLE_a>, Note
> > #NOTATION_ETOILE{#NOTE}<br /> </BOUCLE_dernieres_notes_article>
> >
> > cependant l'accès au site est ouvert et donc les visiteurs ne
> > sont pas forcement connectés et donc j'ai opté pour une
> > identification des votants par "hash" ("IP" éventuellement)
> > Comment pourrait-on utiliser cette boucle avec le paramêtre HASH
> > du visiteur ??
> > (cf
> >Notation d'éléments SPIP - SPIP-Contrib )
>
> hash et IP sont 2 champs de spip_notations
> donc tu peux appliquer un critère les concernant directement dans
> la boucle pour comparer les hash des notations avec le hash de
> l'internaute.
>
> C'est la fonction notation_identifier_visiteur qui calcule le hash
> inc/notation.php · master · spip-contrib-extensions / notation · GitLab
> donc il faudra peut être ajouter include_spip('inc/notation');
> dans ton mes_fonctions ou dans le fichier de fonctions de cette
> noisette, pour pouvoir précalculer le hash et le mettre en critère
> de la boucle
>
> #SET{empreinte,#REM|notation_identifier_visiteur}
> #SET{hash,#GET{empreinte/hash}}
> ou #SET{hash,#GET{empreinte}|table_valeur{hash}} sur un vieux spip
> <BOUCLE_truc(NOTATIONS){id_article}{hash=#GET{hash}}>...
>
> Par contre il ne faut plus de boucle AUTEUR
> ou alors un boucle non corrélée à la boucle NOTATION
> mais qui teste directement la session s'il y en a une.

Il se posera alors la question du cache :
au plus simple, tu peux mettre tout ça dans une noisette dédiée,
aussi petite que possible, que tu <INCLURAS> dynamiquement (pas avec
#INCLURE) et à laquelle tu attribueras un #CACHE{0} :-/

JL

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Archives : https://www.mail-archive.com/spip@rezo.net/maillist.html

Infos : https://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

C'est le bazar !! /o\
hier soir, j'ai donc repris ma boucle

[(#REM)
  Copie du 2020-12-18 21:51:37 par dircomm
  Fichier original plugins/auto/html5up_spectral/v2.3.0/inclure/documents.html
]
[(#REM) Portfolio : album d'images ]
<div>
  #SET{empreinte,#REM|notation_identifier_visiteur}
  #SET{hash,#GET{empreinte/hash}}
  
  <B_hash_notes_article>

  <BOUCLE_hash_notes_article(NOTATIONS){id_objet=#ID_DOCUMENT}{hash=#GET{hash}}>
    <span>votre avis</span><img class="photo" src="IMG/png/pod#NOTE.png" >
  </BOUCLE_hash_notes_article>

  </B_hash_notes_article>
VOTEZ
<//B_hash_notes_article>
</div>

tout fonctionnait, j'ai testé depuis plusieurs équipements par
différents réseaux et les notes étaient bien affectées aux différents
HASH

ensuite alors que je réalisais qques modifs rajoutant du texte
explicatif dans des articles
et reprenant depuis la page d'accueil, puis les cheminement des
rubriques -> page blanche au lieu de la page de notation !!!!!!

les autres clients ont continué de fonctionner tant que je ne quittait
pas la page de notation

je suis dans le noir !!! (plutot la page blanche...)

--
*Marc Ferraton*

On Tue, 29 Dec 2020 10:01:04 +0100
JLuc <jluc@no-log.org> wrote:

Le 28/12/2020 à 17:45, JLuc a écrit :
>
> Le 28/12/2020 à 16:23, lebardix a écrit :
> > Il est possible de récupérer les notes affectées par des auteurs
> > <BOUCLE_dernieres_notes_article(NOTATIONS){!par
> > maj}{0,5}{id_article}{id_auteur>0}>
> > - <BOUCLE_a(AUTEURS){id_auteur}>#NOM</BOUCLE_a>, Note
> > #NOTATION_ETOILE{#NOTE}<br /> </BOUCLE_dernieres_notes_article>
> >
> > cependant l'accès au site est ouvert et donc les visiteurs ne
> > sont pas forcement connectés et donc j'ai opté pour une
> > identification des votants par "hash" ("IP" éventuellement)
> > Comment pourrait-on utiliser cette boucle avec le paramêtre HASH
> > du visiteur ??
> > (cf
> >Notation d'éléments SPIP - SPIP-Contrib )
>
> hash et IP sont 2 champs de spip_notations
> donc tu peux appliquer un critère les concernant directement dans
> la boucle pour comparer les hash des notations avec le hash de
> l'internaute.
>
> C'est la fonction notation_identifier_visiteur qui calcule le hash
> inc/notation.php · master · spip-contrib-extensions / notation · GitLab
> donc il faudra peut être ajouter include_spip('inc/notation');
> dans ton mes_fonctions ou dans le fichier de fonctions de cette
> noisette, pour pouvoir précalculer le hash et le mettre en critère
> de la boucle
>
> #SET{empreinte,#REM|notation_identifier_visiteur}
> #SET{hash,#GET{empreinte/hash}}
> ou #SET{hash,#GET{empreinte}|table_valeur{hash}} sur un vieux spip
> <BOUCLE_truc(NOTATIONS){id_article}{hash=#GET{hash}}>...
>
> Par contre il ne faut plus de boucle AUTEUR
> ou alors un boucle non corrélée à la boucle NOTATION
> mais qui teste directement la session s'il y en a une.

Il se posera alors la question du cache :
au plus simple, tu peux mettre tout ça dans une noisette dédiée,
aussi petite que possible, que tu <INCLURAS> dynamiquement (pas avec
#INCLURE) et à laquelle tu attribueras un #CACHE{0} :-/

JL

en reprenant calmement,
j'ai une erreur donc de squelette
"filtre notation_identifier_visiteur non-defini"

_____________________________________________

liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Archives : https://www.mail-archive.com/spip@rezo.net/maillist.html

Infos : https://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

--
*Marc Ferraton*

Le 29/12/2020 à 13:01, lebardix a écrit :

  il faudra peut être ajouter include_spip('inc/notation');
dans ton mes_fonctions ou dans le fichier de fonctions de cette
noisette, pour pouvoir précalculer le hash et le mettre en critère
de la boucle

D'où le :
il faudra peut être ajouter include_spip('inc/notation');
dans ton mes_fonctions ou dans le fichier de fonctions de cette
noisette, pour pouvoir précalculer le hash et le mettre en critère
de la boucle

On Tue, 29 Dec 2020 15:56:45 +0100
JLuc <jluc@no-log.org> wrote:

Le 29/12/2020 à 13:01, lebardix a écrit :
> il faudra peut être ajouter include_spip('inc/notation');
> dans ton mes_fonctions ou dans le fichier de fonctions de cette
> noisette, pour pouvoir précalculer le hash et le mettre en critère
> de la boucle

D'où le :
il faudra peut être ajouter include_spip('inc/notation');
dans ton mes_fonctions ou dans le fichier de fonctions de cette
noisette, pour pouvoir précalculer le hash et le mettre en critère
de la boucle

Oui, j'ai tout essayé pour inclure cette fonction (cf fonction
spécifique a des squelettes
Déclarer des fonctions - Programmer avec SPIP 4) mais en vain, je
restais sur un page blanche lors de l'affichage de la boucle NOTATIONS
sans que le formulaire n'est été encore appellé.

Donc j'ai contourné le probleme en reprenant le traitement de base pour
présenter le bilan de la notation en cours
  <BOUCLE_bilan_notes_article(NOTATIONS){id_objet=#ID_DOCUMENT}>
    #NOTE_PONDERE.png
  </BOUCLE_bilan_notes_article>

et ensuite j'appelle donc le formulaire de vote (qui fonctionne
alors) et qui me permet alors de récuperer les notes données pour le
HASH en cours
  #SET{empreinte,#REM|notation_identifier_visiteur}
  #SET{hash,#GET{empreinte/hash}}
  <B_hash_notes_article>
  <BOUCLE_hash_notes_article(NOTATIONS){id_objet=#ID_DOCUMENT}{hash=#GET{hash}}>
    <span>votre avis</span><img class="photo"src="IMG/png/pod#NOTE.png" >
  </BOUCLE_hash_notes_article>
  </B_hash_notes_article>

Merci pour ton aide

heu... cependant je n'ai pas vraiment compris le sens de
"ou dans le fichier de fonctions de cette noisette"
une référence peut-etre ??
_______________________________________________

liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Archives : https://www.mail-archive.com/spip@rezo.net/maillist.html

Infos : https://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

--
*Marc Ferraton*
🖷 : *06 95 85 45 35***

Le 29/12/2020 à 21:31, lebardix a écrit :
> heu... cependant je n'ai pas vraiment compris le sens de
> "ou dans le fichier de fonctions de cette noisette"
> une référence peut-etre ??

Les fonctions définissant les filtres utilisés dans une noisette (= un squelette inclu)
peuvent être définies dans le mes_fonctions.php du site,
ou dans le fichier de fonctions d'un plugin utilisé : prefixeplugin_fonctions.php
ou dans le fichier de fonctions de cette noisette : nomsquelette_fonctions.php
situé dans le même répertoire que la noisette.
JL