Changeset 81259 in spip-zone


Ignore:
Timestamp:
Mar 7, 2014, 4:32:38 PM (5 years ago)
Author:
gouz@…
Message:

Ajout des microdata via http://schema.org/AggregateRating et les propriétés ratingCount et ratingValue

Location:
_plugins_/notation/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/notation/trunk/formulaires/jaime.html

    r81258 r81259  
    1010        [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
    1111        [(#ENV**{editable}|oui)
    12         <form action="#SELF" method="post" id="#FORM[(#ENV*{_form_id})]" enctype="multipart/form-data">
     12        <form action="#SELF" method="post" id="#FORM[(#ENV*{_form_id})]">
    1313                #ACTION_FORMULAIRE{#SELF}
    1414                <div>
  • _plugins_/notation/trunk/formulaires/jaime_jaimepas.html

    r81258 r81259  
    1111        [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
    1212        [(#ENV**{editable}|oui)
    13         <form action="#SELF" method="post" id="#FORM[(#ENV*{_form_id})]" enctype="multipart/form-data">
     13        <form action="#SELF" method="post" id="#FORM[(#ENV*{_form_id})]">
    1414                #ACTION_FORMULAIRE{#SELF}
    1515                <div>
  • _plugins_/notation/trunk/formulaires/notation.html

    r81258 r81259  
    77<div class="formulaire_notation ajax"[(#HTML5|oui) itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"]>
    88[(#ENV**{editable}|oui)
    9         <form action="#SELF" method="post" id="notation[(#ENV*{_form_id})]" enctype="multipart/form-data" style="display:inline; padding:0; spacing:0; border:0">
     9        <form action="#SELF" method="post" id="notation[(#ENV*{_form_id})]" style="display:inline; padding:0; spacing:0; border:0">
    1010                #ACTION_FORMULAIRE{#SELF}
    1111                <div style="display:inline">
     
    2525[(#ENV**{editable}|non)
    2626        [(#NOTATION_ETOILE{[(#GET{note_ponderee})],[(#ENV*{_objet})][(#ENV*{_id_objet})]})]
    27         [<span class="[(#PLUGIN{bootstrap}|?{badge,note})]">[(#HTML5|oui)<span itemprop="ratingCount">](#GET{total})[(#HTML5|oui)</span>] [(#GET{total}|>{1}|?{<:notation:votes:>,<:notation:vote:>})]</span>]
     27        [<span class="[(#PLUGIN{bootstrap}|?{badge,note})]">(#GET{total}) [(#GET{total}|>{1}|?{<:notation:votes:>,<:notation:vote:>})]</span>]
    2828]
    2929
  • _plugins_/notation/trunk/inc/notation_balises.php

    r81258 r81259  
    11<?php
    22/**
    3 * Plugin Notation
    4 * par JEM (jean-marc.viglino@ign.fr) / b_b / Matthieu Marcillaud
    5 *
    6 * Copyright (c) 2008
    7 * Logiciel libre distribue sous licence GNU/GPL.
    8 
    9 **/
     3 * Plugin Notation
     4 * par JEM (jean-marc.viglino@ign.fr) / b_b / Matthieu Marcillaud
     5 *
     6 * Copyright (c) 2008
     7 * Logiciel libre distribue sous licence GNU/GPL.
     8 *
     9 */
    1010if (!defined("_ECRIRE_INC_VERSION")) return;
    1111
    1212define('_NOTATION_AFFICHAGE_RAPIDE',1);
    1313
    14 function notation_en_etoile($nb, $id, $clicable=false){
     14function notation_en_etoile($nb, $id, $clicable=false,$microdatas=false){
    1515        include_spip('inc/notation');
    1616        $ret = '';
    1717        if ($nb>0 && $nb<=0.5) $nb=1;
     18        $needjs = "";
     19        $max_note = notation_get_nb_notes();
    1820        $nb = round($nb);
    19 
    20         $needjs = "";
    21 
     21        if($microdatas){
     22                $ret .= '<meta itemprop="ratingCount" class="best" content="'.$max_note.'" />';
     23                $ret .= '<meta itemprop="worstRating" class="worst" content="0" />';
     24                $ret .= '<meta itemprop="ratingValue" content="'.$nb.'" />';
     25        }
    2226        if ($clicable OR !_NOTATION_AFFICHAGE_RAPIDE){
    2327                $needjs = " notation_note_on_load";
     
    2832                        $ret .= "<input name='notation-$id' type='radio' class='$class rating-cancel' value='-1'$checked$disabled />\n";
    2933                }
    30                 for ($i=1; $i<=notation_get_nb_notes(); $i++){
    31                         $microdata_insert = ($GLOBALS['meta']['version_html_max'] == 'html5' && $i == $nb) ? " itemprop='ratingValue'" : "";           
     34                for ($i=1; $i<=$max_note; $i++){
     35                        $microdata_insert = ($GLOBALS['meta']['version_html_max'] == 'html5' && $i == $nb) ? " itemprop='ratingValue'" : "";
    3236                        $checked = ($i==$nb) ? " checked='checked'" : "";
    3337                        $ret .= "<input name='notation-$id' type='radio' class='$class' value='$i'$checked$disabled $microdata_insert/>\n";
     
    3741        // eviter de generer X boutons radio inactifs remplaces par le javascript au chargement
    3842        {
    39                 for ($i=1; $i<=notation_get_nb_notes(); $i++){
    40                
     43                for ($i=1; $i<=$max_note; $i++){
    4144                        $microdata_insert = ($GLOBALS['meta']['version_html_max'] == 'html5' && $i == $nb) ? " itemprop='ratingValue'" : "";
    4245                        $checked = ($i<=$nb) ? " star-rating-on" : "";
    43                         $ret .= "<div class='star-rating star_group_notation-$id star-rating-readonly$checked'$microdata_insert><a title='$nb'>$nb</a></div>";
    44                 }
    45         }
    46         return "<div class='notation_note$needjs'>$ret</div>";
     46                        $ret .= "<div class='star-rating ratingstar_group_notation-$id star-rating-readonly$checked'$microdata_insert><a>$nb</a></div>";
     47                }
     48        }
     49        return "<div class='notation_note$needjs' ".($microdatas ? 'itemprop="aggregateRating" itemscope itemtype="http://schema.org/aggregateRating"':'').">$ret</div>";
    4750}
    4851
     
    5760 * Un identifiant est calcule automatiquement, mais peut etre force
    5861 * #NOTATION_ETOILE{#NOTE,article#ID_ARTICLE}
     62 *
     63 * Si vous souhaitez que la balise retourne les microdatas Aggregaterating
     64 * (http://schema.org/aggregateRating), il faut mettre un troisième argument, par exemple :
     65 * #NOTATION_ETOILE{#NOTATION_MOYENNE,'',oui}
    5966 */
    6067function balise_NOTATION_ETOILE($p){
     
    6370                $id = notation_calculer_id($p);
    6471        }
    65 
    66         $p->code = "notation_en_etoile($nb,$id)";
     72        $microdatas = false;
     73        if($microdatas = interprete_argument_balise(3,$p)){
     74                $p->code = "notation_en_etoile($nb,$id,false,true)";
     75        }else{
     76                $p->code = "notation_en_etoile($nb,$id)";
     77        }
    6778        $p->interdire_scripts = false;
    6879        return $p;
Note: See TracChangeset for help on using the changeset viewer.