~maj plugins master production
authorLudovic CHEVALIER <ludovic@beurresarrasin.net>
Mon, 21 Dec 2015 18:36:22 +0000 (19:36 +0100)
committerLudovic CHEVALIER <ludovic@beurresarrasin.net>
Mon, 21 Dec 2015 18:36:22 +0000 (19:36 +0100)
105 files changed:
www/plugins/agenda_3_5/action/editer_evenement.php
www/plugins/agenda_3_5/action/supprimer_evenement_participant.php [new file with mode: 0644]
www/plugins/agenda_3_5/agenda_administrations.php
www/plugins/agenda_3_5/agenda_options.php [new file with mode: 0644]
www/plugins/agenda_3_5/agenda_pipelines.php
www/plugins/agenda_3_5/base/agenda_evenements.php
www/plugins/agenda_3_5/formulaires/editer_evenement.html
www/plugins/agenda_3_5/formulaires/editer_evenement.php
www/plugins/agenda_3_5/formulaires/evenement_participants.html [deleted file]
www/plugins/agenda_3_5/formulaires/evenement_participants.php [deleted file]
www/plugins/agenda_3_5/formulaires/migrer_agenda.html
www/plugins/agenda_3_5/formulaires/migrer_agenda.php
www/plugins/agenda_3_5/formulaires/participer_evenement.html
www/plugins/agenda_3_5/formulaires/participer_evenement.php
www/plugins/agenda_3_5/inc/un-evenement-ical.html
www/plugins/agenda_3_5/inclure/agenda-vue-calendrier.html [new file with mode: 0644]
www/plugins/agenda_3_5/inclure/liste_participants_evenement.html [new file with mode: 0644]
www/plugins/agenda_3_5/lang/agenda.xml
www/plugins/agenda_3_5/lang/agenda_de.php
www/plugins/agenda_3_5/lang/agenda_en.php
www/plugins/agenda_3_5/lang/agenda_es.php
www/plugins/agenda_3_5/lang/agenda_fr.php
www/plugins/agenda_3_5/lang/agenda_nl.php
www/plugins/agenda_3_5/lang/agenda_ru.php [new file with mode: 0644]
www/plugins/agenda_3_5/lang/agenda_sk.php
www/plugins/agenda_3_5/lang/configureragenda.xml [new file with mode: 0644]
www/plugins/agenda_3_5/lang/configureragenda_fr.php
www/plugins/agenda_3_5/lang/configureragenda_nl.php [new file with mode: 0644]
www/plugins/agenda_3_5/lang/migreragenda.xml [new file with mode: 0644]
www/plugins/agenda_3_5/lang/migreragenda_fr.php
www/plugins/agenda_3_5/lang/paquet-agenda.xml
www/plugins/agenda_3_5/lang/paquet-agenda_nl.php [new file with mode: 0644]
www/plugins/agenda_3_5/lang/paquet-agenda_ru.php [new file with mode: 0644]
www/plugins/agenda_3_5/paquet.xml
www/plugins/agenda_3_5/prive/objets/contenu/article-evenements.html
www/plugins/agenda_3_5/prive/objets/contenu/evenement.html
www/plugins/agenda_3_5/prive/objets/liste/evenement_participants.html
www/plugins/agenda_3_5/prive/objets/liste/evenements.html
www/plugins/agenda_3_5/prive/squelettes/contenu/agenda_inscriptions.html
www/plugins/agenda_3_5/prive/squelettes/contenu/configurer_agenda.html
www/plugins/agenda_3_5/prive/transmettre/evenement_participants.html
www/plugins/agenda_3_5/prive/transmettre/evenements_participants.html
www/plugins/agenda_3_5/public/agenda.php
www/plugins/agenda_3_5/squelettes/agenda-ical.html
www/plugins/agenda_3_5/squelettes/aside/agenda.html [new file with mode: 0644]
www/plugins/agenda_3_5/squelettes/breadcrumb/agenda.html [new file with mode: 0644]
www/plugins/agenda_3_5/squelettes/content/agenda.html
www/plugins/agenda_3_5/squelettes/content/jour.html
www/plugins/agenda_3_5/squelettes/extra/agenda.html [new file with mode: 0644]
www/plugins/agenda_3_5/squelettes/extra/evenement.html [new file with mode: 0644]
www/plugins/agenda_3_5/squelettes/extra/jour.html [new file with mode: 0644]
www/plugins/agenda_3_5/squelettes/extra/rubrique-agenda.html [new file with mode: 0644]
www/plugins/agenda_3_5/squelettes/inclure/agenda-liste.html
www/plugins/agenda_3_5/squelettes/inclure/resume/evenement.html
www/plugins/agenda_3_5/svn.revision
www/plugins/calendrier_mini-2.0/balise/calendrier_mini.php
www/plugins/calendrier_mini-2.0/calendriermini_fonctions.php
www/plugins/calendrier_mini-2.0/css/img/month_next.png
www/plugins/calendrier_mini-2.0/css/img/month_prev.png
www/plugins/calendrier_mini-2.0/css/img/month_prev_next-32x16.png
www/plugins/calendrier_mini-2.0/formulaires/calendrier_mini.html
www/plugins/calendrier_mini-2.0/formulaires/configurer_calendriermini.html
www/plugins/calendrier_mini-2.0/javascript/calendrier_mini.js.html
www/plugins/calendrier_mini-2.0/lang/minical.xml
www/plugins/calendrier_mini-2.0/lang/minical_ca.php [deleted file]
www/plugins/calendrier_mini-2.0/lang/minical_de.php
www/plugins/calendrier_mini-2.0/lang/minical_fr.php
www/plugins/calendrier_mini-2.0/lang/minical_it.php [deleted file]
www/plugins/calendrier_mini-2.0/lang/minical_nl.php [new file with mode: 0644]
www/plugins/calendrier_mini-2.0/lang/minical_oc_ni_mis.php [new file with mode: 0644]
www/plugins/calendrier_mini-2.0/lang/minical_ru.php [new file with mode: 0644]
www/plugins/calendrier_mini-2.0/lang/paquet-calendriermini.xml
www/plugins/calendrier_mini-2.0/lang/paquet-calendriermini_en.php
www/plugins/calendrier_mini-2.0/lang/paquet-calendriermini_fr.php
www/plugins/calendrier_mini-2.0/lang/paquet-calendriermini_nl.php [new file with mode: 0644]
www/plugins/calendrier_mini-2.0/lang/paquet-calendriermini_oc_ni_mis.php [new file with mode: 0644]
www/plugins/calendrier_mini-2.0/lang/paquet-calendriermini_ru.php [new file with mode: 0644]
www/plugins/calendrier_mini-2.0/minical-32.png
www/plugins/calendrier_mini-2.0/modeles/archives_mensuelles.html
www/plugins/calendrier_mini-2.0/paquet.xml
www/plugins/calendrier_mini-2.0/svn.revision
www/plugins/spip-bonux-3/inc/date_gestion.php
www/plugins/spip-bonux-3/inc/exporter_csv.php
www/plugins/spip-bonux-3/inc/importer_csv.php
www/plugins/spip-bonux-3/lang/paquet-spip_bonux.xml
www/plugins/spip-bonux-3/lang/paquet-spip_bonux_de.php [new file with mode: 0644]
www/plugins/spip-bonux-3/lang/paquet-spip_bonux_fa.php [new file with mode: 0644]
www/plugins/spip-bonux-3/lang/paquet-spip_bonux_fr.php
www/plugins/spip-bonux-3/lang/paquet-spip_bonux_nl.php [new file with mode: 0644]
www/plugins/spip-bonux-3/lang/spip_bonux.xml
www/plugins/spip-bonux-3/lang/spip_bonux_de.php [new file with mode: 0644]
www/plugins/spip-bonux-3/lang/spip_bonux_en.php
www/plugins/spip-bonux-3/lang/spip_bonux_fa.php [new file with mode: 0644]
www/plugins/spip-bonux-3/lang/spip_bonux_fr.php
www/plugins/spip-bonux-3/lang/spip_bonux_nl.php [new file with mode: 0644]
www/plugins/spip-bonux-3/lang/spip_bonux_ru.php
www/plugins/spip-bonux-3/lang/spip_bonux_sk.php
www/plugins/spip-bonux-3/lib/array_column/array_column.php [new file with mode: 0755]
www/plugins/spip-bonux-3/modeles/pagination_noancre.html
www/plugins/spip-bonux-3/paquet.xml
www/plugins/spip-bonux-3/public/spip_bonux_balises.php
www/plugins/spip-bonux-3/public/spip_bonux_criteres.php
www/plugins/spip-bonux-3/spip_bonux_fonctions.php
www/plugins/spip-bonux-3/spip_bonux_options.php
www/plugins/spip-bonux-3/svn.revision

index d192815..3d1635e 100644 (file)
@@ -113,6 +113,7 @@ function evenement_modifier($id_evenement, $set=null){
 
        if ($err = objet_modifier_champs('evenement', $id_evenement,
                array(
+                       'data' => $set,
                        'nonvide' => array('titre' => _T('info_nouvel_evenement')." "._T('info_numero_abbreviation').$id_evenement),
                        'invalideur' => $invalideur,
                        'indexation' => $indexation,
diff --git a/www/plugins/agenda_3_5/action/supprimer_evenement_participant.php b/www/plugins/agenda_3_5/action/supprimer_evenement_participant.php
new file mode 100644 (file)
index 0000000..fad3ec0
--- /dev/null
@@ -0,0 +1,30 @@
+<?php
+/**
+ * Plugin Agenda 4 pour Spip 3.0
+ * Licence GPL 3
+ *
+ * 2006-2011
+ * Auteurs : cf paquet.xml
+ */
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+
+function action_supprimer_evenement_participant_dist()
+{
+       $securiser_action = charger_fonction('securiser_action', 'inc');
+       $arg = $securiser_action();
+       list($id_evenement,$id_evenement_participant) = explode('-',$arg);
+       include_spip('inc/autoriser');
+       if (intval($id_evenement) AND autoriser('modifier','evenement',$id_evenement)){
+               if(intval($id_evenement_participant) ){
+            sql_delete('spip_evenements_participants','id_evenement='.intval($id_evenement).' AND id_evenement_participant='.intval($id_evenement_participant));
+        } else if($id_evenement_participant=='tous'){
+            sql_delete('spip_evenements_participants','id_evenement='.intval($id_evenement));
+        }
+       } 
+    return true;
+}
+
+
+?>
\ No newline at end of file
index c40462a..2e02f7c 100644 (file)
@@ -68,9 +68,23 @@ function agenda_upgrade($nom_meta_base_version,$version_cible){
                array('sql_drop_table',"spip_mots_evenements"),
                array('sql_alter',"TABLE spip_evenements ADD statut varchar(10) DEFAULT 0 NOT NULL"),
        );
+       
        $maj['0.25.0'] = array(
                array('upgrade_evenements_statut_025'),
        );
+       
+       $maj['0.26.0'] = array(
+               array('maj_tables',array('spip_evenements')),
+               array('sql_update',"spip_evenements", array('date_creation'=>'maj')),
+       );
+
+    $maj['0.27.0'] = array(
+        // modification de la cle primaire (id_evenement,id_auteur) : les participants peuvent ne pas être des auteurs
+        // ajout d'une clé primaire "neutre" auto-incrémentée
+        array('sql_alter','TABLE spip_evenements_participants DROP PRIMARY KEY'),
+        array('sql_alter','TABLE spip_evenements_participants ADD id_evenement_participant BIGINT(21) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST'),
+        array('maj_tables',array('spip_evenements_participants')),
+    );
 
        include_spip('base/upgrade');
        maj_plugin($nom_meta_base_version, $version_cible, $maj);
diff --git a/www/plugins/agenda_3_5/agenda_options.php b/www/plugins/agenda_3_5/agenda_options.php
new file mode 100644 (file)
index 0000000..601a787
--- /dev/null
@@ -0,0 +1,6 @@
+<?php
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+// brancher le plugin sur nospam
+$GLOBALS['formulaires_no_spam'][] = 'participer_evenement';
\ No newline at end of file
index 1cdf7eb..fd52721 100644 (file)
@@ -21,7 +21,7 @@ function agenda_insert_head_css($flux){
                include_spip("inc/config");
                $cfg = (defined('_AGENDA_INSERT_HEAD_CSS')?_AGENDA_INSERT_HEAD_CSS:lire_config("agenda/insert_head_css"));
                if ($cfg){
-                       $flux .= '<link rel="stylesheet" href="'.find_in_path("css/spip.agenda.css").'" />';
+                       $flux .= '<link rel="stylesheet" type="text/css" href="'.find_in_path("css/spip.agenda.css").'" />';
                }
        }
        return $flux;
@@ -113,7 +113,7 @@ function agenda_optimiser_base_disparus($flux){
        while ($row = sql_fetch($res))
                sql_updateq("spip_evenements",array('statut'=>'poubelle'),"id_article=".$row['id_article']);
 
-       // Evenements a la pouvelle
+       // Evenements a la poubelle
        sql_delete("spip_evenements", "statut='poubelle' AND maj < ".$flux['args']['date']);
 
        include_spip('action/editer_liens');
@@ -249,5 +249,28 @@ function agenda_compositions_declarer_heritage($heritages) {
        return $heritages;
 }
 
+/**
+ * Insertion dans le pipeline revisions_chercher_label (Plugin révisions)
+ * Trouver le bon label à afficher sur les champs dans les listes de révisions
+ * 
+ * Si un champ est un champ extra, son label correspond au label défini du champs extra
+ * 
+ * @pipeline revisions_chercher_label
+ * @param array $flux Données du pipeline
+ * @return array      Données du pipeline
+**/ 
+function agenda_revisions_chercher_label($flux){
+       foreach(array('date_debut', 'date_fin','horaire','lieu') as $champ){
+               if($flux['args']['champ'] == $champ){
+                       $flux['data'] = _T('agenda:evenement_'.$champ);
+                       return $flux;
+               }
+       }
+       
+       if($flux['args']['champ'] == 'id_article')
+               $flux['data'] = _T('agenda:evenement_article');
+       
+       return $flux;
+}
 
 ?>
index 3b7973b..0573b30 100644 (file)
@@ -39,14 +39,18 @@ function agenda_declarer_tables_auxiliaires($tables_auxiliaires){
 \r
        //-- Table des participants ----------------------\r
        $spip_evenements_participants = array(\r
+                       "id_evenement_participant" => "BIGINT(21) NOT NULL AUTO_INCREMENT",\r
                        "id_evenement"  => "BIGINT (21) DEFAULT '0' NOT NULL",\r
                        "id_auteur"     => "BIGINT (21) DEFAULT '0' NOT NULL",\r
+                       "nom"   => "text NOT NULL DEFAULT ''",\r
+                       "email" => "tinytext NOT NULL DEFAULT ''",\r
                        "date" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",\r
                        "reponse" => "char(3) default '?' NOT NULL", // oui, non, ?\r
                        );\r
        \r
        $spip_evenements_participants_key = array(\r
-                       "PRIMARY KEY"   => "id_evenement, id_auteur",\r
+                       "PRIMARY KEY"   => "id_evenement_participant",\r
+                       "KEY id_evenement"      => "id_evenement",\r
                        "KEY id_auteur" => "id_auteur");\r
        \r
        $tables_auxiliaires['spip_evenements_participants'] = array(\r
@@ -92,7 +96,8 @@ function agenda_declarer_tables_objets_sql($tables){
                        "horaire" => "varchar(3) DEFAULT 'oui' NOT NULL",\r
                        "id_evenement_source"   => "bigint(21) NOT NULL",\r
                        "statut"        => "varchar(10) DEFAULT '0' NOT NULL",\r
-                       "maj"   => "TIMESTAMP"\r
+                       "maj"   => "TIMESTAMP",\r
+                       "date_creation" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL"\r
                ),\r
                'key' => array(\r
                        "PRIMARY KEY"   => "id_evenement",\r
@@ -133,7 +138,7 @@ function agenda_declarer_tables_objets_sql($tables){
                        'poubelle' => 'texte_statut_poubelle',\r
                ),\r
                'texte_changer_statut' => 'agenda:texte_evenement_statut',\r
-               'champs_versionnes' => array('id_article', 'titre', 'descriptif', 'lieu', 'adresse'),\r
+               'champs_versionnes' => array('id_article', 'titre', 'descriptif', 'lieu', 'adresse', 'date_debut', 'date_fin', 'horaire'),\r
 \r
        );\r
 \r
@@ -145,4 +150,5 @@ function agenda_declarer_tables_objets_sql($tables){
        return $tables;\r
 }\r
 \r
+\r
 ?>
\ No newline at end of file
index 269778e..9936901 100644 (file)
@@ -8,26 +8,26 @@
                #ACTION_FORMULAIRE{#ENV{action}}
                <input type='hidden' name='id_evenement' value='#ID_EVENEMENT' />
                <input type='hidden' name='id_parent' value='#ENV{id_parent}' />
-         <ul>
-                       <li class="editer_titre obligatoire[ (#ENV**{erreurs}|table_valeur{titre}|oui)erreur]">
+               <ul>
+                       <li class="editer editer_titre obligatoire[ (#ENV**{erreurs}|table_valeur{titre}|oui)erreur]">
                                <label for="titre"><:agenda:evenement_titre:></label>[
                                <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{titre})</span>
                                ]<input type='text' class='text' name='titre' id='titre' value="#ENV{titre}" />
                        </li>
-               <li class='editer_parent[ (#ENV**{erreurs}|table_valeur{id_parent}|oui)erreur]'>
-               <label for="id_parent"><:agenda:evenement_article:></label>[
-               <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{id_parent})</span>
-               ]<INCLURE{fond=formulaires/selecteur/articles}{selected=#ENV{parents_id}}{id_article=#ENV{id_parent}}{name=parents_id}{select=1}{rubriques=0}>
-               </li>
-           <li class='editer_date fieldset'><fieldset><legend><:agenda:evenement_date:></legend>
+                       <li class='editer editer_parent[ (#ENV**{erreurs}|table_valeur{id_parent}|oui)erreur]'>
+                               <label for="id_parent"><:agenda:evenement_article:></label>[
+                               <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{id_parent})</span>
+                               ]<INCLURE{fond=formulaires/selecteur/articles}{selected=#ENV{parents_id}}{id_article=#ENV{id_parent}}{name=parents_id}{select=1}{rubriques=0}>
+                       </li>
+                       <li class='editer editer_date fieldset'><fieldset><legend><:agenda:evenement_date:></legend>
                                <ul>
-                                       <li class="editer_horaire[ (#ENV**{erreurs}|table_valeur{horaire}|oui)erreur]">
+                                       <li class="editer editer_horaire[ (#ENV**{erreurs}|table_valeur{horaire}|oui)erreur]">
                                                <label for="horaire"><:agenda:evenement_horaire:></label>[
                                                <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{horaire})</span>
                                                ]<input type='checkbox' name='horaire' id='horaire' value='non' [(#ENV{horaire}|=={oui}|non)checked='checked']
                                                        onclick="if (this.checked==false) { $('span.afficher_horaire').show();} else {$('span.afficher_horaire').hide();}" />
                                        </li>
-                                       <li class="editer_date_debut_fin[ (#ENV**{erreurs}|table_valeur{date_debut}|oui)erreur][ (#ENV**{erreurs}|table_valeur{date_fin}|oui)erreur]">
+                                       <li class="editer editer_date_debut_fin[ (#ENV**{erreurs}|table_valeur{date_debut}|oui)erreur][ (#ENV**{erreurs}|table_valeur{date_fin}|oui)erreur]">
                                                [
                                                <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{date_debut})</span>][
                                                <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{date_fin})</span>
@@ -42,8 +42,8 @@
                                                /></span><input type='text' class='text date' name='date_fin' id='date_fin' size='10' maxlength='10' value="[(#ENV{date_fin})]" />
                                        </li>
                                </ul>
-           </fieldset></li>
-                       <li class="editer_repetitions[ (#ENV**{erreurs}|table_valeur{repetitions}|oui)erreur]">
+                       </fieldset></li>
+                       <li class="editer editer_repetitions[ (#ENV**{erreurs}|table_valeur{repetitions}|oui)erreur]">
                                <label for="repetitions"><:agenda:evenement_repetitions:></label>[
                                (#ENV{repetitions}|non)<a href='#' onclick="$(this).hide().next().show('fast');return false;"><:agenda:ajouter_repetition:></a>
                                <div class='ajouter_repetitions none'>][
                                <textarea name='repetitions' id='repetitions'>#ENV{repetitions}</textarea>[
                                (#ENV{repetitions}|non)</div>]
                        </li>
-           <li class="editer_descriptif[ (#ENV**{erreurs}|table_valeur{descriptif}|oui)erreur]">
+                       <li class="editer editer_descriptif[ (#ENV**{erreurs}|table_valeur{descriptif}|oui)erreur]">
                                <label for="descriptif"><:agenda:evenement_descriptif:></label>[
                                <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{descriptif})</span>
                                ]<textarea name='descriptif' rows='5' id='descriptif' class="inserer_barre_edition">[(#ENV{descriptif})]</textarea>
-           </li>[
-               (#ENV{affiche_inscription,oui}|=={oui}|oui)
-           <li class="editer_inscription[ (#ENV**{erreurs}|table_valeur{inscription}|oui)erreur]">
-                   <div class='choix inscription'>
-                                       [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{inscription})</span>]
-                                       <input type='checkbox' class='checkbox' name='inscription' id='inscription' value="1"[ (#ENV{inscription}|oui)checked="checked"] />
-                                       <label for="inscription"><:agenda:label_inscription:></label>
-                               </div><div class='choix places'>
-                               <label for="places"><:agenda:label_places:></label>[
-                               <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{places})</span>
-                               ]<input type='text' class='text' name='places' id='places' value="[(#ENV{places})]" />
+                       </li>[
+                       (#ENV{affiche_inscription,oui}|=={oui}|oui)
+                       <li class="editer editer_inscription[ (#ENV**{erreurs}|table_valeur{inscription}|oui)erreur]">
+                               <div class='choix inscription'>
+                                               [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{inscription})</span>]
+                                               <input type='checkbox' class='checkbox' name='inscription' id='inscription' value="1"[ (#ENV{inscription}|oui)checked="checked"] />
+                                               <label for="inscription"><:agenda:label_inscription:></label>
+                                       </div><div class='choix places'>
+                                       <label for="places"><:agenda:label_places:></label>[
+                                       <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{places})</span>
+                                       ]<input type='text' class='text' name='places' id='places' value="[(#ENV{places})]" />
                                </div>
-           </li>]
-           <li class="editer_lieu[ (#ENV**{erreurs}|table_valeur{lieu}|oui)erreur]">
+                       </li>]
+                       <li class="editer editer_lieu[ (#ENV**{erreurs}|table_valeur{lieu}|oui)erreur]">
                                <label for="lieu"><:agenda:evenement_lieu:></label>[
                                <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{lieu})</span>
                                ]<input type='text' class='text' name='lieu' id='lieu' value="[(#ENV{lieu})]" />
-           </li>
-           <li class="editer_adresse[ (#ENV**{erreurs}|table_valeur{adresse}|oui)erreur]">
+                       </li>
+                       <li class="editer editer_adresse[ (#ENV**{erreurs}|table_valeur{adresse}|oui)erreur]">
                                <label for="adresse"><:agenda:evenement_adresse:></label>[
                                <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{adresse})</span>
                                ]<textarea name='adresse' rows='3' id='adresse'>[(#ENV{adresse})]</textarea>
-           </li>
-         </ul>
-         [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
-         <!--extra-->
-         <p class='boutons'><input type='submit' class='submit' value='[(#ENV{id_evenement}|?{<:bouton_enregistrer:>,<:bouton_ajouter:>})]' /></p>
+                       </li>
+               </ul>
+               [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
+               <!--extra-->
+               <p class='boutons'><input type='submit' class='submit' value='[(#ENV{id_evenement}|?{<:bouton_enregistrer:>,<:bouton_ajouter:>})]' /></p>
        </div></form>
        #INCLURE{fond=formulaires/dateur/inc-dateur}
        ]
 </div>
 <script type="text/javascript">
+       // Si changement de date_début, on change date_fin uniquement si inférieure à date_début
+       jQuery('#date_debut').on('change', function(){
+               var debut_date  = jQuery('#date_debut').datepicker("getDate");
+               var debut_stamp = debut_date.getTime();
+               var fin_stamp   = jQuery('#date_fin').datepicker("getDate").getTime();
+               
+               if (debut_stamp > fin_stamp) {
+                       jQuery('#date_fin').val(jQuery(this).val());
+                       jQuery('#date_fin').datepicker( "option", "minDate", new Date(debut_date));
+               }
+       });
        var repetitions_done = false;
        jQuery(document).bind('datePickerLoaded',function(){
                if (!repetitions_done){
index c998359..57f510d 100644 (file)
@@ -52,7 +52,7 @@ function formulaires_editer_evenement_charger_dist($id_evenement='new', $id_arti
                $valeurs['horaire'] = 'oui';
 
        // Pouvoir interdire l'affichage de l'inscription (puisque ce n'est pas traite' par le plugin)
-       $valeurs['affiche_inscription'] = $GLOBALS['agenda_affiche_inscription'];
+       $valeurs['affiche_inscription'] = isset($GLOBALS['agenda_affiche_inscription']) ? $GLOBALS['agenda_affiche_inscription'] : false;
 
        $valeurs['places'] = intval($valeurs['places']);
 
@@ -74,22 +74,23 @@ function evenements_edit_config(){
 
 function formulaires_editer_evenement_verifier_dist($id_evenement='new', $id_article=0, $retour='', $lier_trad = 0, $config_fonc='evenements_edit_config', $row=array(), $hidden=''){
        $erreurs = formulaires_editer_objet_verifier('evenement',$id_evenement,array('titre','date_debut','date_fin'));
-
        include_spip('inc/date_gestion');
 
        $horaire = _request('horaire')=='non'?false:true;
-       $date_debut = verifier_corriger_date_saisie('debut',$horaire,$erreurs);
-       $date_fin = verifier_corriger_date_saisie('fin',$horaire,$erreurs);
+       if(!$erreurs['date_debut'])
+               $date_debut = verifier_corriger_date_saisie('debut',$horaire,$erreurs);
+       if(!$erreurs['date_fin'])
+               $date_fin = verifier_corriger_date_saisie('fin',$horaire,$erreurs);
 
        if ($date_debut AND $date_fin AND $date_fin<$date_debut)
                $erreurs['date_fin'] = _T('agenda:erreur_date_avant_apres');
 
        include_spip('formulaires/selecteur/selecteur_fonctions');
        if (count($id = picker_selected(_request('parents_id'),'article'))
-         AND $id = reset($id)
-         AND $id = sql_getfetsel('id_article','spip_articles','id_article='.intval($id))){
-         // reinjecter dans id_parent
-         set_request('id_parent',$id);
+               AND $id = reset($id)
+               AND $id = sql_getfetsel('id_article','spip_articles','id_article='.intval($id))){
+               // reinjecter dans id_parent
+               set_request('id_parent',$id);
        }
 
        if (!$id_parent = intval(_request('id_parent')))
@@ -118,11 +119,15 @@ function formulaires_editer_evenement_traiter_dist($id_evenement='new', $id_arti
        // si c'est une creation dans un article publie, passer l'evenement en publie
        // l'article peut être renseigné/modifié par l'utilisateur dans le formulaire. On le retrouve.
        if (!intval($id_evenement)
-         AND $id_article = sql_getfetsel('id_article', 'spip_evenements', 'id_evenement='.$res['id_evenement'])
-         AND objet_test_si_publie('article',$id_article)){
+               AND $id_article = sql_getfetsel('id_article', 'spip_evenements', 'id_evenement='.$res['id_evenement'])
+               AND objet_test_si_publie('article',$id_article)){
                // sera refuse si auteur pas autorise
                evenement_modifier($res['id_evenement'],array('statut'=>'publie'));
        }
+       // a la creation, documenter la date de creation
+       if (!intval($id_evenement))
+               evenement_modifier($res['id_evenement'],array('date_creation'=>date('Y-m-d H:i:s')));
+
        $id_evenement = $res['id_evenement'];
        if ($res['redirect']) {
                if (strpos($res['redirect'],'article')!==false){
diff --git a/www/plugins/agenda_3_5/formulaires/evenement_participants.html b/www/plugins/agenda_3_5/formulaires/evenement_participants.html
deleted file mode 100644 (file)
index 3ba1228..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<div class="formulaire_spip formulaire_#FORM" >
-       [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
-       [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
-       <form method='post' action='#ENV{action}'><div>
-               #ACTION_FORMULAIRE{#ENV{action}}
-               <div class="over"><span class='image_loading'>&nbsp;</span><input type='submit' class='submit' value='<:bouton_changer:>' /></div>
-               
-               <INCLURE{fond=prive/objets/liste/evenement_participants}{env}>
-               
-       </div></form>
-</div>
-<script type="text/javascript">/*<![CDATA[*/
-jQuery('.formulaire_evenement_participants .delete').click(function(){jQuery(this).parents('tr').eq(0).animateRemove();});
-jQuery('.formulaire_evenement_participants .append').animateAppend();
-/*]]>*/</script>
diff --git a/www/plugins/agenda_3_5/formulaires/evenement_participants.php b/www/plugins/agenda_3_5/formulaires/evenement_participants.php
deleted file mode 100644 (file)
index 7761a0e..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-/**
- * Plugin Agenda 4 pour Spip 3.0
- * Licence GPL 3
- *
- * 2006-2011
- * Auteurs : cf paquet.xml
- */
-
-if (!defined("_ECRIRE_INC_VERSION")) return;
-
-/**
- * 
- * @return array
- */
-function formulaires_evenement_participants_charger_dist($evenement,$tri){
-       
-       if (autoriser('voir','evenement',$evenement)) {
-               $valeurs = array(
-                       'id_evenement'=>$evenement,
-                       'tri_inscrits'=>$tri,
-                       'supprimer_lien'=>''
-               );
-       }
-       
-       return $valeurs;
-}
-
-/**
- * Traiter le post des informations de suppression d'inscription
- *
- * @param string $a
- * @param bool $editable
- * @return array
- */
-function formulaires_evenement_participants_traiter_dist($a,$editable=true){
-       
-       $supprimer = _request('supprimer_lien');
-               
-       if ($supprimer){
-               foreach($supprimer as $k=>$v) {
-                       if ($lien = lien_verifier_action($k,$v)){
-                               $lien = explode("-",$lien);
-                               list($objet_source,$ids,$objet_lie,$idl) = $lien;
-                               if(autoriser('modifier','evenement',$ids)){
-                                       if ($idl=="*") sql_delete("spip_evenements_participants", "id_evenement=$ids");
-                                       else sql_delete("spip_evenements_participants", "id_evenement=$ids and id_auteur=$idl");
-                               }
-                       }
-               }
-       }
-       
-       return $res;
-}
-
-/**
- * Fonction issue de prive/formulaires/editer_liens.php
- *
- * Les formulaires envoient une action dans un tableau ajouter_lien
- * ou supprimer_lien
- * L'action est de la forme
- * objet1-id1-objet2-id2
- *
- * L'action peut etre indiquee dans la cle, ou dans la valeur
- * Si elle est indiquee dans la valeur, et que la cle est non numerique,
- * on ne la prend en compte que si un submit avec la cle a ete envoye
- *
- * @param string $k
- * @param string $v
- * @return string
- */
-function lien_verifier_action($k,$v){
-       if (preg_match(",^\w+-[\w*]+-[\w*]+-[\w*]+,",$k))
-               return $k;
-       if (preg_match(",^\w+-[\w*]+-[\w*]+-[\w*]+,",$v)){
-               if (is_numeric($k))
-                       return $v;
-               if (_request($k))
-                       return $v;
-       }
-       return '';
-}
-?>
index 29f09e7..7942618 100644 (file)
@@ -19,7 +19,7 @@
                                (#VAL|chercher_rubrique{0,#ENV{id_parent},'article',0,0,0,form_simple})
            </li>]
                        #SET{name,toute_la_branche}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
-                       <li class="editer long_label editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
+                       <li class="editer pleine_largeur editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[
                                <span class='erreur_message'>(#GET{erreurs})</span>
                                ]
                                #SET{val,oui}
index 1f79a57..8e55046 100644 (file)
@@ -68,6 +68,7 @@ function formulaires_migrer_agenda_verifier_dist(){
                $message .= sinon(singulier_ou_pluriel($nba,'info_1_article','info_nb_articles'),_T('info_aucun_article'));
 
                $erreurs['confirmer'] = $message;
+               $erreurs['message_erreur'] = ''; // pas de message automatique
        }
 
        return $erreurs;
index c25dd05..dc649cb 100644 (file)
@@ -1,37 +1,51 @@
 <div class="formulaire_spip formulaire_#FORM formulaire_#FORM-#ENV{id,#ENV{id_evenement}}">
        [(#ENV{editable}|non)
        [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
-       [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV**{message_erreur})</p>]
-       ]
+       [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV**{message_erreur})</p>]]
        [(#ENV{editable})
-       <form method='post' action='#ENV{action}' enctype='multipart/form-data'><div>
+       <form method='post' action='#ENV{action}#vevent' enctype='multipart/form-data'><div>
                [(#REM) declarer les hidden qui declencheront le service du formulaire 
                parametre : url d'action ]
                #ACTION_FORMULAIRE{#ENV{action}}
                <fieldset><legend><:agenda:label_vous_inscrire:></legend>
                [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
                [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
-         <ul>
-           <li class="saisie_reponse[ (#ENV**{erreurs}|table_valeur{reponse}|oui)erreur]">
+               <ul>
+            [(#SESSION{statut}|oui)
+            [<li><:nom:> <strong>(#SESSION{nom}|typo)</strong> <span class="details">&#91;<a href="#URL_LOGOUT" rel="nofollow"><:icone_deconnecter:></a>&#93;</span></li>]
+            ]
+            [(#SESSION{statut}|non)
+            <li class="saisie_reponse[ (#ENV**{erreurs}|table_valeur{nom}|oui)erreur]">
+                <label for="nom_#FORM"><:entree_nom_pseudo_2:></label>
+                [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{nom})</span>]
+                <input type='text' class='text' name='nom' id='nom_#FORM' value="#ENV{nom}" />
+            </li>
+            <li class="saisie_reponse[ (#ENV**{erreurs}|table_valeur{email}|oui)erreur]">
+                <label for="email_#FORM"><:entree_adresse_email_2:></label>
+                <span class="explication"><:agenda:evenement_participant_email_mention:></span>
+                [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{email})</span>]
+                <input type='text' class='text' name='email' id='email_#FORM' value="#ENV{email}" />
+            </li>
+            ]
+                       <li class="saisie_reponse[ (#ENV**{erreurs}|table_valeur{reponse}|oui)erreur]">
                                [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{reponse})</span>]
-                   <div class='choix'>
+                               <div class='choix'>
                                        <input type='radio' class='radio' name='reponse' id='reponse_oui' value="oui"[ (#ENV{reponse}|=={oui}|oui)checked="checked"] />
                                        <label for="reponse_oui"><:agenda:label_reponse_jyparticipe:></label>
                                </div>
-                   <div class='choix'>
+                               <div class='choix'>
                                        <input type='radio' class='radio' name='reponse' id='reponse_peutetre' value="?"[ (#ENV{reponse}|=={?}|oui)checked="checked"] />
                                        <label for="reponse_peutetre"><:agenda:label_reponse_jyparticipe_peutetre:></label>
                                </div>
-                   <div class='choix'>
+                               <div class='choix'>
                                        <input type='radio' class='radio' name='reponse' id='reponse_non' value="non"[ (#ENV{reponse}|=={non}|oui)checked="checked"] />
                                        <label for="reponse_non"><:agenda:label_reponse_jyparticipe_pas:></label>
                                </div>
-           </li>
-         </ul>
-         </fieldset>
-         [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
-         <!--extra-->
-         <p class='boutons'><input type='submit' class='submit' value='<:bouton_enregistrer:>' /></p>
-       </div></form>
-       ]
+                       </li>
+               </ul>
+       </fieldset>
+       [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
+       <!--extra-->
+       <p class='boutons'><input type='submit' class='submit' value='<:bouton_enregistrer:>' /></p>
+       </div></form>]
 </div>
index 868ec6b..7c91173 100644 (file)
@@ -12,15 +12,19 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 include_spip('inc/actions');
 include_spip('inc/editer');
 
-function formulaires_participer_evenement_charger_dist($id_evenement){
-       $valeurs = array();
+function formulaires_participer_evenement_charger_dist($id_evenement, $mode=''){
+       $valeurs = array(
+        'nom' => isset($GLOBALS['visiteur_session']['id_auteur']) ? $GLOBALS['visiteur_session']['nom'] : _request('nom'),
+        'email' => isset($GLOBALS['visiteur_session']['id_auteur']) ? $GLOBALS['visiteur_session']['email'] : _request('email'),
+        'reponse' => _request('reponse'),
+    );
        // si pas d'evenement ou d'inscription, on echoue silencieusement
        if (!$row = sql_fetsel('inscription,places','spip_evenements','id_evenement='.intval($id_evenement).' AND date_fin>NOW()')
-         OR !$row['inscription'])
+               OR !$row['inscription'])
                return false;
 
        // si anonyme, on echoue avec avertissement
-       if (!$GLOBALS['visiteur_session']['id_auteur'])
+       if ($mode!='public' && (!isset($GLOBALS['visiteur_session']['id_auteur']) || !$GLOBALS['visiteur_session']['id_auteur']))
                return array(
                        'message_erreur'=>_T('agenda:connexion_necessaire_pour_inscription'),
                        'editable'=>false
@@ -28,7 +32,8 @@ function formulaires_participer_evenement_charger_dist($id_evenement){
 
        // valeurs d'initialisation
        $valeurs['id'] = $id_evenement;
-       $valeurs['reponse'] = sql_getfetsel('reponse','spip_evenements_participants','id_evenement='.intval($id_evenement).' AND id_auteur='.intval($GLOBALS['visiteur_session']['id_auteur']));
+    if(isset($GLOBALS['visiteur_session']['id_auteur']))
+           $valeurs['reponse'] = sql_getfetsel('reponse','spip_evenements_participants','id_evenement='.intval($id_evenement).' AND id_auteur='.intval($GLOBALS['visiteur_session']['id_auteur']));
 
        // si les places sont comptees, regarder si il en reste
        if ($places = $row['places']){
@@ -38,8 +43,8 @@ function formulaires_participer_evenement_charger_dist($id_evenement){
                // on multiplie tout par 2 pour eviter les troncatures ($total ne sert de toute facon que dans les tests)
                $total = 2*$ok+$peutetre;
                if ($total>=2*$places){
-                 // dans ce cas, le formulaire est editable seulement si l'auteur a deja repondu oui ou peut-etre, et peut changer d'avis !
-                 if (!($valeurs['reponse']=='oui' OR $valeurs['reponse']=='?')){
+                       // dans ce cas, le formulaire est editable seulement si l'auteur a deja repondu oui ou peut-etre, et peut changer d'avis !
+                       if (!($valeurs['reponse']=='oui' OR $valeurs['reponse']=='?')){
                                $valeurs['editable'] = false;
                                $valeurs['message_ok'] = _T('agenda:evenement_complet');
                        }
@@ -49,14 +54,26 @@ function formulaires_participer_evenement_charger_dist($id_evenement){
        return $valeurs;
 }
 
-function formulaires_participer_evenement_verifier_dist($id_evenement){
+function formulaires_participer_evenement_verifier_dist($id_evenement, $mode=''){
        $erreurs = array();
        $reponse = _request('reponse');
+       $nom = _request('nom');
+       $email = _request('email');
        // Le test de la ligne suivante sert a savoir si la reponse est vide, non?
        // On vient juste de la recuperer ci-dessus, pas la peine de la reaffecter...
        if (!($reponse) OR !in_array($reponse,array('oui','non','?')))
                $erreurs['reponse'] = _T('agenda:indiquez_votre_choix');
-       elseif ($reponse!=='non') {
+       elseif ($mode=='public' AND !isset($GLOBALS['visiteur_session']['id_auteur'])) {
+               // nom et email sont obligatoires
+               if (!$nom)
+               $erreurs['nom'] = _T('info_obligatoire');
+               if (!$email)
+               $erreurs['email'] = _T('info_obligatoire');
+               // pas de double inscription avec le même email
+        if (sql_fetsel('reponse','spip_evenements_participants','id_evenement='.intval($id_evenement).' AND email='.sql_quote($email))) {
+               $erreurs['email'] = _T('erreur_email_deja_existant');
+               }
+       } elseif ($reponse!=='non' && isset($GLOBALS['visiteur_session']['id_auteur'])) {
                $row = sql_fetsel('places','spip_evenements','id_evenement='.intval($id_evenement));
                $valeurs['reponse'] = sql_getfetsel('reponse','spip_evenements_participants','id_evenement='.intval($id_evenement).' AND id_auteur='.intval($GLOBALS['visiteur_session']['id_auteur']));
                if ($places = $row['places'] AND $valeurs['reponse']!==$reponse){
@@ -66,14 +83,13 @@ function formulaires_participer_evenement_verifier_dist($id_evenement){
                        // on multiplie tout par 2 pour eviter les troncatures ($total ne sert de toute facon que dans les tests)
                        $total = 2*$ok+$peutetre;
                        if (
-                           // Si on est au taquet, le seul cas autorise restant (la reponse NON et la reponse identique sont prises
-                           // en compte dans les tests ci-dessus) est: transformation d'un OUI en PEUT-ETRE (-0,5)
-                           ($total>=2*$places AND !($valeurs['reponse']=='oui' AND $reponse=='?'))
-                           OR
-                           // Si il reste un siege PEUT-ETRE, le seul cas interdit restant est: transformation d'un NON en OUI (+1)
-                           ($total==2*$places-1 AND ($valeurs['reponse']=='non' AND $reponse=='oui'))
-                           ){
-                               $erreurs['reponse'] = _T('agenda:plus_de_place');
+                               // Si on est au taquet, le seul cas autorise restant (la reponse NON et la reponse identique sont prises
+                               // en compte dans les tests ci-dessus) est: transformation d'un OUI en PEUT-ETRE (-0,5)
+                               ($total>=2*$places AND !($valeurs['reponse']=='oui' AND $reponse=='?'))
+                               OR
+                               // Si il reste un siege PEUT-ETRE, le seul cas interdit restant est: transformation d'un NON en OUI (+1)
+                               ($total==2*$places-1 AND ($valeurs['reponse']=='non' AND $reponse=='oui'))){
+                                       $erreurs['reponse'] = _T('agenda:plus_de_place');
                        }
                }
        }
@@ -83,26 +99,30 @@ function formulaires_participer_evenement_verifier_dist($id_evenement){
 function formulaires_participer_evenement_traiter_dist($id_evenement){
 
        $reponse = _request('reponse');
-       if (sql_fetsel('reponse','spip_evenements_participants','id_evenement='.intval($id_evenement).' AND id_auteur='.intval($GLOBALS['visiteur_session']['id_auteur']))){
-               sql_updateq('spip_evenements_participants',array('reponse'=>$reponse),'id_evenement='.intval($id_evenement).' AND id_auteur='.intval($GLOBALS['visiteur_session']['id_auteur']));
-       }
-       else
-               sql_insertq('spip_evenements_participants',array('id_evenement'=>$id_evenement,'id_auteur'=>$GLOBALS['visiteur_session']['id_auteur'],'reponse'=>$reponse,'date'=>'NOW()'));
-
-       $retour = array('editable'=>true);
-       if (!$reponse = sql_getfetsel('reponse','spip_evenements_participants','id_evenement='.intval($id_evenement).' AND id_auteur='.intval($GLOBALS['visiteur_session']['id_auteur']))
-       OR $reponse!=_request('reponse')){
-               $retour['message_erreur'] = _T('agenda:probleme_technique');
-       }
-       else {
-               if ($reponse=='oui')
-                       $message = _T('agenda:participation_prise_en_compte');
-               elseif ($reponse=='?')
-                       $message = _T('agenda:participation_incertaine_prise_en_compte');
-               else
-                       $message = _T('agenda:absence_prise_en_compte');
-       }
-       return array('message_ok'=>$message,'editable'=>true);
+    $nom = _request('nom');
+    $email = _request('email');
+    
+    if(isset($GLOBALS['visiteur_session']['id_auteur'])){
+        $editable = true;
+        if (sql_fetsel('reponse','spip_evenements_participants','id_evenement='.intval($id_evenement).' AND id_auteur='.intval($GLOBALS['visiteur_session']['id_auteur'])))
+            sql_updateq('spip_evenements_participants',array('reponse'=>$reponse,'date'=>'NOW()'),'id_evenement='.intval($id_evenement).' AND id_auteur='.intval($GLOBALS['visiteur_session']['id_auteur']));
+        else
+            sql_insertq('spip_evenements_participants',array('id_evenement'=>$id_evenement,'id_auteur'=>$GLOBALS['visiteur_session']['id_auteur'],'reponse'=>$reponse,'date'=>'NOW()'));
+    } else {
+                       $editable = false;
+               sql_insertq('spip_evenements_participants',array('id_evenement'=>$id_evenement,'nom'=>$nom,'email'=>$email,'reponse'=>$reponse,'date'=>'NOW()'));
+    }
+    if ($reponse == 'oui')
+        $message = _T('agenda:participation_prise_en_compte');
+    elseif ($reponse == '?')
+        $message = _T('agenda:participation_incertaine_prise_en_compte');
+    else
+        $message = _T('agenda:absence_prise_en_compte');
+       
+       include_spip('inc/invalideur');
+       suivre_invalideur("id='evenement/$id_evenement'");
+       
+       return array('message_ok'=>$message,'editable'=>$editable);
 }
 
 ?>
\ No newline at end of file
index 68cd4db..ac77161 100644 (file)
@@ -1,14 +1,17 @@
 BEGIN:VEVENT
 SUMMARY:[(#EVTITRE|textebrut|filtrer_ical)]
 UID:evenement#ID_EVENEMENT @ [(#URL_SITE_SPIP|filtrer_ical)][
-DTSTAMP:(#DATE_DEBUT|date_ical)][(#HORAIRE|=={oui}|?{[
+DTSTAMP:(#DATE_CREATION|date_ical)][(#HORAIRE|=={oui}|?{[
 DTSTART:(#DATE_DEBUT|date_ical)][
 DTEND:(#DATE_FIN|date_ical)],[
 DTSTART;VALUE=DATE:(#DATE_DEBUT|affdate{Ymd})][
 DTEND;VALUE=DATE:(#DATE_FIN|agenda_jourdecal{1,Ymd})]})][
+CREATED:(#DATE_CREATION|date_ical)][
+LAST-MODIFIED:(#MAJ|date_ical)][
 LOCATION:(#LIEU|PtoBR|textebrut|filtrer_ical)][
 DESCRIPTION:(#DESCRIPTIF|supprimer_tags|textebrut|filtrer_ical)]
 CATEGORIES:<BOUCLE_article(ARTICLES) {id_article=#ID_ARTICLE}>[(#TITRE|textebrut|filtrer_ical)]</BOUCLE_article>
-URL:[(#URL_ARTICLE|parametre_url{id_evenement,#ID_EVENEMENT}|url_absolue|filtrer_ical)]
-STATUS:CONFIRMED
+URL:[(#URL_ARTICLE|parametre_url{id_evenement,#ID_EVENEMENT}|url_absolue|filtrer_ical)]<BOUCLE_sequence(VERSIONS ?){objet=evenement}{id_objet=#ID_EVENEMENT}{!par id_version}{0,1}>[
+SEQUENCE:(#ID_VERSION|moins{1})
+]</BOUCLE_sequence>STATUS:CONFIRMED
 END:VEVENT
diff --git a/www/plugins/agenda_3_5/inclure/agenda-vue-calendrier.html b/www/plugins/agenda_3_5/inclure/agenda-vue-calendrier.html
new file mode 100644 (file)
index 0000000..a65661d
--- /dev/null
@@ -0,0 +1,82 @@
+<style type="text/css">
+.hover-title { color: black; border: 1px solid #888; padding: 3px; background-color: #DDD; position: absolute; bottom: 0; border-radius: 3px; width: auto; width: 200%; opacity: .9; }
+.fc-event-inner { background-color: #E0ECFF; }
+.fc-header-title { margin: auto 1em; }
+#fullcalendar_#ID_MOT-#ID_RUBRIQUE { position: relative; margin: 1em auto; padding: 1em; [(#LARGEUR|is_null|non)width: #LARGEURpx;] }
+</style>
+
+#SET{data,#ARRAY}
+<BOUCLE_articles(ARTICLES) {id_mot ?} {id_rubrique ?} {par date} {inverse} ><BOUCLE_événements(EVENEMENTS) {id_article} >[
+(#SET{événement,#ARRAY{title,'',hover,#TITRE,start,#DATE_DEBUT,end,#DATE_FIN,id,#ID_ARTICLE,url,#URL_ARTICLE}})][
+(#SET{data,#GET{data}|push{#GET{événement}}})
+]</BOUCLE_événements></BOUCLE_articles>
+
+[(#SET{json_data,#GET{data}|json_encode{2}})]
+
+<div id="fullcalendar_#ID_MOT-#ID_RUBRIQUE"></div>
+
+#SET{français,0}
+[(#LANG|is_null|oui)#SET{français,1}]
+[(#LANG|=={fr}|oui)#SET{français,1}]
+
+<script type="text/javascript">
+$(function() {
+       $.getScript('#CHEMIN{lib/fullcalendar/fullcalendar.min.js}', function() {
+               $('head').append('<link rel="stylesheet" type="text/css"  media="screen" href="#CHEMIN{lib/fullcalendar/fullcalendar.css}">');
+               $('head').append('<link rel="stylesheet" type="text/css" media="print" href="#CHEMIN{lib/fullcalendar/fullcalendar.print.css}">');
+               var data = #GET{json_data};
+               $('#fullcalendar_#ID_MOT-#ID_RUBRIQUE').fullCalendar({
+                       header: {
+                               left: '',
+                               center: 'prev,title,next',
+                               right: ''
+                       },
+                       [(#ENV{hauteur}|is_null|non)height: #HAUTEUR,]
+
+                       monthNames:['<:date_mois_1|attribut_html:>','<:date_mois_2|attribut_html:>','<:date_mois_3|attribut_html:>','<:date_mois_4|attribut_html:>','<:date_mois_5|attribut_html:>','<:date_mois_6|attribut_html:>','<:date_mois_7|attribut_html:>','<:date_mois_8|attribut_html:>','<:date_mois_9|attribut_html:>','<:date_mois_10|attribut_html:>','<:date_mois_11|attribut_html:>','<:date_mois_12|attribut_html:>'],
+                       monthNamesShort:['<:date_mois_1_abbr|attribut_html:>','<:date_mois_2_abbr|attribut_html:>','<:date_mois_3_abbr|attribut_html:>','<:date_mois_4_abbr|attribut_html:>','<:date_mois_5_abbr|attribut_html:>','<:date_mois_6_abbr|attribut_html:>','<:date_mois_7_abbr|attribut_html:>','<:date_mois_8_abbr|attribut_html:>','<:date_mois_9_abbr|attribut_html:>','<:date_mois_10_abbr|attribut_html:>','<:date_mois_11_abbr|attribut_html:>','<:date_mois_12_abbr|attribut_html:>'],
+                       dayNames:['<:date_jour_1|attribut_html:>','<:date_jour_2|attribut_html:>','<:date_jour_3|attribut_html:>','<:date_jour_4|attribut_html:>','<:date_jour_5|attribut_html:>','<:date_jour_6|attribut_html:>','<:date_jour_7|attribut_html:>'],
+                       dayNamesShort:['<:date_jour_1_abbr|attribut_html:>','<:date_jour_2_abbr|attribut_html:>','<:date_jour_3_abbr|attribut_html:>','<:date_jour_4_abbr|attribut_html:>','<:date_jour_5_abbr|attribut_html:>','<:date_jour_6_abbr|attribut_html:>','<:date_jour_7_abbr|attribut_html:>'],
+                       buttonText: {
+                               prev: "<span class='fc-text-arrow'>&lsaquo;</span>",
+                               next: "<span class='fc-text-arrow'>&rsaquo;</span>",
+                               prevYear: "<span class='fc-text-arrow'>&laquo;</span>",
+                               nextYear: "<span class='fc-text-arrow'>&raquo;</span>",
+                today: '<:date_aujourdhui|attribut_html:>',
+                month: '<:cal_par_mois|attribut_html:>',
+                day: '<:cal_par_jour|attribut_html:>',
+                week: '<:cal_par_semaine|attribut_html:>'
+                       },
+                       // time formats
+                       titleFormat: {
+                               month: 'MMMM yyyy',
+                               week: "d MMM[ yyyy]{ '&#8212;'d[ MMM] yyyy}",
+                               day: 'dddd, d MMM, yyyy'
+                       },
+                       columnFormat: {
+                               month: 'ddd',
+                               week: 'ddd d/M',
+                               day: 'dddd d/M'
+                       },
+                       firstDay: 1,
+                       events: data,
+                       defaultView: '[(#VUE|=={semaine}|?{week,month})]',
+                       // events: data,
+                       eventMouseover: function(event, jsEvent, view) {
+                               $('.fc-event-inner', this).append('<div id=\"'+event.id+'\" class=\"hover-title\" style=\"\">'+event.hover+'</div>');
+                       },
+                       eventMouseout: function(event, jsEvent, view) {
+                               $('#'+event.id).remove();
+                       },
+                       eventClick: function(event) {
+                               console.log(event);
+                               if (false) {
+                                       var url = '/?page=location_donnees&who=direction_scientifique&id_location=' + mrbs_ids[event.id];
+                                       var win=window.open(url, '_blank');
+                                       win.focus();
+                               }
+                       }
+               })
+       });
+});
+</script>
diff --git a/www/plugins/agenda_3_5/inclure/liste_participants_evenement.html b/www/plugins/agenda_3_5/inclure/liste_participants_evenement.html
new file mode 100644 (file)
index 0000000..c9ddc28
--- /dev/null
@@ -0,0 +1,31 @@
+<BOUCLE_inscrits_oui(evenements_participants){id_evenement=#ENV{id,#ENV{id_evenement}}}{reponse='oui'}>
+</BOUCLE_inscrits_oui>#SET{inscrits,#TOTAL_BOUCLE}</B_inscrits_oui>
+        
+<B_inscrits>
+    #ANCRE_PAGINATION
+    <table class='spip liste'>
+        [<caption>(#GRAND_TOTAL|singulier_ou_pluriel{agenda:info_une_reponse,agenda:info_nb_reponses,nb})[,
+                  (#GET{inscrits}|singulier_ou_pluriel{agenda:info_un_inscrit,agenda:info_nb_inscrits,nb})]</caption>]
+        <thead>
+        <tr class='first_row'>
+            <th scope='col'><:nom:></th>
+            <th scope='col'><:agenda:evenement_date_inscription:></th>
+            <th scope='col'><:agenda:info_reponse_inscriptions:></th>
+        </tr>
+        </thead>
+        <tbody>
+        <BOUCLE_inscrits(evenements_participants){id_evenement=#ENV{id,#ENV{id_evenement}}}{par date}{inverse}{pagination #ENV{nb,15}}>
+        <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
+            <td>[(#NOM|sinon{#INFO_NOM{auteur,#ID_AUTEUR}})]</td>
+            <td>[(#DATE|affdate_jourcourt)]</td>
+            <td>
+                [(#REPONSE|=={'oui'}|oui)<:agenda:label_reponse_jyparticipe:>]
+                [(#REPONSE|=={'non'}|oui)<:agenda:label_reponse_jyparticipe_pas:>]
+                [(#REPONSE|=={'?'}|oui)<:agenda:label_reponse_jyparticipe_peutetre:>]
+            </td>
+        </tr>
+        </BOUCLE_inscrits>
+        </tbody>
+    </table>
+    [<p class='pagination'>(#PAGINATION)</p>]
+</B_inscrits>
index 9b8cd30..8599921 100644 (file)
@@ -1,15 +1,25 @@
 <traduction module="agenda" gestionnaire="salvatore" url="http://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/agenda/trunk/lang/" reference="fr">
-       <langue code="de" url="http://trad.spip.net/tradlang_module/agenda?lang_cible=de">
+       <langue code="de" url="http://trad.spip.net/tradlang_module/agenda?lang_cible=de" total="123" traduits="123" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
                <traducteur nom="Rainer Müller" lien="http://trad.spip.net/auteur/rainer-muller" />
+               <traducteur nom="Torsten Willmann" lien="http://trad.spip.net/auteur/torsten-willmann" />
        </langue>
-       <langue code="en" url="http://trad.spip.net/tradlang_module/agenda?lang_cible=en">
+       <langue code="en" url="http://trad.spip.net/tradlang_module/agenda?lang_cible=en" total="123" traduits="123" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="Hanjo" lien="http://trad.spip.net/auteur/hanjo" />
                <traducteur nom="kent1" lien="http://trad.spip.net/auteur/kent1" />
        </langue>
-       <langue code="es" url="http://trad.spip.net/tradlang_module/agenda?lang_cible=es">
-               <traducteur nom="Raquel S. Bujaldón" lien="http://trad.spip.net/auteur/raquel" />
+       <langue code="es" url="http://trad.spip.net/tradlang_module/agenda?lang_cible=es" total="123" traduits="123" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="Raquel S. Bujaldón" lien="http://trad.spip.net/auteur/raquel-s-bujaldon" />
+               <traducteur nom="severo" lien="http://trad.spip.net/auteur/severo" />
        </langue>
-       <langue code="fr" />
-       <langue code="sk" url="http://trad.spip.net/tradlang_module/agenda?lang_cible=sk">
+       <langue code="fr" url="http://trad.spip.net/tradlang_module/agenda?lang_cible=fr" total="123" traduits="123" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+       </langue>
+       <langue code="nl" url="http://trad.spip.net/tradlang_module/agenda?lang_cible=nl" total="123" traduits="123" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="Hanjo" lien="http://trad.spip.net/auteur/hanjo" />
+       </langue>
+       <langue code="ru" url="http://trad.spip.net/tradlang_module/agenda?lang_cible=ru" total="123" traduits="123" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="olly" lien="http://trad.spip.net/auteur/olly" />
+       </langue>
+       <langue code="sk" url="http://trad.spip.net/tradlang_module/agenda?lang_cible=sk" total="123" traduits="123" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
                <traducteur nom="jaro" lien="http://trad.spip.net/auteur/jaro" />
        </langue>
 </traduction>
index dbe4f62..5a539f9 100644 (file)
@@ -14,10 +14,10 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'agenda' => 'Kalender',
        'ajouter_repetition' => 'Wiederholungen hinzufügen',
        'ajouter_un_evenement' => 'diesem Artikel ein Event hinzufügen',
-       'annee_precedente' => 'Jahr davor', # MODIF
+       'annee_precedente' => 'Jahr davor',
        'annee_suivante' => 'Jahr danach',
        'aucun_evenement' => 'Kein Event',
-       'aucun_inscrit' => 'Aucun inscrit', # NEW
+       'aucun_inscrit' => 'Keine Anmeldung',
        'aucune_rubrique_mode_agenda' => 'In der Grundeinstellung können Events in alle Rubriken eingetragen werden. Wenn sie den Kalender gezielt für eine oder mehrere Rubriken aktivieren, dann steht ihnen der Kalender nur für diese Rubriken zur Verfügung.',
 
        // B
@@ -25,11 +25,17 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'bouton_supprimer' => 'Löschen',
 
        // C
+       'cal_par_jour' => 'Tag',
+       'cal_par_mois' => 'Monat',
+       'cal_par_semaine' => 'Woche',
        'confirm_suppression_inscription' => 'Wollen sie diese Anmeldung wirklich löschen?',
-       'confirm_suppression_inscription_toutes' => 'Voulez-vous vraiment supprimer toutes les inscriptions ?', # NEW
-       'connexion_necessaire_pour_inscription' => 'Merci de <a href=\'#LOGIN_PUBLIC\'>vous connecter</a> pour pouvoir vous inscrire à cet événement.', # NEW
+       'confirm_suppression_inscription_toutes' => 'Wollen Sie wirklich alle Anmeldungen löschen?',
+       'connexion_necessaire_pour_inscription' => 'Um sich für den Event anmelden zu können müssen Sie sich anmelden.',
        'creer_evenement' => 'Event neu anlegen',
 
+       // D
+       'date_fmt_agenda_label' => '<b class="day">@jour@</b> <b class="month">@mois@</b> <b class="year">@annee@</b>',
+
        // E
        'erreur_article_interdit' => 'Sie dürfen dieses Event nicht diesem Artikel zuordnen',
        'erreur_article_manquant' => 'Sie müssen einen Artikel angeben',
@@ -49,15 +55,18 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'evenement_date_debut' => 'Anfangsdatum',
        'evenement_date_du' => 'Vom ',
        'evenement_date_fin' => 'Enddatum',
-       'evenement_date_inscription' => 'Date d\'inscription', # NEW
+       'evenement_date_inscription' => 'Anmeldedatum',
        'evenement_descriptif' => 'Beschreibung',
        'evenement_horaire' => 'ganztägig',
        'evenement_lieu' => 'Ort',
+       'evenement_participant_email_mention' => 'Um in kontakt zu bleiben benötigen wir Ihre E-Mail-Adresse. Diese wird nicht veröffentlicht',
        'evenement_repetitions' => 'Wiederholungen',
        'evenement_titre' => 'Titel',
-       'evenements' => 'Event',
+       'evenements' => 'Events',
        'evenements_a_venir' => 'In der Zukunft',
        'evenements_depuis_debut' => 'Alle',
+       'explication_synchro_flux_ical' => 'Das Plugin Agenda beinhaltet eine iCal Feed der Events. Einige Klienten aktualisieren Termine nur, wenn eine Versionsnummer haben (die Änderungen anzeigt) im Feed enthalten ist. Um diese Versionsnummer  in den iCal-Feed zu integrieren muss die Versionskontrolle für Events aktiviert werden (im Menu Konfiguration > Versionen).',
+       'explication_synchro_flux_ical_titre' => 'Synchronisation des iCal Feed',
 
        // F
        'fermer' => 'Schließen',
@@ -65,8 +74,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        // I
        'icone_creer_evenement' => 'Neue Veranstaltung anlegen',
        'icone_modifier_evenement' => 'Event Bearbeiten',
-       'indiquez_votre_choix' => 'Indiquez votre choix', # NEW
-       'info_1_mois' => '1 mois', # NEW
+       'indiquez_votre_choix' => 'Geben Sie Ihre Auswahl an',
+       'info_1_mois' => '1 Monat',
        'info_1_place' => '1 Platz',
        'info_aucun_evenement' => 'Kein Event',
        'info_evenement' => 'Event',
@@ -74,33 +83,35 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'info_evenement_propose' => 'Event vorgeschlagen',
        'info_evenement_publie' => 'Event veröffentlicht',
        'info_evenements' => 'Event',
-       'info_inscription' => 'Inscription en ligne :', # NEW
+       'info_inscription' => 'Online Anmeldung:',
        'info_lieu' => 'Ort:',
-       'info_nb_inscrits' => '@nb@ inscrits', # NEW
-       'info_nb_mois' => '@nb@ mois', # NEW
+       'info_nb_inscrits' => '@nb@ Anmeldungen',
+       'info_nb_mois' => '@nb@ Monate',
        'info_nb_places' => '@nb@ Plätze',
+       'info_nb_reponses' => '@nb@ Rückmeldungen',
        'info_nombre_evenements' => '@nb@ Events',
        'info_nouvel_evenement' => 'Neues Event',
        'info_reponse_inscription_non' => 'nein',
        'info_reponse_inscription_nsp' => '?',
        'info_reponse_inscription_oui' => 'ja',
-       'info_reponse_inscriptions' => 'Réponse', # NEW
+       'info_reponse_inscriptions' => 'Rückmeldung',
        'info_reponses_inscriptions' => 'Antworten',
        'info_un_evenement' => 'ein Event',
-       'info_un_inscrit' => 'Un inscrit', # NEW
+       'info_un_inscrit' => 'Eine Anmeldung',
+       'info_une_reponse' => 'Eine Rückmeldung',
        'inscrits' => 'Anmeldungen',
 
        // L
-       'label_annee' => 'Année', # NEW
+       'label_annee' => 'Jahr',
        'label_inscription' => 'Online-Anmeldungen',
-       'label_periode_saison' => 'Saison', # NEW
+       'label_periode_saison' => 'Saison',
        'label_places' => 'Maximale Anzahl Plätze',
        'label_reponse_jyparticipe' => 'Ich komme',
        'label_reponse_jyparticipe_pas' => 'Ich komme nicht',
        'label_reponse_jyparticipe_peutetre' => 'Ich komem vielleicht',
        'label_vous_inscrire' => 'Ihre Teilnahme',
        'lien_desinscrire' => 'Entfernen',
-       'lien_desinscrire_tous' => 'Supprimer toutes les inscriptions', # NEW
+       'lien_desinscrire_tous' => 'Alle Anmeldungen löschen',
        'lien_retirer_evenement' => 'Löschen',
        'liste_inscrits' => 'Liste der Anmeldungen',
 
@@ -119,7 +130,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        // R
        'repetition' => 'Wiederholung',
        'repetition_de' => 'Wiederholung von',
-       'retour_evenement' => 'Retour à l\'événement', # NEW
+       'retour_evenement' => 'Zurück zum Event',
        'rubrique_activer_agenda' => 'Kalender für diese Rubrik aktivieren',
        'rubrique_dans_une_rubrique_mode_agenda' => 'Diese Rubrik kann den Kalender nutzen, denn sie befindet sich innerhalb einer Rubrik, für die den Kalende nutzen darf.',
        'rubrique_desactiver_agenda' => 'Kalender in dieser Rubrik deaktivieren',
@@ -132,17 +143,17 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'sans_titre' => '(ohne Titel)',
 
        // T
-       'telecharger' => 'Herunterladen', # MODIF
-       'telecharger_oui' => 'Seulement les réponses positives', # NEW
-       'telecharger_toutes' => 'Toutes les réponses', # NEW
-       'telecharger_toutes_tous_evenements' => 'Toutes les réponses aux inscriptions', # NEW
-       'texte_agenda' => 'KALENDER', # MODIF
+       'telecharger' => 'Herunterladen',
+       'telecharger_oui' => 'Nur positive Rückmeldungen',
+       'telecharger_toutes' => 'Alle Rückmeldungen',
+       'telecharger_toutes_tous_evenements' => 'Alle Rückmeldungen zu Anmeldungen',
+       'texte_agenda' => 'KALENDER',
        'texte_evenement_statut' => 'Dieses Event ist',
-       'texte_logo_objet' => 'EVENT-LOGO', # MODIF
+       'texte_logo_objet' => 'EVENT-LOGO',
        'titre_cadre_ajouter_evenement' => 'Event hinzufügen',
        'titre_cadre_modifier_evenement' => 'Event umändern',
        'titre_sur_l_agenda' => 'Im Kalender',
-       'titre_sur_l_agenda_aussi' => 'Et aussi...', # NEW
+       'titre_sur_l_agenda_aussi' => 'Außerdem...',
        'toutes_rubriques' => 'Alle',
 
        // U
index 32a7c1d..747b657 100644 (file)
@@ -25,11 +25,17 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'bouton_supprimer' => 'Delete',
 
        // C
+       'cal_par_jour' => 'day',
+       'cal_par_mois' => 'month',
+       'cal_par_semaine' => 'week',
        'confirm_suppression_inscription' => 'Are you sure you want to delete this registration?',
        'confirm_suppression_inscription_toutes' => 'Do you really want to delete all registrations?',
        'connexion_necessaire_pour_inscription' => 'Please log in to register to this event.',
        'creer_evenement' => 'Create an event',
 
+       // D
+       'date_fmt_agenda_label' => '<b class="month">@mois@</b> <b class="day">@jour@</b> <b class="year">@annee@</b>',
+
        // E
        'erreur_article_interdit' => 'You have no right to associate this event to this article',
        'erreur_article_manquant' => 'You should link to an article',
@@ -53,11 +59,14 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'evenement_descriptif' => 'Description',
        'evenement_horaire' => 'All day',
        'evenement_lieu' => 'Location',
+       'evenement_participant_email_mention' => 'To stay in contact, you should submit your email address. It will not be communicated on the site.',
        'evenement_repetitions' => 'Repetition',
        'evenement_titre' => 'Title',
        'evenements' => 'Events',
        'evenements_a_venir' => 'Next',
        'evenements_depuis_debut' => 'All',
+       'explication_synchro_flux_ical' => 'Plugin Agenda supplies a flow of events in iCal format. Certain clients do not update an event unless a version number (also indicating any modification) is present in the flow. In order to have this number included in the generated iCal flow,  you can activate revisions for events (Configuration menu > Revisions).',
+       'explication_synchro_flux_ical_titre' => 'Synchronisation of iCal flow',
 
        // F
        'fermer' => 'close',
@@ -79,6 +88,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'info_nb_inscrits' => '@nb@ registered',
        'info_nb_mois' => '@nb@ months',
        'info_nb_places' => '@nb@ seats',
+       'info_nb_reponses' => '@nb@ replies',
        'info_nombre_evenements' => '@nb@ events',
        'info_nouvel_evenement' => 'New event',
        'info_reponse_inscription_non' => 'no',
@@ -88,6 +98,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'info_reponses_inscriptions' => 'Answers:',
        'info_un_evenement' => 'One event',
        'info_un_inscrit' => 'One registered',
+       'info_une_reponse' => 'One reply',
        'inscrits' => 'Registrations',
 
        // L
@@ -95,9 +106,9 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'label_inscription' => 'Online registration',
        'label_periode_saison' => 'Season',
        'label_places' => 'Limit the seats number',
-       'label_reponse_jyparticipe' => 'I\'ll be there',
-       'label_reponse_jyparticipe_pas' => 'I won\'t be there',
-       'label_reponse_jyparticipe_peutetre' => 'Maybe I\'ll be there',
+       'label_reponse_jyparticipe' => 'Ill be there',
+       'label_reponse_jyparticipe_pas' => 'I wont be there',
+       'label_reponse_jyparticipe_peutetre' => 'Maybe Ill be there',
        'label_vous_inscrire' => 'Your participation',
        'lien_desinscrire' => 'Remove',
        'lien_desinscrire_tous' => 'Delete all registrations',
@@ -138,7 +149,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'telecharger_toutes_tous_evenements' => 'All answers to registrations',
        'texte_agenda' => 'Agenda',
        'texte_evenement_statut' => 'This event is:',
-       'texte_logo_objet' => 'Event\'s logo',
+       'texte_logo_objet' => 'Events logo',
        'titre_cadre_ajouter_evenement' => 'Add one event',
        'titre_cadre_modifier_evenement' => 'Modify one event',
        'titre_sur_l_agenda' => 'On agenda',
@@ -149,7 +160,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'une_repetition' => '1 repetition',
 
        // V
-       'voir_evenements_rubrique' => 'See this section\'s events'
+       'voir_evenements_rubrique' => 'See this sections events'
 );
 
 ?>
index c598089..36d6360 100644 (file)
@@ -25,11 +25,17 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'bouton_supprimer' => 'Eliminar',
 
        // C
+       'cal_par_jour' => 'día',
+       'cal_par_mois' => 'mes',
+       'cal_par_semaine' => 'semana',
        'confirm_suppression_inscription' => '¿Desea realmente eliminar esta inscripción?',
        'confirm_suppression_inscription_toutes' => '¿Desea realmente eliminar todas las inscripciones?',
-       'connexion_necessaire_pour_inscription' => 'Gracias por <a href=\'#LOGIN_PUBLIC\'>conectarse</a> para poder inscribirse a este evento.',
+       'connexion_necessaire_pour_inscription' => 'Gracias por conectarse para poder inscribirse a este evento.',
        'creer_evenement' => 'Crear un evento',
 
+       // D
+       'date_fmt_agenda_label' => '<b class="day">@jour@</b> <b class="month">@mois@</b> <b class="year">@annee@</b>',
+
        // E
        'erreur_article_interdit' => 'No tiene permiso para asociar este evento a este artículo',
        'erreur_article_manquant' => 'Debe indicar un artículo',
@@ -44,7 +50,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'evenement_date' => 'Fecha',
        'evenement_date_a' => 'a las ',
        'evenement_date_a_immediat' => 'a las ',
-       'evenement_date_au' => 'Al',
+       'evenement_date_au' => 'Al ',
        'evenement_date_de' => 'De ',
        'evenement_date_debut' => 'Fecha de inicio',
        'evenement_date_du' => 'Del ',
@@ -53,11 +59,14 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'evenement_descriptif' => 'Descripción',
        'evenement_horaire' => 'Todo el día',
        'evenement_lieu' => 'Lugar',
+       'evenement_participant_email_mention' => 'Para quedar en contact, indique su dirección mail. No sera publicada en el sitio.',
        'evenement_repetitions' => 'Repeticiones',
        'evenement_titre' => 'Título',
        'evenements' => 'Eventos',
        'evenements_a_venir' => 'Próximos',
        'evenements_depuis_debut' => 'Desde el inicio',
+       'explication_synchro_flux_ical' => 'El plugin Agenda proporciona una fuente de eventos en formato iCal. Algunos clientes sólo actualizan un evento si un número de versión (indicando así que ha habido una actualización) está presente en esta fuente. Para que este número de versión se integre en la fuente iCal generado, debe activar el seguimiento de las revisiones para los eventos (menú Configuración > Revisiones).',
+       'explication_synchro_flux_ical_titre' => 'Sincronización de la fuente iCal',
 
        // F
        'fermer' => 'cerrar',
@@ -79,6 +88,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'info_nb_inscrits' => '@nb@ inscritos',
        'info_nb_mois' => '@nb@ meses',
        'info_nb_places' => '@nb@ plazas',
+       'info_nb_reponses' => '@nb@ respuestas',
        'info_nombre_evenements' => '@nb@ eventos',
        'info_nouvel_evenement' => 'Nuevo evento',
        'info_reponse_inscription_non' => 'no',
@@ -88,6 +98,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'info_reponses_inscriptions' => 'Respuestas:',
        'info_un_evenement' => '1 evento',
        'info_un_inscrit' => 'Un inscrito',
+       'info_une_reponse' => 'Una respuesta',
        'inscrits' => 'Inscripciones',
 
        // L
index f975b6e..8292a7d 100644 (file)
@@ -16,29 +16,35 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'annee_suivante' => 'année suivante',
        'aucun_evenement' => 'aucun événement',
        'aucun_inscrit' => 'Aucun inscrit',
-       'aucune_rubrique_mode_agenda' => 'Par défaut, toutes les rubriques permettent d\'utiliser les événements. Si vous activez le mode agenda sur une ou plusieurs rubriques, la gestion des événements sera limitée a sa branche.',
+       'aucune_rubrique_mode_agenda' => 'Par défaut, toutes les rubriques permettent dutiliser les événements. Si vous activez le mode agenda sur une ou plusieurs rubriques, la gestion des événements sera limitée a sa branche.',
 
        // B
        'bouton_annuler' => 'Annuler',
        'bouton_supprimer' => 'Supprimer',
 
        // C
-       'confirm_suppression_inscription' => 'Voulez-vous vraiment supprimer cette inscription ?',
-       'confirm_suppression_inscription_toutes' => 'Voulez-vous vraiment supprimer toutes les inscriptions ?',
+       'cal_par_jour' => 'jour',
+       'cal_par_mois' => 'mois',
+       'cal_par_semaine' => 'semaine',
+       'confirm_suppression_inscription' => 'Voulez-vous vraiment supprimer cette inscription ?',
+       'confirm_suppression_inscription_toutes' => 'Voulez-vous vraiment supprimer toutes les inscriptions ?',
        'connexion_necessaire_pour_inscription' => 'Merci de vous connecter pour pouvoir vous inscrire à cet événement.',
        'creer_evenement' => 'Créer un événement',
 
+       // D
+       'date_fmt_agenda_label' => '<b class="day">@jour@</b> <b class="month">@mois@</b> <b class="year">@annee@</b>',
+
        // E
-       'erreur_article_interdit' => 'Vous n\'avez pas le droit d\'associer cet événement à cet article',
+       'erreur_article_interdit' => 'Vous n’avez pas le droit d’associer cet événement à cet article',
        'erreur_article_manquant' => 'Vous devez indiquer un article',
        'erreur_date' => 'Cette date est incorrecte',
-       'erreur_date_avant_apres' => 'Indiquez une date de fin après la date de début !',
+       'erreur_date_avant_apres' => 'Indiquez une date de fin après la date de début !',
        'erreur_date_corrigee' => 'La date a été corrigée',
        'erreur_heure' => 'Cette heure est incorrecte',
-       'erreur_heure_corrigee' => 'L\'heure a été corrigée',
+       'erreur_heure_corrigee' => 'Lheure a été corrigée',
        'evenement_adresse' => 'Adresse',
-       'evenement_article' => 'Associé à l\'article',
-       'evenement_autres_occurences' => 'Autres occurences :',
+       'evenement_article' => 'Associé à larticle',
+       'evenement_autres_occurences' => 'Autres occurences :',
        'evenement_date' => 'Date',
        'evenement_date_a' => 'à ',
        'evenement_date_a_immediat' => 'à ',
@@ -47,22 +53,25 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'evenement_date_debut' => 'Date de début',
        'evenement_date_du' => 'Du ',
        'evenement_date_fin' => 'Date de fin',
-       'evenement_date_inscription' => 'Date d\'inscription',
+       'evenement_date_inscription' => 'Date dinscription',
        'evenement_descriptif' => 'Descriptif',
        'evenement_horaire' => 'Toute la journée',
        'evenement_lieu' => 'Lieu',
+       'evenement_participant_email_mention' => 'Pour rester en contact, vous pouvez indiquer votre adresse email. Elle ne sera pas communiquée sur le site.',
        'evenement_repetitions' => 'Répétitions',
        'evenement_titre' => 'Titre',
        'evenements' => 'Événements',
        'evenements_a_venir' => 'À venir',
        'evenements_depuis_debut' => 'Depuis le début',
+       'explication_synchro_flux_ical' => 'Le plugin Agenda fournit un flux des évènements au format iCal. Certains clients ne mettent à jour un évènement que si un numéro de version (indiquant ansi qu’il y a eu modification) est présent dans ce flux. Pour que ce numéro de version soit intégré dans le flux iCal généré, vous devez activer le suivi des révisions pour les évènements (menu Configuration > Révisions).',
+       'explication_synchro_flux_ical_titre' => 'Synchronisation du flux iCal',
 
        // F
        'fermer' => 'fermer',
 
        // I
        'icone_creer_evenement' => 'Créer un nouvel événement',
-       'icone_modifier_evenement' => 'Modifier l\'événement',
+       'icone_modifier_evenement' => 'Modifier lévénement',
        'indiquez_votre_choix' => 'Indiquez votre choix',
        'info_1_mois' => '1 mois',
        'info_1_place' => '1 place',
@@ -77,15 +86,17 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'info_nb_inscrits' => '@nb@ inscrits',
        'info_nb_mois' => '@nb@ mois',
        'info_nb_places' => '@nb@ places',
+       'info_nb_reponses' => '@nb@ réponses',
        'info_nombre_evenements' => '@nb@ événements',
        'info_nouvel_evenement' => 'Nouvel événement',
        'info_reponse_inscription_non' => 'non',
-       'info_reponse_inscription_nsp' => '?',
+       'info_reponse_inscription_nsp' => ' ?',
        'info_reponse_inscription_oui' => 'oui',
        'info_reponse_inscriptions' => 'Réponse',
        'info_reponses_inscriptions' => 'Réponses :',
        'info_un_evenement' => '1 événement',
        'info_un_inscrit' => 'Un inscrit',
+       'info_une_reponse' => 'Une réponse',
        'inscrits' => 'Inscriptions',
 
        // L
@@ -93,9 +104,9 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'label_inscription' => 'Inscription en ligne',
        'label_periode_saison' => 'Saison',
        'label_places' => 'Limiter le nombre de places',
-       'label_reponse_jyparticipe' => 'J\'y serai',
-       'label_reponse_jyparticipe_pas' => 'Je n\'y vais pas',
-       'label_reponse_jyparticipe_peutetre' => 'J\'y serai peut-être',
+       'label_reponse_jyparticipe' => 'Jy serai',
+       'label_reponse_jyparticipe_pas' => 'Je n’y serai pas',
+       'label_reponse_jyparticipe_peutetre' => 'Jy serai peut-être',
        'label_vous_inscrire' => 'Votre participation',
        'lien_desinscrire' => 'Supprimer',
        'lien_desinscrire_tous' => 'Supprimer toutes les inscriptions',
@@ -117,13 +128,13 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        // R
        'repetition' => 'Répétition',
        'repetition_de' => 'Répétition de',
-       'retour_evenement' => 'Retour à l\'événement',
+       'retour_evenement' => 'Retour à lévénement',
        'rubrique_activer_agenda' => 'Activer le mode agenda',
-       'rubrique_dans_une_rubrique_mode_agenda' => 'Cette rubrique permet d\'utiliser les événements car elle est dans une rubrique dont le mode agenda a été activé',
+       'rubrique_dans_une_rubrique_mode_agenda' => 'Cette rubrique permet dutiliser les événements car elle est dans une rubrique dont le mode agenda a été activé',
        'rubrique_desactiver_agenda' => 'Désactiver le mode agenda',
        'rubrique_liste_evenements_de' => 'Événements de la rubrique',
        'rubrique_mode_agenda' => 'Le mode agenda est activé pour cette rubrique et sa branche',
-       'rubrique_sans_gestion_evenement' => 'Le mode agenda n\'est pas activé pour cette rubrique',
+       'rubrique_sans_gestion_evenement' => 'Le mode agenda nest pas activé pour cette rubrique',
        'rubriques' => 'Rubriques Agenda',
 
        // S
@@ -135,11 +146,11 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'telecharger_toutes' => 'Toutes les réponses',
        'telecharger_toutes_tous_evenements' => 'Toutes les réponses aux inscriptions',
        'texte_agenda' => 'Agenda',
-       'texte_evenement_statut' => 'Cet événement est :',
-       'texte_logo_objet' => 'Logo de l\'événement',
+       'texte_evenement_statut' => 'Cet événement est :',
+       'texte_logo_objet' => 'Logo de lévénement',
        'titre_cadre_ajouter_evenement' => 'Ajouter un événement',
        'titre_cadre_modifier_evenement' => 'Modifier un événement',
-       'titre_sur_l_agenda' => 'Sur l\'agenda',
+       'titre_sur_l_agenda' => 'Sur lagenda',
        'titre_sur_l_agenda_aussi' => 'Et aussi...',
        'toutes_rubriques' => 'Toutes',
 
index fabba51..4c8b266 100644 (file)
-<?php\r
-\r
-// Ceci est un fichier langue de SPIP -- This is a SPIP language file\r
-// Produit automatiquement par le plugin LangOnet a partir de la langue source nl\r
-// Module: agenda\r
-// Langue: nl\r
-// Date: 27-05-2011 12:08:10\r
-// Items: 35\r
-\r
-if (!defined('_ECRIRE_INC_VERSION')) return;\r
-\r
-$GLOBALS[$GLOBALS['idx_lang']] = array(\r
-\r
-// A\r
-       'activite_editoriale' => 'Hoofdactiviteit',\r
-       'ajouter_un_evenement' => 'een gebeurtenis toevoegen aan dit artikel',\r
-// B\r
-       'bouton_annuler' => 'Annuleren',\r
-       'bouton_supprimer' => 'Afschaffen',\r
-// E\r
-       'evenement_autres_occurences' => 'Andere omstandigheden:',\r
-       'evenement_date' => 'Date',\r
-       'evenement_date_a' => 'tot ',\r
-       'evenement_date_a_immediat' => 'om ',\r
-       'evenement_date_au' => 'Tot ',\r
-       'evenement_date_de' => 'Van ',\r
-       'evenement_date_debut' => 'Aanvangsdatum',\r
-       'evenement_date_du' => 'Van ',\r
-       'evenement_date_fin' => 'Einddatum',\r
-       'evenement_descriptif' => 'Beschrijvend',\r
-       'evenement_horaire' => 'Dienstregeling',\r
-       'evenement_lieu' => 'Plaats',\r
-       'evenement_repetitions' => 'Herhalingen',\r
-       'evenement_titre' => 'Titel',\r
-       'evenements' => 'Gebeurtenissen',\r
-// I\r
-       'icone_creer_evenement' => 'Een nieuwe gebeurtenis creëren',\r
-       'info_evenements' => 'Gebeurtenissen',\r
-       'info_nombre_evenements' => '@nb@ gebeurtenissen,',\r
-       'info_un_evenement' => 'een gebeurtenis,',\r
-       'item_mots_cles_association_evenements' => 'aan de gebeurtenissen',\r
-// L\r
-       'lien_retirer_evenement' => 'Afschaffen',\r
-// N\r
-       'nb_mots_clefs' => '@nb@ trefwoorden',\r
-       'nb_repetitions' => '@nb@ herhalingen',\r
-// R\r
-       'repetition_de' => 'Herhaling van',\r
-// S\r
-       'sans_titre' => '(zonder titel)',\r
-// T\r
-       'texte_agenda' => 'AGENDA',\r
-       'titre_cadre_ajouter_evenement' => 'Een gebeurtenis toevoegen',\r
-       'titre_cadre_modifier_evenement' => 'Een gebeurtenis wijzigen',\r
-       'titre_sur_l_agenda' => 'Op de agenda',\r
-// U\r
-       'un_mot_clef' => '1 trefwoord',\r
-       'une_repetition' => '1 herhaling',\r
-);\r
-?>
\ No newline at end of file
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/agenda?lang_cible=nl
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'absence_prise_en_compte' => 'Je afwezigheid is genoteerd',
+       'activite_editoriale' => 'Aanpassingen inhoud',
+       'afficher_calendrier' => 'De kalender tonen',
+       'agenda' => 'Agenda',
+       'ajouter_repetition' => 'Herhalingen toevoegen',
+       'ajouter_un_evenement' => 'een gebeurtenis aan dit artikel toevoegen',
+       'annee_precedente' => 'vorig jaar',
+       'annee_suivante' => 'volgend jaar',
+       'aucun_evenement' => 'geen gebeurtenissen',
+       'aucun_inscrit' => 'Geen inschrijvingen',
+       'aucune_rubrique_mode_agenda' => 'Standaard kunnen aan elke rubriek gebeurtenissen worden toegevoegd.',
+
+       // B
+       'bouton_annuler' => 'Annuleren',
+       'bouton_supprimer' => 'Verwijderen',
+
+       // C
+       'cal_par_jour' => 'dag',
+       'cal_par_mois' => 'maand',
+       'cal_par_semaine' => 'week',
+       'confirm_suppression_inscription' => 'Wil je deze inschrijving werkelijk verwijderen?',
+       'confirm_suppression_inscription_toutes' => 'Wil je werkelijk alle inschrijvingen verwijderen?',
+       'connexion_necessaire_pour_inscription' => 'Je moet <a href=\'#LOGIN_PUBLIC\'>hier inloggen</a> om je te kunnen inschrijven.',
+       'creer_evenement' => 'Een gebeurtenis maken',
+
+       // D
+       'date_fmt_agenda_label' => '<b class="day">@jour@</b> <b class="month">@mois@</b> <b class="year">@annee@</b>',
+
+       // E
+       'erreur_article_interdit' => 'Je mag deze gebeurtenis niet aan dit artikel koppelen',
+       'erreur_article_manquant' => 'Je moet een artikel aangeven',
+       'erreur_date' => 'Deze datum is onjuist',
+       'erreur_date_avant_apres' => 'Kies een einddatum die na de begindatum ligt!',
+       'erreur_date_corrigee' => 'De datum is aangepast',
+       'erreur_heure' => 'Dit tijdstip is onjuist',
+       'erreur_heure_corrigee' => 'Het tijdstip is aangepast',
+       'evenement_adresse' => 'Adres',
+       'evenement_article' => 'Gekoppeld aan artikel',
+       'evenement_autres_occurences' => 'Andere tijdstippen:',
+       'evenement_date' => 'Datum',
+       'evenement_date_a' => '<br>tot ',
+       'evenement_date_a_immediat' => 'om ',
+       'evenement_date_au' => 'Tot ',
+       'evenement_date_de' => 'Van ',
+       'evenement_date_debut' => 'Begindatum',
+       'evenement_date_du' => 'Van ',
+       'evenement_date_fin' => 'Einddatum',
+       'evenement_date_inscription' => 'Inschrijfdatum',
+       'evenement_descriptif' => 'Omschrijving',
+       'evenement_horaire' => 'De hele dag',
+       'evenement_lieu' => 'Plaats',
+       'evenement_participant_email_mention' => 'Om in contact te blijven moet je je emailadres vermelden. Deze zal niet op de site worden vermeld.',
+       'evenement_repetitions' => 'Herhalingen',
+       'evenement_titre' => 'Titel',
+       'evenements' => 'Evenementen',
+       'evenements_a_venir' => 'Toekomstig',
+       'evenements_depuis_debut' => 'Alles',
+       'explication_synchro_flux_ical' => 'Plugin Agenda levert een stroom evenementen in iCal formaat. Sommige clients passen een evenement alleen aan bij een gewijzigd versienummer. Om dit nummer in de iCal flux te integreren, moet je de revisie optie voor evenementen inschakelen (menu Configuratie > Revisies).',
+       'explication_synchro_flux_ical_titre' => 'Synchronisatie van de iCal-flux',
+
+       // F
+       'fermer' => 'sluiten',
+
+       // I
+       'icone_creer_evenement' => 'Maak een nieuwe gebeurtenis',
+       'icone_modifier_evenement' => 'Evenement aanpassen',
+       'indiquez_votre_choix' => 'Maak een keuze',
+       'info_1_mois' => '1 maand',
+       'info_1_place' => '1 plaats',
+       'info_aucun_evenement' => 'Geen enkel evenement',
+       'info_evenement' => 'Evenement',
+       'info_evenement_poubelle' => 'Verwijderd evenement',
+       'info_evenement_propose' => 'Voorgesteld evenement',
+       'info_evenement_publie' => 'Gepubliceerd evenement',
+       'info_evenements' => 'Evenementen',
+       'info_inscription' => 'Online inschrijving:',
+       'info_lieu' => 'Plaats:',
+       'info_nb_inscrits' => '@nb@ inschrijvingen',
+       'info_nb_mois' => '@nb@ maanden',
+       'info_nb_places' => '@nb@ plaatsen',
+       'info_nb_reponses' => '@nb@ antwoorden',
+       'info_nombre_evenements' => '@nb@ gebeurtenissen',
+       'info_nouvel_evenement' => 'Nieuw evenement',
+       'info_reponse_inscription_non' => 'nee',
+       'info_reponse_inscription_nsp' => '?',
+       'info_reponse_inscription_oui' => 'ja',
+       'info_reponse_inscriptions' => 'Reactie',
+       'info_reponses_inscriptions' => 'Reacties:',
+       'info_un_evenement' => '1 gebeurtenis',
+       'info_un_inscrit' => '1 inschrijving',
+       'info_une_reponse' => 'Eén antwoord',
+       'inscrits' => 'Inschrijvingen',
+
+       // L
+       'label_annee' => 'Jaar',
+       'label_inscription' => 'Online inschrijven',
+       'label_periode_saison' => 'Seizoen',
+       'label_places' => 'Aantal plaatsen beperken',
+       'label_reponse_jyparticipe' => 'Ik kom zeker',
+       'label_reponse_jyparticipe_pas' => 'Ik kom niet',
+       'label_reponse_jyparticipe_peutetre' => 'Ik kom misschien',
+       'label_vous_inscrire' => 'Je inschrijving',
+       'lien_desinscrire' => 'Uitschrijven',
+       'lien_desinscrire_tous' => 'Alle inschrijvingen verwijderen',
+       'lien_retirer_evenement' => 'Verwijderen',
+       'liste_inscrits' => 'Lijst van inschrijvingen',
+
+       // M
+       'mois_precedent' => 'vorige maand',
+       'mois_suivant' => 'volgende maand',
+
+       // N
+       'nb_repetitions' => '@nb@ herhalingen',
+
+       // P
+       'participation_incertaine_prise_en_compte' => 'Je eventuele deelname is geregistreerd',
+       'participation_prise_en_compte' => 'Je deelname is geregistreerd',
+       'probleme_technique' => 'Er is een technisch probleem. Probeer het later nog eens.',
+
+       // R
+       'repetition' => 'Herhaling',
+       'repetition_de' => 'Herhaling van',
+       'retour_evenement' => 'Terug naar het evenement',
+       'rubrique_activer_agenda' => 'Activeer de agenda voor deze rubriek',
+       'rubrique_dans_une_rubrique_mode_agenda' => 'In deze rubriek kunnen gebeurtenissen worden gebruikt, want de agenda-functionaliteit is voor de hoofdrubriek geactiveerd',
+       'rubrique_desactiver_agenda' => 'Desactiveer de agenda voor deze rubriek',
+       'rubrique_liste_evenements_de' => 'Evenementen van de rubriek',
+       'rubrique_mode_agenda' => 'De agenda is voor deze rubriek en subrubrieken geactiveerd',
+       'rubrique_sans_gestion_evenement' => 'In deze rubriek kunnen geen gebeurtenissen worden gebruikt',
+       'rubriques' => 'Agenda Rubrieken',
+
+       // S
+       'sans_titre' => '(geen titel)',
+
+       // T
+       'telecharger' => 'Downloaden (csv)',
+       'telecharger_oui' => 'Alleen positieve reacties',
+       'telecharger_toutes' => 'Alle reacties',
+       'telecharger_toutes_tous_evenements' => 'Alle reacties op alle evenementen',
+       'texte_agenda' => 'AGENDA',
+       'texte_evenement_statut' => 'Dit evenement is:',
+       'texte_logo_objet' => 'Logo van het evenement',
+       'titre_cadre_ajouter_evenement' => 'Een gebeurtenis toevoegen',
+       'titre_cadre_modifier_evenement' => 'Een gebeurtenis aanpassen',
+       'titre_sur_l_agenda' => 'Binnenkort...',
+       'titre_sur_l_agenda_aussi' => 'En ook...',
+       'toutes_rubriques' => 'Alles',
+
+       // U
+       'une_repetition' => '1 herhaling',
+
+       // V
+       'voir_evenements_rubrique' => 'Bekijk de gebeurtenissen van de rubriek'
+);
+
+?>
diff --git a/www/plugins/agenda_3_5/lang/agenda_ru.php b/www/plugins/agenda_3_5/lang/agenda_ru.php
new file mode 100644 (file)
index 0000000..eb3aca5
--- /dev/null
@@ -0,0 +1,166 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/agenda?lang_cible=ru
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'absence_prise_en_compte' => 'Записано, что вас не будет',
+       'activite_editoriale' => 'Редакционная активность',
+       'afficher_calendrier' => 'Показать календарь',
+       'agenda' => 'Расписание',
+       'ajouter_repetition' => 'Добавить репетиции',
+       'ajouter_un_evenement' => 'добавить событие к этой статье',
+       'annee_precedente' => 'предыдущий год',
+       'annee_suivante' => 'следующий год',
+       'aucun_evenement' => 'нет событий',
+       'aucun_inscrit' => 'Нет зарегистированных',
+       'aucune_rubrique_mode_agenda' => 'По умолчанию можно использовать события во всех рубриках. Если вы установите режим расписания в одной (или нескольких) рубриках, управление событиями ограничиться только её (или их) подрубриками.',
+
+       // B
+       'bouton_annuler' => 'Отменить',
+       'bouton_supprimer' => 'Удалить',
+
+       // C
+       'cal_par_jour' => 'день',
+       'cal_par_mois' => 'месяц',
+       'cal_par_semaine' => 'неделя',
+       'confirm_suppression_inscription' => 'Вы действительно хотите удалить эту регистрацию?',
+       'confirm_suppression_inscription_toutes' => 'Вы действительно хотите удалить все регистрации?',
+       'connexion_necessaire_pour_inscription' => 'Войдите, пожалуйста, прежде чем зарегистрироваться на это мероприятии.',
+       'creer_evenement' => 'Создать событие',
+
+       // D
+       'date_fmt_agenda_label' => '<b class="day">@jour@</b> <b class="month">@mois@</b> <b class="year">@annee@</b>',
+
+       // E
+       'erreur_article_interdit' => 'У вас нет прав присоединить это событие к этой статье',
+       'erreur_article_manquant' => 'Вы должны указать статью',
+       'erreur_date' => 'Дата неверна',
+       'erreur_date_avant_apres' => 'Укажите дату окончания после даты начала!',
+       'erreur_date_corrigee' => 'Дата изменена',
+       'erreur_heure' => 'Время неправильное',
+       'erreur_heure_corrigee' => 'Время изменено',
+       'evenement_adresse' => 'Адрес',
+       'evenement_article' => 'Связь со статьей',
+       'evenement_autres_occurences' => 'Другие случаи:',
+       'evenement_date' => 'Дата',
+       'evenement_date_a' => 'до ',
+       'evenement_date_a_immediat' => 'для ',
+       'evenement_date_au' => 'До ',
+       'evenement_date_de' => 'От',
+       'evenement_date_debut' => 'Дата начала',
+       'evenement_date_du' => 'От',
+       'evenement_date_fin' => 'Дата окончания',
+       'evenement_date_inscription' => 'Дата регистрации',
+       'evenement_descriptif' => 'Описание',
+       'evenement_horaire' => 'Все дни',
+       'evenement_lieu' => 'Место',
+       'evenement_participant_email_mention' => 'Чтобы оставаться на связи, просто введите свой адрес электронной почты. Он не будет указан на сайте.',
+       'evenement_repetitions' => 'Репетиции',
+       'evenement_titre' => 'Заголовок',
+       'evenements' => 'События',
+       'evenements_a_venir' => 'Следующее',
+       'evenements_depuis_debut' => 'С начала',
+       'explication_synchro_flux_ical' => 'Плагин расписания поддерживает поток событий в формате iCal. Некоторые клиенты не обновляют события, если номер версии (или указание других модификаций) отсутствует в этом потоке. Чтобы получить этот номер версии, встроенный в генерируемый iCal поток, необходимо активировать слежение за событиями (меню Конфигурация> Изменения).',
+       'explication_synchro_flux_ical_titre' => 'Синхронизация потока iCal',
+
+       // F
+       'fermer' => 'закрыто',
+
+       // I
+       'icone_creer_evenement' => 'Создать новое событие',
+       'icone_modifier_evenement' => 'Редактировать событие',
+       'indiquez_votre_choix' => 'Укажите свой выбор',
+       'info_1_mois' => '1 месяц',
+       'info_1_place' => '1 место',
+       'info_aucun_evenement' => 'Нет событий',
+       'info_evenement' => 'Событие',
+       'info_evenement_poubelle' => 'Событие удалено',
+       'info_evenement_propose' => 'Событие предложено',
+       'info_evenement_publie' => 'Событие опубликовано',
+       'info_evenements' => 'События',
+       'info_inscription' => 'Он-лайн регистрация:',
+       'info_lieu' => 'Место:',
+       'info_nb_inscrits' => '@nb@ зарегистрировались',
+       'info_nb_mois' => '@nb@ месяцев',
+       'info_nb_places' => '@nb@ мест',
+       'info_nb_reponses' => '@nb@ ответов',
+       'info_nombre_evenements' => '@nb@ событий',
+       'info_nouvel_evenement' => 'Новое событие',
+       'info_reponse_inscription_non' => 'нет',
+       'info_reponse_inscription_nsp' => ' ?',
+       'info_reponse_inscription_oui' => 'да',
+       'info_reponse_inscriptions' => 'Ответ',
+       'info_reponses_inscriptions' => 'Ответы:',
+       'info_un_evenement' => 'Одно событие',
+       'info_un_inscrit' => 'Один зарегистрировавшийся',
+       'info_une_reponse' => 'Один ответ',
+       'inscrits' => 'Регистрации',
+
+       // L
+       'label_annee' => 'Год',
+       'label_inscription' => 'Он-лайн регистрация',
+       'label_periode_saison' => 'Сезон',
+       'label_places' => 'Лимит мест',
+       'label_reponse_jyparticipe' => 'Я буду',
+       'label_reponse_jyparticipe_pas' => 'Меня не будет',
+       'label_reponse_jyparticipe_peutetre' => 'Возможно я буду',
+       'label_vous_inscrire' => 'Ваше участие',
+       'lien_desinscrire' => 'Удалить',
+       'lien_desinscrire_tous' => 'Удалить все регистрации',
+       'lien_retirer_evenement' => 'Удалено',
+       'liste_inscrits' => 'Список регистраций',
+
+       // M
+       'mois_precedent' => 'предыдущий месяц',
+       'mois_suivant' => 'следующий месяц',
+
+       // N
+       'nb_repetitions' => '@nb@ репетиций',
+
+       // P
+       'participation_incertaine_prise_en_compte' => 'Ваше возможное участие записано',
+       'participation_prise_en_compte' => 'Ваше участие записано',
+       'probleme_technique' => 'Произошла техническая проблема. Попробуйте еще раз позже.',
+
+       // R
+       'repetition' => 'Репетиция',
+       'repetition_de' => 'Репетиция ',
+       'retour_evenement' => 'Вернуться к событию',
+       'rubrique_activer_agenda' => 'Активировать режим расписания',
+       'rubrique_dans_une_rubrique_mode_agenda' => 'В этой рубрике можно использовать события, так как она находится в разделе, для которого  включено расписание',
+       'rubrique_desactiver_agenda' => 'Отключить режим расписания для этой рубрики',
+       'rubrique_liste_evenements_de' => 'События в этой рубрике',
+       'rubrique_mode_agenda' => 'Режим расписания доступен для этой рубрики и её подрубрик',
+       'rubrique_sans_gestion_evenement' => 'Режим расписания недоступен для этой рубрики',
+       'rubriques' => 'Рубрики Расписания',
+
+       // S
+       'sans_titre' => '(без заголовка)',
+
+       // T
+       'telecharger' => 'Загрузить (csv)',
+       'telecharger_oui' => 'Только положительные ответы',
+       'telecharger_toutes' => 'Все ответы',
+       'telecharger_toutes_tous_evenements' => 'Все ответы на записи',
+       'texte_agenda' => 'Расписание',
+       'texte_evenement_statut' => 'Это событие:',
+       'texte_logo_objet' => 'Логотип события',
+       'titre_cadre_ajouter_evenement' => 'Добавить событие',
+       'titre_cadre_modifier_evenement' => 'Изменить событие',
+       'titre_sur_l_agenda' => 'В расписании',
+       'titre_sur_l_agenda_aussi' => 'А также...',
+       'toutes_rubriques' => 'Все',
+
+       // U
+       'une_repetition' => '1 репетиция',
+
+       // V
+       'voir_evenements_rubrique' => 'Просмотреть события этой рубрики'
+);
+
+?>
index 45c6b68..3c815b3 100644 (file)
@@ -25,11 +25,17 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'bouton_supprimer' => 'Odstrániť',
 
        // C
+       'cal_par_jour' => 'deň',
+       'cal_par_mois' => 'mesiac',
+       'cal_par_semaine' => 'týždeň',
        'confirm_suppression_inscription' => 'Chcete odstrániť tento údaj?',
        'confirm_suppression_inscription_toutes' => 'Naozaj chcete vymazať všetky prihlásenia?',
        'connexion_necessaire_pour_inscription' => 'Ďakujeme vám, že sa prihlásite predtým, ako sa zaregistrujete na túto udalosť.',
        'creer_evenement' => 'Vytvoriť udalosť',
 
+       // D
+       'date_fmt_agenda_label' => '<b class="day">@jour@</b> <b class="month">@mois@</b> <b class="year">@annee@</b>',
+
        // E
        'erreur_article_interdit' => 'Nemáte dostatočné práva na to, aby ste mohli priradiť túto udalosť k tomuto článku',
        'erreur_article_manquant' => 'Musíte uviesť článok',
@@ -50,14 +56,17 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'evenement_date_du' => 'Od ',
        'evenement_date_fin' => 'Dátum ukončenia',
        'evenement_date_inscription' => 'Dátum prihlásenia',
-       'evenement_descriptif' => 'Popis',
+       'evenement_descriptif' => 'Opis',
        'evenement_horaire' => 'Celý deň',
        'evenement_lieu' => 'Miesto',
+       'evenement_participant_email_mention' => 'Ak chcete mať prehľad o tom, čo sa deje, zadajte svoju e-mailovú adresu. Nebude zverejnená na stránke.',
        'evenement_repetitions' => 'Opakovania',
-       'evenement_titre' => 'Nadpis',
+       'evenement_titre' => 'Titulok',
        'evenements' => 'Udalosti',
        'evenements_a_venir' => 'Budúce',
        'evenements_depuis_debut' => 'od začiatku',
+       'explication_synchro_flux_ical' => 'Zásuvný modul Kalendár udalostí poskytuje výpis zoznamu udalostí vo formáte iCal. Niektoré programy aktualizujú udalosti, iba ak  je pri nich uvedené číslo verzie (a to, že nastala zmena). Na to, aby bolo toto číslo verzie zavedené do vygenerovaného zdroja iCal, treba aktivovať sledovanie zmien pre udalosti (menu Konfigurácia > Zmeny).',
+       'explication_synchro_flux_ical_titre' => 'Synchronizácia zdroja iCal',
 
        // F
        'fermer' => 'zatvoriť',
@@ -79,6 +88,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'info_nb_inscrits' => '@nb@ prihlásení',
        'info_nb_mois' => '@nb@ mesiac',
        'info_nb_places' => '@nb@ miest',
+       'info_nb_reponses' => '@nb@ odpovedí',
        'info_nombre_evenements' => '@nb@ udalostí',
        'info_nouvel_evenement' => 'Nová udalosť',
        'info_reponse_inscription_non' => 'nie',
@@ -88,6 +98,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'info_reponses_inscriptions' => 'Reakcie:',
        'info_un_evenement' => '1 udalosť',
        'info_un_inscrit' => 'Jedno prihlásenie',
+       'info_une_reponse' => 'Jedna odpoveď',
        'inscrits' => 'Registrácie',
 
        // L
@@ -96,7 +107,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'label_periode_saison' => 'Ročné obdobie',
        'label_places' => 'Obmedziť počet miest',
        'label_reponse_jyparticipe' => 'Budem tam',
-       'label_reponse_jyparticipe_pas' => 'Neprídem',
+       'label_reponse_jyparticipe_pas' => 'Nebudem tam',
        'label_reponse_jyparticipe_peutetre' => 'Možno prídem',
        'label_vous_inscrire' => 'Vaša účasť',
        'lien_desinscrire' => 'Odstrániť',
@@ -129,7 +140,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'rubriques' => 'Rubriky s kalendárom udalostí',
 
        // S
-       'sans_titre' => '(bez nadpisu)',
+       'sans_titre' => '(bez titulku)',
 
        // T
        'telecharger' => 'Stiahnuť (csv)',
diff --git a/www/plugins/agenda_3_5/lang/configureragenda.xml b/www/plugins/agenda_3_5/lang/configureragenda.xml
new file mode 100644 (file)
index 0000000..adaba15
--- /dev/null
@@ -0,0 +1,7 @@
+<traduction module="configureragenda" gestionnaire="salvatore" url="http://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/agenda/trunk/lang/" reference="fr">
+       <langue code="fr" url="http://trad.spip.net/tradlang_module/configureragenda?lang_cible=fr" total="18" traduits="18" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+       </langue>
+       <langue code="nl" url="http://trad.spip.net/tradlang_module/configureragenda?lang_cible=nl" total="18" traduits="18" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="Hanjo" lien="http://trad.spip.net/auteur/hanjo" />
+       </langue>
+</traduction>
index a2d6724..b8d18be 100644 (file)
@@ -5,26 +5,27 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
 
 $GLOBALS[$GLOBALS['idx_lang']] = array(
 
-
-       'titre_configuration' => 'Affichage de l\'Agenda',
-       'label_titre' => 'Titre de la page',
-       'label_descriptif' => 'Descriptif',
-       'label_insert_head_css_1' => 'Insérer automatiquement les styles par défaut de l\'agenda',
-       'label_url_evenement' => 'Affichage d\'un événement',
-       'label_url_evenement_article' => 'sur la page de l\'article associé',
-       'label_url_evenement_evenement' => 'sur une page dédiée pour chaque événement',
-       'label_affichage_duree' => 'Lister les événements sur',
+       // L
        'label_affichage_debut' => 'Début de la liste',
        'label_affichage_debut_date_jour' => 'Date du jour',
        'label_affichage_debut_date_veille' => 'Date de la veille',
-       'label_affichage_debut_debut_semaine' => 'Début de la semaine',
-       'label_affichage_debut_debut_semaine_prec' => 'Début de la semaine précédente',
        'label_affichage_debut_debut_mois' => 'Début du mois',
+       'label_affichage_debut_debut_mois_1' => 'Début d’année',
        'label_affichage_debut_debut_mois_prec' => 'Début du mois précédent',
-       'label_affichage_debut_debut_mois_1' => 'Début d\'année',
+       'label_affichage_debut_debut_semaine' => 'Début de la semaine',
+       'label_affichage_debut_debut_semaine_prec' => 'Début de la semaine précédente',
        'label_affichage_debut_mois_passe' => '@mois@ précédent',
+       'label_affichage_duree' => 'Lister les événements sur',
+       'label_descriptif' => 'Descriptif',
+       'label_insert_head_css_1' => 'Insérer automatiquement les styles par défaut de l’agenda',
+       'label_titre' => 'Titre de la page',
+       'label_url_evenement' => 'Affichage d’un événement',
+       'label_url_evenement_article' => 'sur la page de l’article associé',
+       'label_url_evenement_evenement' => 'sur une page dédiée pour chaque événement',
+       'legend_presentation_agenda' => 'Présentation de l’agenda',
 
-       'legend_presentation_agenda' => 'Présentation de l\'agenda',
+       // T
+       'titre_configuration' => 'Affichage de l’Agenda'
 );
 
 ?>
diff --git a/www/plugins/agenda_3_5/lang/configureragenda_nl.php b/www/plugins/agenda_3_5/lang/configureragenda_nl.php
new file mode 100644 (file)
index 0000000..3e0f62e
--- /dev/null
@@ -0,0 +1,33 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/configureragenda?lang_cible=nl
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // L
+       'label_affichage_debut' => 'Begin van de lijst',
+       'label_affichage_debut_date_jour' => 'Huidige datum',
+       'label_affichage_debut_date_veille' => 'Voorafgaande datum',
+       'label_affichage_debut_debut_mois' => 'Begin van de maand',
+       'label_affichage_debut_debut_mois_1' => 'Begin van het jaar',
+       'label_affichage_debut_debut_mois_prec' => 'Begin van de voorafgaande maand',
+       'label_affichage_debut_debut_semaine' => 'Begin van de week',
+       'label_affichage_debut_debut_semaine_prec' => 'Begin van de voorafgaande week',
+       'label_affichage_debut_mois_passe' => '@mois@ vooraf',
+       'label_affichage_duree' => 'De evenementen opsommen op',
+       'label_descriptif' => 'Omschrijving',
+       'label_insert_head_css_1' => 'Automatisch de standaardstijlen van de agenda invoegen',
+       'label_titre' => 'Paginatitel',
+       'label_url_evenement' => 'Weergave van een evenement',
+       'label_url_evenement_article' => 'op de pagina van het bijbehorende artikel',
+       'label_url_evenement_evenement' => 'op een eigen pagina voor ieder evenement',
+       'legend_presentation_agenda' => 'Presentatie van de agenda',
+
+       // T
+       'titre_configuration' => 'Weergave van de Agenda'
+);
+
+?>
diff --git a/www/plugins/agenda_3_5/lang/migreragenda.xml b/www/plugins/agenda_3_5/lang/migreragenda.xml
new file mode 100644 (file)
index 0000000..efd7d32
--- /dev/null
@@ -0,0 +1,4 @@
+<traduction module="migreragenda" gestionnaire="salvatore" url="http://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/agenda/trunk/lang/" reference="fr">
+       <langue code="fr" url="http://trad.spip.net/tradlang_module/migreragenda?lang_cible=fr" total="19" traduits="19" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+       </langue>
+</traduction>
index e1d0482..0c2283f 100644 (file)
@@ -5,31 +5,36 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
 
 $GLOBALS[$GLOBALS['idx_lang']] = array(
 
-       'titre_migrer_agenda' => 'Migrer un Agenda d\'articles',
+       // B
+       'bouton_lancer_migration' => 'Lancer la migration',
+       'bouton_migrer' => 'Prévisualiser la migration',
+
+       // E
+       'erreur_choix_incorrect' => 'Ce choix n’est pas permis',
        'explication_migration_agenda_article_1' => 'Si votre site contient un agenda basé sur des articles,
 vous pouvez utiliser cet outil pour le transformer automatiquement en événements.',
        'explication_migration_agenda_article_2' => 'Dans la rubrique agenda sélectionnée, un événement sera créé et renseigné pour dater chaque article, selon les réglages ci-dessous.',
-       'explication_migration_agenda_article_fin' => 'Seuls les articles publiés et n\'ayant pas déjà d\'événement seront migrés.
-       Aucune donnée ne sera supprimée sur les articles : si le résultat ne vous convient pas, il suffit de désinstaller le plugin Agenda pour retrouver votre rubrique comme avant la migration.',
+       'explication_migration_agenda_article_fin' => 'Seuls les articles publiés et n’ayant pas déjà d’événement seront migrés.
+       Aucune donnée ne sera supprimée sur les articles : si le résultat ne vous convient pas, il suffit de désinstaller le plugin Agenda pour retrouver votre rubrique comme avant la migration.',
 
-       'label_rubrique_source' => 'Rubrique Agenda à migrer',
-       'label_toute_la_branche_oui' => 'Migrer aussi toutes les sous-rubriques',
+       // I
+       'info_migration_articles' => 'Articles à migrer :',
+       'info_migration_articles_reussi' => 'Articles migrés :',
+
+       // L
+       'label_champ_date' => 'Date de publication',
        'label_champ_date_debut' => 'Date de début',
        'label_champ_date_fin' => 'Date de fin',
-       'label_champ_date' => 'Date de publication',
        'label_champ_date_redac' => 'Date de rédaction antérieure',
-       'label_horaire' => 'Horaire',
-       'label_horaire_oui' => 'Prendre en compte l\'heure',
-       'label_horaire_non' => 'Pas d\'horaire (événements par journées)',
        'label_groupes_mots' => 'Associer les mots des groupes suivants',
-       'bouton_migrer' => 'Prévisualiser la migration',
-       'bouton_lancer_migration' => 'Lancer la migration',
-
-       'erreur_choix_incorrect' => 'Ce choix n\'est pas permis',
-
-       'info_migration_articles' => "Articles à migrer :",
-       'info_migration_articles_reussi' => "Articles migrés :",
+       'label_horaire' => 'Horaire',
+       'label_horaire_non' => 'Pas d’horaire (événements par journées)',
+       'label_horaire_oui' => 'Prendre en compte l’heure',
+       'label_rubrique_source' => 'Rubrique Agenda à migrer',
+       'label_toute_la_branche_oui' => 'Migrer aussi toutes les sous-rubriques',
 
+       // T
+       'titre_migrer_agenda' => 'Migrer un Agenda d’articles'
 );
 
 ?>
index cac2b72..ddaae5b 100644 (file)
@@ -1,12 +1,19 @@
 <traduction module="paquet-agenda" gestionnaire="salvatore" url="http://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/agenda/trunk/lang/" reference="fr">
-       <langue code="en" url="http://trad.spip.net/tradlang_module/paquet-agenda?lang_cible=en">
+       <langue code="en" url="http://trad.spip.net/tradlang_module/paquet-agenda?lang_cible=en" total="3" traduits="3" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
                <traducteur nom="kent1" lien="http://trad.spip.net/auteur/kent1" />
        </langue>
-       <langue code="es" url="http://trad.spip.net/tradlang_module/paquet-agenda?lang_cible=es">
-               <traducteur nom="Raquel S. Bujaldón" lien="http://trad.spip.net/auteur/raquel" />
+       <langue code="es" url="http://trad.spip.net/tradlang_module/paquet-agenda?lang_cible=es" total="3" traduits="3" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="Raquel S. Bujaldón" lien="http://trad.spip.net/auteur/raquel-s-bujaldon" />
        </langue>
-       <langue code="fr" />
-       <langue code="sk" url="http://trad.spip.net/tradlang_module/paquet-agenda?lang_cible=sk">
+       <langue code="fr" url="http://trad.spip.net/tradlang_module/paquet-agenda?lang_cible=fr" total="3" traduits="3" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+       </langue>
+       <langue code="nl" url="http://trad.spip.net/tradlang_module/paquet-agenda?lang_cible=nl" total="3" traduits="3" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="Hanjo" lien="http://trad.spip.net/auteur/hanjo" />
+       </langue>
+       <langue code="ru" url="http://trad.spip.net/tradlang_module/paquet-agenda?lang_cible=ru" total="3" traduits="3" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="olly" lien="http://trad.spip.net/auteur/olly" />
+       </langue>
+       <langue code="sk" url="http://trad.spip.net/tradlang_module/paquet-agenda?lang_cible=sk" total="3" traduits="3" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
                <traducteur nom="jaro" lien="http://trad.spip.net/auteur/jaro" />
        </langue>
 </traduction>
diff --git a/www/plugins/agenda_3_5/lang/paquet-agenda_nl.php b/www/plugins/agenda_3_5/lang/paquet-agenda_nl.php
new file mode 100644 (file)
index 0000000..f21f2f3
--- /dev/null
@@ -0,0 +1,16 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/paquet-agenda?lang_cible=nl
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'agenda_description' => 'Evenementenagenda',
+       'agenda_nom' => 'Agenda',
+       'agenda_slogan' => 'Evenementenagenda'
+);
+
+?>
diff --git a/www/plugins/agenda_3_5/lang/paquet-agenda_ru.php b/www/plugins/agenda_3_5/lang/paquet-agenda_ru.php
new file mode 100644 (file)
index 0000000..af65ce0
--- /dev/null
@@ -0,0 +1,16 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/paquet-agenda?lang_cible=ru
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'agenda_description' => 'События в расписании',
+       'agenda_nom' => 'Расписание (Порядок дня)',
+       'agenda_slogan' => 'События в расписании'
+);
+
+?>
index 1c4818b..875a0d9 100644 (file)
@@ -1,28 +1,29 @@
 <paquet
        prefix="agenda"
        categorie="date"
-       version="3.11.8"
+       version="3.14.12"
        etat="stable"
-       compatibilite="[3.0.0;3.0.*]"
+       compatibilite="[3.0.0;3.1.*]"
        logo="prive/themes/spip/images/evenement-32.png"
-       schema="0.25.0"
-       documentation="http://www.spip-contrib.net/article2858"
+       schema="0.27.0"
+       documentation="http://contrib.spip.net/article2858"
 >      
 
        <nom>Agenda</nom>
        <!-- Agenda Evenementiel -->
 
        <auteur lien="http://www.yterium.net">Cedric MORIN</auteur>
-       <auteur lien="http://www.spip-contrib.net/b_b">b_b</auteur>
-       <auteur lien="http://romy.tetue.net">romy.tetue.net</auteur>
+       <auteur lien="http://contrib.spip.net/b_b">b_b</auteur>
+       <auteur lien="http://spip.tetue.net">Tetue</auteur>
        <auteur lien="http://www.cahri.com">Julien Tessier</auteur>
 
-       <copyright>2006-2012</copyright>
+       <copyright>2006-2015</copyright>
 
        <licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL 3</licence>
 
        <traduire module="agenda" reference="fr" gestionnaire="salvatore" />
-       <traduire module="paquet-agenda" reference="fr" gestionnaire="salvatore" />
+       <traduire module="configureragenda" reference="fr" gestionnaire="salvatore" />
+       <traduire module="migreragenda" reference="fr" gestionnaire="salvatore" />
        
        <pipeline nom="autoriser" inclure="agenda_autoriser.php" />
        <pipeline nom="declarer_tables_interfaces" inclure="base/agenda_evenements.php" />
        <pipeline nom="post_edition" inclure="agenda_pipelines.php" />
        <pipeline nom="post_edition_lien" inclure="agenda_pipelines.php" />
        <pipeline nom="quete_calendrier_prive" inclure="agenda_pipelines.php" />
+       <pipeline nom="revisions_chercher_label" inclure="agenda_pipelines.php" />
 
-       <utilise nom="Fulltext" compatibilite="[0.2;[" />
-       <utilise nom="mots" compatibilite="[2.0.0;[" />
-       <necessite nom="calendriermini" compatibilite="[2.0.0;[" />
+       <utilise nom="Fulltext" compatibilite="[1.0.0;[" />
+       <utilise nom="mots" compatibilite="[2.4.6;[" />
+       <necessite nom="calendriermini" compatibilite="[2.3.7;[" />
 
        <menu nom="evenements" titre="agenda:evenements" parent="menu_edition" icone="images/evenement-16.png" />
        <menu nom="evenement_creer" titre="agenda:creer_evenement" parent="outils_rapides" action="evenement_edit" icone="images/evenement-new-16.png" />
index 0839510..28fa90a 100644 (file)
@@ -1,7 +1,12 @@
-[(#REM) afficher les evenements de cet article]
-<div id="agenda">
-<INCLURE{fond=prive/objets/liste/evenements-post,nb=5,sinon=<:agenda:info_aucun_evenement:>,statut=#LISTE{publie,prop},env}>
+#SET{sinon,''}
 [(#AUTORISER{creerevenementdans, article, #ID_ARTICLE}|oui)
-       [(#URL_ECRIRE{evenement_edit,id_evenement=new}|parametre_url{id_article,#ID_ARTICLE}|parametre_url{redirect,#SELF}|icone_horizontale{<:agenda:creer_evenement:>,evenement-24.png,new,creer_evenement})]
+       [(#SET{sinon,<:agenda:info_aucun_evenement:>})]
 ]
+
+[(#REM) afficher les evenements de cet article]
+<div id="agenda">
+       <INCLURE{fond=prive/objets/liste/evenements-post,nb=5,sinon=#GET{sinon},statut=#LISTE{publie,prop},env}>
+       [(#AUTORISER{creerevenementdans, article, #ID_ARTICLE}|oui)
+               [(#URL_ECRIRE{evenement_edit,id_evenement=new}|parametre_url{id_article,#ID_ARTICLE}|parametre_url{redirect,#SELF}|icone_horizontale{<:agenda:creer_evenement:>,evenement-24.png,new,creer_evenement})]
+       ]
 </div>
index 780d67b..b6972b8 100644 (file)
@@ -10,7 +10,7 @@
 <B_repetitions>
 <div class="champ contenu_repetitions">
        <div class='label'>[(#GRAND_TOTAL|singulier_ou_pluriel{agenda:une_repetition,agenda:nb_repetitions})]</div>
-       <div dir='#LANG_DIR' class='repetitions'>(<BOUCLE_repetitions(EVENEMENTS){par date_debut}{id_evenement_source=#ID_EVENEMENT}{', '}{statut==.*}>[(#DATE_DEBUT|affdate_court)]</BOUCLE_repetitions>)</div>
+       <div dir='#LANG_DIR' class='repetitions'>(<BOUCLE_repetitions(EVENEMENTS){par date_debut}{id_evenement_source=#ID_EVENEMENT}{', '}{statut==.*}>[<a href="[(#ID_EVENEMENT|generer_url_entite{evenement})]">(#DATE_DEBUT|affdate_court)</a>]</BOUCLE_repetitions>)</div>
 </div>
 </B_repetitions>
 <div class="champ contenu_descriptif[ (#DESCRIPTIF*|strlen|?{'',vide})]">
index 390fc41..1b858cd 100755 (executable)
                </tr>
        </thead>
        <tbody>
-       <BOUCLE_inscrits(AUTEURS evenements_participants){id_evenement}{tri #ENV{par,date},#GET{defaut_tri}}{pagination #ENV{nb,15}}>
+       <BOUCLE_inscrits(evenements_participants){id_evenement}{tri #ENV{par,date},#GET{defaut_tri}}{pagination #ENV{nb,15}}>
                <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
                        <td class='statut'>[(#STATUT|puce_statut{auteur,#ID_AUTEUR})]</td>
-                       <td class='nom'><a href="[(#ID_AUTEUR|generer_url_entite{auteur})]"[ title="(#BIO*|couper{200}|attribut_html)"]>[(#RANG). ][(#NOM|sinon{<:texte_vide:>})]</a></td>
-                       <td class='mail'>#EMAIL</td>
-                       <td class='date'>[(#DATE|affdate_jourcourt|unique{liste_evt})]</td>
+                       <td class='nom'>
+                [(#NOM|sinon{
+                <a href="[(#ID_AUTEUR|generer_url_entite{auteur})]">[(#RANG). ][(#INFO_NOM{auteur,#ID_AUTEUR}|sinon{<:texte_vide:>})]</a>
+                })]
+            </td>
+                       <td class='mail'>[(#EMAIL|sinon{#INFO_EMAIL{auteur,#ID_AUTEUR}})]</td>
+                       <td class='date'>[(#DATE|affdate_jourcourt)]</td>
                        <td class='reponse'>#REPONSE</td>[
                        (#AUTORISER{modifier,evenement,#ID_EVENEMENT})<td class='delete'>
-                               <button class="button link delete" name="supprimer_lien&#91;evenement-#ID_EVENEMENT-auteur-#ID_AUTEUR&#93;" value="X" onclick="return (confirm('<:agenda:confirm_suppression_inscription:>'));"><:agenda:lien_desinscrire:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})]</button>
-                       </td>]
+                [(#BOUTON_ACTION{<:agenda:lien_desinscrire:>, [(#URL_ACTION_AUTEUR{supprimer_evenement_participant,#ID_EVENEMENT-#ID_EVENEMENT_PARTICIPANT,#SELF})], ajax, <:agenda:confirm_suppression_inscription:>})]
+            </td>]
                </tr>
        </BOUCLE_inscrits>
        </tbody>
 </table>
 [<p class='pagination'>(#PAGINATION{prive})</p>]
 </div>
-[(#AUTORISER{modifier,evenement,#ID_EVENEMENT})<p><button class="button link delete" name="supprimer_lien&#91;evenement-#ID_EVENEMENT-auteur-*&#93;" value="X" onclick="return (confirm('<:agenda:confirm_suppression_inscription_toutes:>'));"><:agenda:lien_desinscrire_tous:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})]</button></p>]
+[(#AUTORISER{modifier,evenement,#ID_EVENEMENT})
+    [(#BOUTON_ACTION{<:agenda:lien_desinscrire_tous:>, [(#URL_ACTION_AUTEUR{supprimer_evenement_participant,#ID_EVENEMENT-tous,#SELF})], ajax, <:agenda:confirm_suppression_inscription_toutes:>})]
+]
 
 </B_inscrits>
 <h2><:agenda:aucun_inscrit:></h2>
 <//B_inscrits>
 
 
index 42dc489..c4d2985 100644 (file)
@@ -25,8 +25,7 @@
                        <td class='statut'>[(#STATUT|puce_statut{evenement,#ID_EVENEMENT})]</td>
                        <td class='date'>[(#DATE_DEBUT|affdate_jourcourt|unique{liste_evt})]</td>
                        <td class='article secondaire'>[<a (#ID_ARTICLE|oui) href="[(#ID_ARTICLE|generer_url_entite{article})]" title="[(#INFO_TITRE{article,#ID_ARTICLE}|attribut_html)]">[(#CHEMIN_IMAGE{article-16.png}|balise_img{#INFO_TITRE{article,#ID_ARTICLE}})]</a>]</td>
-                       <td class='titre principale'><a href="[(#ID_EVENEMENT_SOURCE|?{#ID_EVENEMENT_SOURCE,#ID_EVENEMENT}|generer_url_entite{evenement})]"
-                                                                                                                                                                                                                                                                                                               title="<:info_numero_abbreviation|attribut_html:> #ID_EVENEMENT">[(#RANG). ]#TITRE</a>
+                       <td class='titre principale'><a href="[(#ID_EVENEMENT_SOURCE|?{#ID_EVENEMENT_SOURCE,#ID_EVENEMENT}|generer_url_entite{evenement})]" title="<:info_numero_abbreviation|attribut_html:> #ID_EVENEMENT">[(#RANG). ]#TITRE</a>
                                <p class="date">[(#DATE_DEBUT|affdate_debut_fin{#DATE_FIN,#HORAIRE})]</p>
                        </td>
                        <td class='lieu secondaire'>#LIEU</td>
index 8fde0b8..c9b7c0d 100755 (executable)
@@ -5,12 +5,10 @@
 <div dir='#LANG_DIR' class='dates'>[(#DATE_DEBUT|affdate_debut_fin{#DATE_FIN,#HORAIRE})]</div>
 [<div class='descriptif secondaire #EDIT{descriptif}'><:agenda:evenement_descriptif:> : (#DESCRIPTIF|PtoBR)</div>]
 [<div class='lieu secondaire #EDIT{lieu}'><:agenda:evenement_lieu:> : (#LIEU)</div>]
-<div class="ajax">
-       #FORMULAIRE_EVENEMENT_PARTICIPANTS{#ENV{id_evenement},#ENV{tri_inscrits}}
-</div>
-
+<INCLURE{fond=prive/objets/liste/evenement_participants,id_evenement=#ENV{id_evenement},tri_inscrits=#ENV{tri_inscrits}}>
 </BOUCLE_evt>
 </B_evt>
 <h2><:agenda:aucun_evenement:></h2>
 <//B_evt>
 #BOITE_FERMER
index 741df29..d47dd30 100644 (file)
@@ -1,5 +1,8 @@
 [(#AUTORISER{configurer_agenda}|sinon_interdire_acces)]
 <h1 class="grostitre"><:agenda:agenda:></h1>
+[(#BOITE_OUVRIR{[(#VAL{agenda:explication_synchro_flux_ical_titre}|_T)],'info'})]
+<:agenda:explication_synchro_flux_ical:>
+#BOITE_FERMER
 <div class="ajax">#FORMULAIRE_CONFIGURER_AGENDA</div>
 <div class="ajax">#FORMULAIRE_CONFIGURER_CALENDRIERMINI</div>
 <h2><:agenda:rubriques:></h2>
index ebcbda2..1cbaad1 100755 (executable)
@@ -1,15 +1,16 @@
 <BOUCLE0(AUTEURS){tout}{id_auteur=#ENV{id}}{lang_select}><?php
 if ([(#ID_AUTEUR|securiser_acces{#ENV{cle},transmettre,#ENV{op}, #ENV{args}}|?{1,0})]) {
 ?><B_participants_oui>"<:nom:>","<:email:>","<:agenda:evenement_date_inscription:>"
-<BOUCLE_participants_oui(AUTEURS evenements_participants){id_evenement}{si #ENV{reponse}}{reponse=#ENV{reponse}}>"[(#NOM|sinon{<:texte_vide:>})]","#EMAIL","[(#DATE|affdate{'d/m/Y H:i:s'})]"
+<BOUCLE_participants_oui(evenements_participants){id_evenement}{si #ENV{reponse}}{reponse=#ENV{reponse}}>"[(#NOM|sinon{#INFO_NOM{auteur,#ID_AUTEUR}})]","[(#EMAIL|sinon{#INFO_EMAIL{auteur,#ID_AUTEUR}})]","[(#DATE|affdate{'d/m/Y H:i:s'})]"
 </BOUCLE_participants_oui>
 </B_participants_oui>
 <B_participants>"<:nom:>","<:email:>","<:agenda:evenement_date_inscription:>","<:agenda:reponse:>"
-<BOUCLE_participants(AUTEURS evenements_participants){id_evenement}>"[(#NOM|sinon{<:texte_vide:>})]","#EMAIL","[(#DATE|affdate{'d/m/Y H:i:s'})]","#REPONSE"
+<BOUCLE_participants(evenements_participants){id_evenement}>"[(#NOM|sinon{#INFO_NOM{auteur,#ID_AUTEUR}})]","[(#EMAIL|sinon{#INFO_EMAIL{auteur,#ID_AUTEUR}})]","[(#DATE|affdate{'d/m/Y H:i:s'})]","#REPONSE"
 </BOUCLE_participants>
 <//B_participants_oui>
 <?php
 } else {
 include_spip('inc/minipres'); 
 echo minipres();
-}?></BOUCLE0>
\ No newline at end of file
+}?></BOUCLE0>
\ No newline at end of file
index fbf5522..51a5217 100755 (executable)
@@ -1,10 +1,10 @@
 <BOUCLE0(AUTEURS){tout}{id_auteur=#ENV{id}}{lang_select}><?php
 if ([(#ID_AUTEUR|securiser_acces{#ENV{cle},transmettre,#ENV{op}, #ENV{args}}|?{1,0})]) {
 ?>"<:numero:>","<:agenda:evenement:>","<:nom:>","<:email:>","<:agenda:evenement_date_inscription:>","<:agenda:reponse:>"
-<BOUCLE_evt(EVENEMENTS){par id_evenement}><BOUCLE_participants(AUTEURS evenements_participants){id_evenement}>"#ID_EVENEMENT","#INFO_TITRE{evenement,#ID_EVENEMENT}","[(#NOM|sinon{<:texte_vide:>})]","#EMAIL","[(#DATE|affdate{'d/m/Y H:i:s'})]","#REPONSE"
+<BOUCLE_evt(EVENEMENTS){par id_evenement}><BOUCLE_participants(evenements_participants){id_evenement}>"#ID_EVENEMENT","#INFO_TITRE{evenement,#ID_EVENEMENT}","[(#NOM|sinon{#INFO_NOM{auteur,#ID_AUTEUR}})]","[(#EMAIL|sinon{#INFO_EMAIL{auteur,#ID_AUTEUR}})]","[(#DATE|affdate{'d/m/Y H:i:s'})]","#REPONSE"
 </BOUCLE_participants></BOUCLE_evt>
 <?php
 } else {
 include_spip('inc/minipres');
 echo minipres();
-}?></BOUCLE0>
+}?></BOUCLE0>
\ No newline at end of file
index d138999..aea759c 100644 (file)
@@ -389,9 +389,9 @@ function agenda_calculer_date_reference($idb, &$boucles, $crit) {
  * @return object\r
  */\r
 function balise_NB_INSCRITS_dist($p) {\r
-        $id_evenement = champ_sql('id_evenement', $p);\r
-        $p->code = "sql_countsel('spip_evenements_participants','id_evenement='.intval($id_evenement).' AND reponse=\'oui\'')";\r
-        return $p;\r
+       $id_evenement = champ_sql('id_evenement', $p);\r
+       $p->code = "sql_countsel('spip_evenements_participants','id_evenement='.intval($id_evenement).' AND reponse=\'oui\'')";\r
+       return $p;\r
 }\r
 \r
 ?>\r
index dc1491c..bf40977 100644 (file)
@@ -3,10 +3,17 @@ VERSION:2.0
 X-WR-TIMEZONE:Europe/Paris
 CALSCALE:GREGORIAN
 PRODID:-//SPIP/Plugin #PLUGIN{AGENDA,nom}//NONSGML v1.0//FR
+<BOUCLE_art(ARTICLES){id_article}>
+X-WR-CALNAME;VALUE=TEXT:[(#NOM_SITE_SPIP|filtrer_ical)] - [(#TITRE|supprimer_tags|filtrer_ical)][
+X-WR-CALDESC:(#INTRODUCTION|supprimer_tags|filtrer_ical)]
+X-WR-RELCALID:[(#URL_ARTICLE|filtrer_ical)]
+</BOUCLE_art>
+</B_art>
 X-WR-CALNAME;VALUE=TEXT:[(#NOM_SITE_SPIP|filtrer_ical)] -- Agenda[
-X-WR-CALDESC:(#DESCRIPTIF_SITE_SPIP|supprimer_tags|filtrer_ical)]
+X-WR-CALDESC:(#DESCRIPTION_SITE_SPIP|supprimer_tags|filtrer_ical)]
 X-WR-RELCALID:[(#URL_SITE_SPIP|filtrer_ical)]
-<BOUCLE_evenement2(EVENEMENTS) {branche ?}{id_article ?} {statut=publie}{par date_fin} {age_fin<=0} {0,50} {doublons}>[(#INCLURE{fond=inc/un-evenement-ical}{evtitre=#TITRE}{id_evenement}{date_debut}{horaire}{date_fin}{id_article}{descriptif}{lieu})]
-</BOUCLE_evenement2><BOUCLE_evenement3(EVENEMENTS) {branche ?}{id_article ?} {statut=publie}{par date_fin} {age_fin>=0} {inverse} {0,50} {doublons}>[(#INCLURE{fond=inc/un-evenement-ical}{evtitre=#TITRE}{id_evenement}{date_debut}{horaire}{date_fin}{id_article}{descriptif}{lieu})]
-</BOUCLE_evenement3><BOUCLE_evenement(EVENEMENTS) {branche ?}{id_article ?} {statut=publie}{par date_fin} {inverse} {0,50} {doublons}>[(#INCLURE{fond=inc/un-evenement-ical}{evtitre=#TITRE}{id_evenement}{date_debut}{horaire}{date_fin}{id_article}{descriptif}{lieu})]
+<//B_art>
+<BOUCLE_evenement2(EVENEMENTS) {branche ?}{id_article ?} {statut=publie}{par date_fin} {age_fin<=0} {0,50} {doublons}>[(#INCLURE{fond=inc/un-evenement-ical}{evtitre=#TITRE}{id_evenement}{date_debut}{horaire}{date_fin}{id_article}{descriptif}{lieu}{date_creation}{maj})]
+</BOUCLE_evenement2><BOUCLE_evenement3(EVENEMENTS) {branche ?}{id_article ?} {statut=publie}{par date_fin} {age_fin>=0} {inverse} {0,50} {doublons}>[(#INCLURE{fond=inc/un-evenement-ical}{evtitre=#TITRE}{id_evenement}{date_debut}{horaire}{date_fin}{id_article}{descriptif}{lieu}{date_creation}{maj})]
+</BOUCLE_evenement3><BOUCLE_evenement(EVENEMENTS) {branche ?}{id_article ?} {statut=publie}{par date_fin} {inverse} {0,50} {doublons}>[(#INCLURE{fond=inc/un-evenement-ical}{evtitre=#TITRE}{id_evenement}{date_debut}{horaire}{date_fin}{id_article}{descriptif}{lieu}{date_creation}{maj})]
 </BOUCLE_evenement>END:VCALENDAR
diff --git a/www/plugins/agenda_3_5/squelettes/aside/agenda.html b/www/plugins/agenda_3_5/squelettes/aside/agenda.html
new file mode 100644 (file)
index 0000000..99c2ac9
--- /dev/null
@@ -0,0 +1,16 @@
+[(#REM)
+
+  Squelette
+  (c) 2009 xxx
+  Distribue sous licence GPL
+
+]
+<B_mois>
+#ANCRE_PAGINATION
+<ul class="liste-items">
+<BOUCLE_mois(EVENEMENTS){!par date_debut}{id_article?}{id_rubrique?}{id_mot?}{id_evenement_source?}{fusion_par_mois date_debut}{pagination 10}>
+<li class="item">[(#SELF|parametre_url{date_debut,#DATE_DEBUT|affdate{Y-m-01}}|lien_ou_expose{#DATE_DEBUT|affdate_mois_annee{},#ENV{date_debut,''}|=={#DATE_DEBUT|affdate{Y-m-01}}})]</li>
+</BOUCLE_mois>
+</ul>
+[<div class="pagination">(#PAGINATION)</div>]
+</B_mois>
\ No newline at end of file
diff --git a/www/plugins/agenda_3_5/squelettes/breadcrumb/agenda.html b/www/plugins/agenda_3_5/squelettes/breadcrumb/agenda.html
new file mode 100644 (file)
index 0000000..58b70bc
--- /dev/null
@@ -0,0 +1,4 @@
+<ul class="breadcrumb">
+       <li><a href="#URL_SITE_SPIP/"><:accueil_site:></a><span class="divider"> &gt; </span></li>
+       <li class="active">[(#CONFIG{agenda/titre}|sinon{<:agenda:titre_sur_l_agenda:>}|typo)]</li>
+</ul>
\ No newline at end of file
index dfaa307..263c0c5 100644 (file)
 <section>
 
        <header class="cartouche">
-               <h1>[(#CONFIG{agenda/titre}|sinon{<:agenda:titre_sur_l_agenda:>}|entites_html)]</h1>
+               <h1 class="#EDIT{meta-agenda/titre}">[(#CONFIG{agenda/titre}|sinon{<:agenda:titre_sur_l_agenda:>}|typo)]</h1>
        </header>
 
-       [<div class="chapo">(#CONFIG{agenda/descriptif}|propre)</div>]
+       [<div class="chapo #EDIT{meta-agenda/descriptif}">(#CONFIG{agenda/descriptif}|propre)</div>]
 
        <div class="main">
                <INCLURE{fond=inclure/agenda-liste,env,ajax} />
index e66a611..c7834d6 100644 (file)
@@ -32,4 +32,4 @@
                <p><:agenda:info_aucun_evenement:></p>
                <//B_ev>
        </div>
-</section>
\ No newline at end of file
+</section>
diff --git a/www/plugins/agenda_3_5/squelettes/extra/agenda.html b/www/plugins/agenda_3_5/squelettes/extra/agenda.html
new file mode 100644 (file)
index 0000000..a0b1474
--- /dev/null
@@ -0,0 +1,16 @@
+[(#REM)
+
+  Squelette
+  (c) 2009 xxx
+  Distribue sous licence GPL
+
+]
+#SET{id_article,#ENV{id_article,''}}
+<BOUCLE_ev(EVENEMENTS){id_evenement}>
+#CALENDRIER_MINI{#DATE_DEBUT,date_debut,#URL_PAGE{jour},#URL_PAGE{calendrier_mini_event.json,id_article=#ID_ARTICLE}}
+#SET{id_article,#ID_ARTICLE}
+</BOUCLE_ev>
+#CALENDRIER_MINI{#DATE_DEBUT,date_debut,#URL_PAGE{jour},#URL_PAGE{calendrier_mini_event.json}|parametre_url{id_article,#GET{id_article}}|parametre_url{id_rubrique,#GET{id_rubrique}}}
+<//B_ev>
+
+<INCLURE{fond=inclure/agenda-evenements-meme-article,id_article=#GET{id_article},env,ajax} />
\ No newline at end of file
diff --git a/www/plugins/agenda_3_5/squelettes/extra/evenement.html b/www/plugins/agenda_3_5/squelettes/extra/evenement.html
new file mode 100644 (file)
index 0000000..a704a01
--- /dev/null
@@ -0,0 +1,8 @@
+[(#REM)
+
+  Squelette
+  (c) 2009 xxx
+  Distribue sous licence GPL
+
+]
+<INCLURE{fond=extra1/agenda,env} />
\ No newline at end of file
diff --git a/www/plugins/agenda_3_5/squelettes/extra/jour.html b/www/plugins/agenda_3_5/squelettes/extra/jour.html
new file mode 100644 (file)
index 0000000..a704a01
--- /dev/null
@@ -0,0 +1,8 @@
+[(#REM)
+
+  Squelette
+  (c) 2009 xxx
+  Distribue sous licence GPL
+
+]
+<INCLURE{fond=extra1/agenda,env} />
\ No newline at end of file
diff --git a/www/plugins/agenda_3_5/squelettes/extra/rubrique-agenda.html b/www/plugins/agenda_3_5/squelettes/extra/rubrique-agenda.html
new file mode 100644 (file)
index 0000000..a704a01
--- /dev/null
@@ -0,0 +1,8 @@
+[(#REM)
+
+  Squelette
+  (c) 2009 xxx
+  Distribue sous licence GPL
+
+]
+<INCLURE{fond=extra1/agenda,env} />
\ No newline at end of file
index 2b87e18..00273a6 100644 (file)
 
 <div class="pagination">
        #SET{hasprev,''}
-       <BOUCLE_prev(EVENEMENTS){!evenement_a_venir #GET{date_debut}}{0,1}{id_article?}{id_rubrique?}{id_mot?}{id_evenement_source?}>#SET{hasprev,1}</BOUCLE_prev>
+       <BOUCLE_prev(EVENEMENTS){id_article?}{id_rubrique?}{id_mot?}{id_evenement_source?}{!evenement_a_venir #GET{date_prev}}{0,1}>#SET{hasprev,1}</BOUCLE_prev>
        #SET{hasnext,''}
-       <BOUCLE_next(EVENEMENTS){!evenement_passe #GET{date_fin}}{0,1}{id_article?}{id_rubrique?}{id_mot?}{id_evenement_source?}>#SET{hasnext,1}</BOUCLE_next>
+       <BOUCLE_next(EVENEMENTS){id_article?}{id_rubrique?}{id_mot?}{id_evenement_source?}{!evenement_passe #GET{date_fin}}{0,1}>#SET{hasnext,1}</BOUCLE_next>
+       [(#GET{hasprev}|=={1}|ou{#GET{hasnext}|=={1}}|oui)
        [(#INCLURE{fond=modeles/pagination_precedent_suivant,
        label_precedent=#GET{date_prev}|affdate_periode{#GET{affichage_duree}},
        label_suivant=#GET{date_fin}|affdate_periode{#GET{affichage_duree}},
@@ -43,7 +44,6 @@
        url_precedent=#SELF|parametre_url{date_debut,#GET{date_prev}|affdate{Y-m-d}},
        url_suivant=#SELF|parametre_url{date_debut,#GET{date_fin}|affdate{Y-m-d}},
        ancre=agenda-liste,
-       separateur=' | ',
-       })]
+       separateur=' | '})]]
 </div>
 </div>
\ No newline at end of file
index 8d0c432..45dbc99 100644 (file)
@@ -1,20 +1,26 @@
 <BOUCLE_vevent(EVENEMENTS){id_evenement=#ENV{id,#ENV{id_evenement}}}{tout}>
-<article class="entry evenement vevent id_#ID_EVENEMENT"  itemscope itemtype="http://schema.org/Event">
-       <span class="banner"><span class="label label-inverse"><b class="day">[(#DATE_DEBUT|jour)]</b> <b class="month">[(#DATE_DEBUT|nom_mois)]</b> <b class="year">[(#DATE_DEBUT|annee)]</b></span></span>
-       <strong class="h3-like summary entry-title"><a itemprop="url" class="url" href="[(#URL_EVENEMENT)]">[(#LOGO_EVENEMENT|image_reduire{150,100}|inserer_attribut{itemprop,image})]<span itemprop="name">#TITRE</span><span
+[(#SET{annee,#DATE_DEBUT|annee})][(#SET{mois,#DATE_DEBUT|nom_mois})][(#SET{jour,#DATE_DEBUT|jour})]
+<article class="entry evenement vevent id_#ID_EVENEMENT" id="evenement_#ID_EVENEMENT" itemscope itemtype="http://schema.org/Event">
+       <span class="banner #EDIT{date_debut}"><span class="label label-inverse"><:agenda:date_fmt_agenda_label{annee=#GET{annee},mois=#GET{mois},jour=#GET{jour}}:></span></span>
+       <strong class="h3-like summary entry-title #EDIT{titre}"><a itemprop="url" class="url" href="[(#URL_EVENEMENT)]">[(#LOGO_EVENEMENT|image_reduire{150,100}|inserer_attribut{itemprop,image})]<span itemprop="name">#TITRE</span><span
                        class="lire-la-suite hide"><i class="icon-chevron-right" title="<:zpip:lire_la_suite|attribut_html:><:zpip:lire_la_suite_de|attribut_html:>&laquo;[(#TITRE|attribut_html)]&raquo;"></i></span></a></strong>
        <meta itemprop="startDate" content="[(#DATE_DEBUT|date_iso)]" />
        <meta itemprop="endDate" content="[(#DATE_FIN|date_iso)]" />
-       <p class="info-publi">[<time><i class="icon-calendar"></i> (#DATE_DEBUT|agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE,'hcal'})</time>]</p>
+       [<p class="info-publi"><time><i class="icon-calendar"></i> (#DATE_DEBUT|agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE*,'hcal'})</time></p>]
+       #SET{intro,''}<BOUCLE_art(ARTICLES){si #ENV{sinon_intro_article,oui}|=={non}|ou{#ENV{intro}|=={non}}|non}{id_article}>#SET{intro,#INTRODUCTION{#ENV{coupe,300}}</BOUCLE_art>
+       [(#ENV{intro,oui}|=={non}|non|et{#DESCRIPTIF}|oui)[(#SET{intro,[<div class="introduction #EDIT{descriptif}" itemprop="description">(#DESCRIPTIF|sinon{#GET{intro}})</div>]})]]
+       [(#GET{intro}|ou{#LIEU}|ou{#ADRESSE}|oui)
        <div class="entry-content">
-       #SET{intro,''}<BOUCLE_art(ARTICLES){id_article}>#SET{intro,#INTRODUCTION{#ENV{coupe,300}}</BOUCLE_art>
-       [<div class="introduction #EDIT{descriptif}" itemprop="description">(#DESCRIPTIF|sinon{#GET{intro}})</div>]
-
-       [<p class="location" itemprop="location"><span class="lieu #EDIT{lieu}">(#LIEU)</span>[<br /><span class="adresse #EDIT{adresse}">(#ADRESSE|PtoBR)</span>]</p>]
-       </div>
+               #GET{intro}
+               [<p class="location" itemprop="location"><span class="lieu #EDIT{lieu}">(#LIEU)</span>[<br /><span class="adresse #EDIT{adresse}">(#ADRESSE|PtoBR)</span>]</p>]
+       </div>]
+       <B_mots>
        <p class="meta-publi">
-               [(#INSCRIPTION|?{' ',''})<span class="inscrits"><span class="sep">|</span> <i class="icon-user" title="#NB_INSCRITS[/(#PLACES) ] <:agenda:inscrits|attribut_html:>"></i> #NB_INSCRITS[/(#PLACES) ]</span>]
-               <B_mots><span class="sep">|</span> <BOUCLE_mots(MOTS){id_evenement}{par num titre,titre}{', '}><span class="category"><i class="icon-tag"></i> #TITRE</span></BOUCLE_mots>
+       [(#INSCRIPTION|?{' ',''})<span class="inscrits"><span class="sep">|</span> <i class="icon-user" title="#NB_INSCRITS[/#PLACES(#PLACES|>{0}|oui)] <:agenda:inscrits|attribut_html:>"></i> #NB_INSCRITS[/#PLACES(#PLACES|>{0}|oui)]</span>]
+       <span class="sep">|</span> <BOUCLE_mots(MOTS){id_evenement}{par num titre,titre}{', '}><span class="category"><i class="icon-tag"></i> #TITRE</span></BOUCLE_mots>
        </p>
+       </B_mots>
+       [(#INSCRIPTION|?{' ',''})<p class="meta-publi"><span class="inscrits"><span class="sep">|</span> <i class="icon-user" title="#NB_INSCRITS[/#PLACES(#PLACES|>{0}|oui)] <:agenda:inscrits|attribut_html:>"></i> #NB_INSCRITS[/#PLACES(#PLACES|>{0}|oui)]</span></p>]
+       <//B_mots>
 </article>
-</BOUCLE_vevent>
+</BOUCLE_vevent>
\ No newline at end of file
index 9ab691f..b81dc04 100644 (file)
@@ -1,10 +1,10 @@
 <svn_revision>
 <text_version>
 Origine: file:///home/svn/repository/spip-zone/_plugins_/agenda/trunk
-Revision: 72384
-Dernier commit: 2013-04-27 14:00:20 +0200 
+Revision: 93548
+Dernier commit: 2015-12-11 17:15:07 +0100 
 </text_version>
 <origine>file:///home/svn/repository/spip-zone/_plugins_/agenda/trunk</origine>
-<revision>72384</revision>
-<commit>2013-04-27 14:00:20 +0200 </commit>
+<revision>93548</revision>
+<commit>2015-12-11 17:15:07 +0100 </commit>
 </svn_revision>
\ No newline at end of file
index 36fff63..ca03888 100644 (file)
@@ -32,7 +32,7 @@ function balise_CALENDRIER_MINI_stat($args, $filtres) {
  * #CALENDRIER_MINI{#ENV{date},date,#SELF}
  * #CALENDRIER_MINI{#ENV{date},date,#SELF,#URL_PAGE{calendrier_mini.json}}
  *
- * Quand l'url json est explicitée dans les arguments, la collecte automatisée de id_rubrique, id_article et id_mot est desactivée
+ * Quand l'url json est explicitee dans les arguments, la collecte automatisee de id_rubrique, id_article et id_mot est desactivee
  * car dans ce cas il suffit simplement de les expliciter sur l'url json pour les prendre en compte
  *
  * @param string $date
index 1cff092..0fca972 100644 (file)
@@ -1,57 +1,57 @@
-<?php\r
-\r
-/**\r
- * Balises et critères du calendrier mini\r
- *\r
- * @package SPIP\CalendrierMini\Fonctions\r
-**/\r
-\r
-if (!defined("_ECRIRE_INC_VERSION")) return;   #securite\r
-\r
-if (!defined('VAR_DATE')) define('VAR_DATE', 'archives');\r
-\r
-function balise_DATE_ARCHIVES($p) {\r
-       $p->code = "_request('".VAR_DATE."')";\r
-\r
-       #$p->interdire_scripts = true;\r
-       return $p;\r
-}\r
-\r
-function critere_archives($idb, &$boucles, $crit) {\r
-       $boucle = &$boucles[$idb];\r
-       $objet = objet_type($boucle->id_table);\r
-       $date = objet_info($objet,'date');\r
-       $champ_date = "'" . $boucle->id_table ."." .\r
-       $date . "'";\r
-       $boucle->where[] = array(\r
-               'REGEXP',\r
-               $champ_date, \r
-               "sql_quote(('^' . interdire_scripts(entites_html(\$Pile[0]['".VAR_DATE."']))))"\r
-       );\r
-}\r
-\r
-/**\r
- * Crée un array d'un intervalle de jour entre la date de début $start et la date de fin $end\r
- * \r
- * $start datetime SQL - La date de début\r
- * $end datetime SQL La date de fin\r
- */\r
-function calendriermini_intervalle($start,$end=false){\r
-       $jours = array();\r
-       $starttime = strtotime($start);\r
-       $startdate = date('Y-m-d',$starttime);\r
-       $jours[] = $startdate;\r
-       if(!$end){\r
-               return $jours;\r
-       }\r
-       $endtime = strtotime($end);\r
-       $enddate = date('Y-m-d',strtotime($end));\r
-       $starttime = $starttime + (3600*24);\r
-       while(($date_test = date('Y-m-d',$starttime)) < $enddate){\r
-               $jours[] = $date_test;\r
-               $starttime = $starttime + (3600*24);\r
-       }\r
-       $jours[] = $enddate;\r
-       return array_unique($jours);\r
-}\r
-?>\r
+<?php
+
+/**
+ * Balises et critères du calendrier mini
+ *
+ * @package SPIP\CalendrierMini\Fonctions
+**/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;   #securite
+
+if (!defined('VAR_DATE')) define('VAR_DATE', 'archives');
+
+function balise_DATE_ARCHIVES($p) {
+       $p->code = "_request('".VAR_DATE."')";
+
+       #$p->interdire_scripts = true;
+       return $p;
+}
+
+function critere_archives($idb, &$boucles, $crit) {
+       $boucle = &$boucles[$idb];
+       $objet = objet_type($boucle->id_table);
+       $date = objet_info($objet,'date');
+       $champ_date = "'" . $boucle->id_table ."." .
+       $date . "'";
+       $boucle->where[] = array(
+               "'REGEXP'",
+               $champ_date,
+               "sql_quote(('^' . interdire_scripts(entites_html(@\$Pile[0]['".VAR_DATE."']))))"
+       );
+}
+
+/**
+ * Crée un array d'un intervalle de jour entre la date de début $start et la date de fin $end
+ *
+ * $start datetime SQL - La date de début
+ * $end datetime SQL La date de fin
+ */
+function calendriermini_intervalle($start,$end=false){
+       $jours = array();
+       $starttime = strtotime($start);
+       $startdate = date('Y-m-d',$starttime);
+       $jours[] = $startdate;
+       if(!$end){
+               return $jours;
+       }
+       $endtime = strtotime($end);
+       $enddate = date('Y-m-d',strtotime($end));
+       $starttime = $starttime + (3600*24);
+       while(($date_test = date('Y-m-d',$starttime)) < $enddate){
+               $jours[] = $date_test;
+               $starttime = $starttime + (3600*24);
+       }
+       $jours[] = $enddate;
+       return array_unique($jours);
+}
+?>
index 75a8d7a..068d153 100644 (file)
Binary files a/www/plugins/calendrier_mini-2.0/css/img/month_next.png and b/www/plugins/calendrier_mini-2.0/css/img/month_next.png differ
index 4ee1fb4..6ea20c7 100644 (file)
Binary files a/www/plugins/calendrier_mini-2.0/css/img/month_prev.png and b/www/plugins/calendrier_mini-2.0/css/img/month_prev.png differ
index 03837b9..6bda40d 100644 (file)
Binary files a/www/plugins/calendrier_mini-2.0/css/img/month_prev_next-32x16.png and b/www/plugins/calendrier_mini-2.0/css/img/month_prev_next-32x16.png differ
index 2bda6db..ba9e405 100644 (file)
                                        data-url="#ENV{self}"
                                        data-vardate="#ENV{var_date}"
                                        >[(#REM)
-
                Contenu alternatif statique pour les Bot et les utilisateurs sans JS
                ]<div class="alt">
                        #SET{start,#ENV{date}|affdate{Y-m-01}|strtotime}
                        #SET{end,#VAL{Y-m-01}|date{#GET{start}|plus{2764800}}|strtotime}
-                       #SET{url,#GET{urljson}|parametre_url{start,#GET{start},'&'}|parametre_url{end,#GET{end},'&'}|url_absolue}
+                       [(#SET{url,#INCLURE{fond=#GET{urljson}|parametre_url{page},
+                                               id_rubrique=#GET{urljson}|parametre_url{id_rubrique},
+                                               id_article=#GET{urljson}|parametre_url{id_articlee},
+                                               id_mot=#GET{urljson}|parametre_url{id_mot},
+                                               lang=#GET{urljson}|parametre_url{lang},
+                                               start=#GET{start},
+                                               end=#GET{end}}})]
                        <strong>[(#ENV{date}|affdate_mois_annee)]&nbsp;:</strong>
                        <B_alt>
                        <ul class="liste-items">
@@ -54,4 +59,4 @@ Chargement de la css que l'on importe inline pour eviter un hit (performance)
 ]<style type="text/css">
 [(#INCLURE{css/minical.css}|compacte{css})]
 .calendriermini .ui-datepicker-header .ui-icon {background-image: url("#CHEMIN{css/img/month_prev_next-32x16.png}");}
-</style>
\ No newline at end of file
+</style>
index f5a1ca9..fa4cc28 100644 (file)
@@ -19,7 +19,7 @@
                                </BOUCLE_jours>
                        </select>
                </li>
-               #SET{name,format_jour}#SET{defaut,1}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+               #SET{name,format_jour}#SET{defaut,initiale}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
                <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
                        <label>[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label>[
                        <span class='erreur_message'>(#GET{erreurs})</span>
index 84c1db9..302fabc 100644 (file)
@@ -1,8 +1,8 @@
 #HTTP_HEADER{Content-type:text/javascript}
 if (!jQuery.fn.datepicker){
-#INCLURE{javascript/ui/jquery.ui.core.js}
-#INCLURE{javascript/ui/jquery.ui.widget.js}
-#INCLURE{javascript/ui/jquery.ui.datepicker.js}
+[(#INCLURE{javascript/ui/core.js}|sinon{#INCLURE{javascript/ui/jquery.ui.core.js}})]
+[(#INCLURE{javascript/ui/widget.js}|sinon{#INCLURE{javascript/ui/jquery.ui.widget.js}})]
+[(#INCLURE{javascript/ui/datepicker.js}|sinon{#INCLURE{javascript/ui/jquery.ui.datepicker.js}})]
 }
 if (!jQuery.fn.multiDatesPicker){
 #INCLURE{javascript/jquery-ui.multidatespicker.js}
@@ -25,7 +25,7 @@ var minical = {
                        '<:date_mois_1_abbr|texte_script:>','<:date_mois_2_abbr|texte_script:>','<:date_mois_3_abbr|texte_script:>','<:date_mois_4_abbr|texte_script:>','<:date_mois_5_abbr|texte_script:>','<:date_mois_6_abbr|texte_script:>',
                        '<:date_mois_7_abbr|texte_script:>','<:date_mois_8_abbr|texte_script:>','<:date_mois_9_abbr|texte_script:>','<:date_mois_10_abbr|texte_script:>','<:date_mois_11_abbr|texte_script:>','<:date_mois_12_abbr|texte_script:>'],
                dayNames: [
-                       '<:date_jour_1|texte_script:>','<:date_jour_2|texte_script:>','<:date_jour_3|texte_script:>','<:date_jour_4:|texte_script:>',
+                       '<:date_jour_1|texte_script:>','<:date_jour_2|texte_script:>','<:date_jour_3|texte_script:>','<:date_jour_4|texte_script:>',
                        '<:date_jour_5|texte_script:>','<:date_jour_6|texte_script:>','<:date_jour_7|texte_script:>'],
                dayNamesShort: [
                        '<:date_jour_1_abbr|texte_script:>','<:date_jour_2_abbr|texte_script:>','<:date_jour_3_abbr|texte_script:>','<:date_jour_4_abbr|texte_script:>',
index b7811ba..ef1a64b 100644 (file)
@@ -1,13 +1,36 @@
 <traduction module="minical" gestionnaire="salvatore" url="http://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/calendrier_mini/trunk/lang/" reference="fr">
-       <langue code="en" url="http://trad.spip.net/tradlang_module/minical?lang_cible=en">
+       <langue code="ar" url="http://trad.spip.net/tradlang_module/minical?lang_cible=ar" total="14" traduits="3" relire="0" modifs="0" nouveaux="11" pourcent="21.43">
+               <traducteur nom="George" lien="http://trad.spip.net/auteur/جورج-قندلفت" />
+               <traducteur nom="Hanjo" lien="http://trad.spip.net/auteur/hanjo" />
+       </langue>
+       <langue code="de" url="http://trad.spip.net/tradlang_module/minical?lang_cible=de" total="14" traduits="14" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="Torsten Willmann" lien="http://trad.spip.net/auteur/torsten-willmann" />
+       </langue>
+       <langue code="en" url="http://trad.spip.net/tradlang_module/minical?lang_cible=en" total="14" traduits="14" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
                <traducteur nom="kent1" lien="http://trad.spip.net/auteur/kent1" />
                <traducteur nom="Martin McCaffery" lien="http://trad.spip.net/auteur/martin-mccaffery" />
        </langue>
-       <langue code="es" url="http://trad.spip.net/tradlang_module/minical?lang_cible=es">
-               <traducteur nom="Raquel S. Bujaldón" lien="http://trad.spip.net/auteur/raquel" />
+       <langue code="es" url="http://trad.spip.net/tradlang_module/minical?lang_cible=es" total="14" traduits="14" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="Raquel S. Bujaldón" lien="http://trad.spip.net/auteur/raquel-s-bujaldon" />
+       </langue>
+       <langue code="fa" url="http://trad.spip.net/tradlang_module/minical?lang_cible=fa" total="14" traduits="3" relire="0" modifs="0" nouveaux="11" pourcent="21.43">
+               <traducteur nom="Davood Hossein" lien="http://trad.spip.net/auteur/davood-hossein" />
+       </langue>
+       <langue code="fr" url="http://trad.spip.net/tradlang_module/minical?lang_cible=fr" total="14" traduits="14" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+       </langue>
+       <langue code="nl" url="http://trad.spip.net/tradlang_module/minical?lang_cible=nl" total="14" traduits="14" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="Hanjo" lien="http://trad.spip.net/auteur/hanjo" />
        </langue>
-       <langue code="fr" />
-       <langue code="sk" url="http://trad.spip.net/tradlang_module/minical?lang_cible=sk">
+       <langue code="oc_ni_mis" url="http://trad.spip.net/tradlang_module/minical?lang_cible=oc_ni_mis" total="14" traduits="14" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="sylvain" lien="http://trad.spip.net/auteur/sylvain" />
+       </langue>
+       <langue code="ru" url="http://trad.spip.net/tradlang_module/minical?lang_cible=ru" total="14" traduits="14" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="olly" lien="http://trad.spip.net/auteur/olly" />
+       </langue>
+       <langue code="sk" url="http://trad.spip.net/tradlang_module/minical?lang_cible=sk" total="14" traduits="14" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
                <traducteur nom="jaro" lien="http://trad.spip.net/auteur/jaro" />
        </langue>
+       <langue code="sl" url="http://trad.spip.net/tradlang_module/minical?lang_cible=sl" total="14" traduits="3" relire="0" modifs="0" nouveaux="11" pourcent="21.43">
+               <traducteur nom="kent1" lien="http://trad.spip.net/auteur/kent1" />
+       </langue>
 </traduction>
diff --git a/www/plugins/calendrier_mini-2.0/lang/minical_ca.php b/www/plugins/calendrier_mini-2.0/lang/minical_ca.php
deleted file mode 100644 (file)
index 932efbb..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
-// extrait automatiquement de http://trad.spip.org/tradlang_module/minical?lang_cible=ca
-// ** ne pas modifier le fichier **
-
-if (!defined('_ECRIRE_INC_VERSION')) return;
-
-$GLOBALS[$GLOBALS['idx_lang']] = array(
-
-       // A
-       'aucune_date' => 'Rien pour ce mois', # NEW
-
-       // D
-       'date_jour_abbr_1' => 'dg',
-       'date_jour_abbr_2' => 'dl',
-       'date_jour_abbr_3' => 'dt',
-       'date_jour_abbr_4' => 'dc',
-       'date_jour_abbr_5' => 'dj',
-       'date_jour_abbr_6' => 'dv',
-       'date_jour_abbr_7' => 'db',
-
-       // M
-       'mois_precedent' => 'Mois précédent', # NEW
-       'mois_suivant' => 'Mois suivant' # NEW
-);
-
-?>
index 9942b56..8dd322c 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 // This is a SPIP language file  --  Ceci est un fichier langue de SPIP
-// extrait automatiquement de http://trad.spip.org/tradlang_module/minical?lang_cible=de
+// extrait automatiquement de http://trad.spip.net/tradlang_module/minical?lang_cible=de
 // ** ne pas modifier le fichier **
 
 if (!defined('_ECRIRE_INC_VERSION')) return;
@@ -8,20 +8,26 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
 $GLOBALS[$GLOBALS['idx_lang']] = array(
 
        // A
-       'aucune_date' => 'Rien pour ce mois', # NEW
+       'aucune_date' => 'Nichts in diesem Monat',
 
-       // D
-       'date_jour_abbr_1' => 'So',
-       'date_jour_abbr_2' => 'Mo',
-       'date_jour_abbr_3' => 'Di',
-       'date_jour_abbr_4' => 'Mi',
-       'date_jour_abbr_5' => 'Do',
-       'date_jour_abbr_6' => 'Fr',
-       'date_jour_abbr_7' => 'Sa',
+       // C
+       'config_titre_calendriermini' => 'Mini-Kalender',
+
+       // L
+       'label_affichage_hors_mois' => 'Angezeigte Tage',
+       'label_affichage_hors_mois_0' => 'Tage des folgenden und des vorherigen Monats verstecken',
+       'label_affichage_hors_mois_1' => 'Tage des folgenden und des vorherigen Monats anzeigen',
+       'label_changement_rapide' => 'Navigation',
+       'label_changement_rapide_0' => 'Schnellauswahl von Jahr und Monat deaktivieren',
+       'label_changement_rapide_1' => 'Schnellauswahl für Monat und Jahr aktivieren',
+       'label_format_jour' => 'Format der Tagesanzeige',
+       'label_format_jour_abbr' => 'Abkürzung',
+       'label_format_jour_initiale' => 'Anfangsbuchstabe',
+       'label_jour1' => 'Erster Tag der Woche',
 
        // M
-       'mois_precedent' => 'Mois précédent', # NEW
-       'mois_suivant' => 'Mois suivant' # NEW
+       'mois_precedent' => 'Voriger Monat',
+       'mois_suivant' => 'Folgender Monat'
 );
 
 ?>
index 9d72de2..b209d9b 100644 (file)
@@ -16,8 +16,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'label_affichage_hors_mois_0' => 'Masquer les jours des mois précédent et suivant',
        'label_affichage_hors_mois_1' => 'Afficher les jours des mois précédent et suivant',
        'label_changement_rapide' => 'Navigation',
-       'label_changement_rapide_0' => 'Désactiver la sélection rapide du mois ou de l\'année',
-       'label_changement_rapide_1' => 'Activer la sélection rapide du mois ou de l\'année',
+       'label_changement_rapide_0' => 'Désactiver la sélection rapide du mois ou de lannée',
+       'label_changement_rapide_1' => 'Activer la sélection rapide du mois ou de lannée',
        'label_format_jour' => 'Format des jours',
        'label_format_jour_abbr' => 'Court',
        'label_format_jour_initiale' => 'Initiale',
diff --git a/www/plugins/calendrier_mini-2.0/lang/minical_it.php b/www/plugins/calendrier_mini-2.0/lang/minical_it.php
deleted file mode 100644 (file)
index fde1071..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
-// extrait automatiquement de http://trad.spip.org/tradlang_module/minical?lang_cible=it
-// ** ne pas modifier le fichier **
-
-if (!defined('_ECRIRE_INC_VERSION')) return;
-
-$GLOBALS[$GLOBALS['idx_lang']] = array(
-
-       // A
-       'aucune_date' => 'Rien pour ce mois', # NEW
-
-       // D
-       'date_jour_abbr_1' => 'dom',
-       'date_jour_abbr_2' => 'lun',
-       'date_jour_abbr_3' => 'mar',
-       'date_jour_abbr_4' => 'mer',
-       'date_jour_abbr_5' => 'giov',
-       'date_jour_abbr_6' => 'ven',
-       'date_jour_abbr_7' => 'sab',
-
-       // M
-       'mois_precedent' => 'Mois précédent', # NEW
-       'mois_suivant' => 'Mois suivant' # NEW
-);
-
-?>
diff --git a/www/plugins/calendrier_mini-2.0/lang/minical_nl.php b/www/plugins/calendrier_mini-2.0/lang/minical_nl.php
new file mode 100644 (file)
index 0000000..17cd6ba
--- /dev/null
@@ -0,0 +1,33 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/minical?lang_cible=nl
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'aucune_date' => 'Niets voor deze maand',
+
+       // C
+       'config_titre_calendriermini' => 'Mini-Kalender',
+
+       // L
+       'label_affichage_hors_mois' => 'Getoonde dagen',
+       'label_affichage_hors_mois_0' => 'Verberg de dagen van de vorige en volgende maand',
+       'label_affichage_hors_mois_1' => 'Toon de dagen van de vorige en volgende maand',
+       'label_changement_rapide' => 'Navigatie',
+       'label_changement_rapide_0' => 'Desactiveer de snelkeuze van maand of jaar',
+       'label_changement_rapide_1' => 'Activeer de snelkeuze van maand of jaar',
+       'label_format_jour' => 'Dagformaat',
+       'label_format_jour_abbr' => 'Kort',
+       'label_format_jour_initiale' => 'Beginletter',
+       'label_jour1' => 'Eerste dag van de week',
+
+       // M
+       'mois_precedent' => 'Vorige maand',
+       'mois_suivant' => 'Volgende maand'
+);
+
+?>
diff --git a/www/plugins/calendrier_mini-2.0/lang/minical_oc_ni_mis.php b/www/plugins/calendrier_mini-2.0/lang/minical_oc_ni_mis.php
new file mode 100644 (file)
index 0000000..c4ac7e0
--- /dev/null
@@ -0,0 +1,33 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/minical?lang_cible=oc_ni_mis
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'aucune_date' => 'Mìnga per aqueu mès',
+
+       // C
+       'config_titre_calendriermini' => 'Mini-Calendari',
+
+       // L
+       'label_affichage_hors_mois' => 'Jou afichat',
+       'label_affichage_hors_mois_0' => 'Escoundre lu jou dei mès prechedent e seguent',
+       'label_affichage_hors_mois_1' => 'Afichà lu jou dei mès prechedent e seguent',
+       'label_changement_rapide' => 'Navigacioun',
+       'label_changement_rapide_0' => 'Desativà la selecioun rapida dóu mès o de l’anada',
+       'label_changement_rapide_1' => 'Ativà la selecioun rapida dóu mès o de l’anada',
+       'label_format_jour' => 'Fourmat dei jou',
+       'label_format_jour_abbr' => 'Court',
+       'label_format_jour_initiale' => 'Iniciala',
+       'label_jour1' => 'Premié jou de la semana',
+
+       // M
+       'mois_precedent' => 'Mès prechedent',
+       'mois_suivant' => 'Mès seguent'
+);
+
+?>
diff --git a/www/plugins/calendrier_mini-2.0/lang/minical_ru.php b/www/plugins/calendrier_mini-2.0/lang/minical_ru.php
new file mode 100644 (file)
index 0000000..099ea76
--- /dev/null
@@ -0,0 +1,33 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/minical?lang_cible=ru
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'aucune_date' => 'Ничего в этом месяце',
+
+       // C
+       'config_titre_calendriermini' => 'Мини-Календарь',
+
+       // L
+       'label_affichage_hors_mois' => 'Дни показаны',
+       'label_affichage_hors_mois_0' => 'Скрыть дни предыдущего и следующего месяцев',
+       'label_affichage_hors_mois_1' => 'Показать дни предыдущих и последующих месяцев',
+       'label_changement_rapide' => 'Навигация',
+       'label_changement_rapide_0' => 'Отключить быстрый выбор месяца или года',
+       'label_changement_rapide_1' => 'Включить быстрый выбор месяца или года',
+       'label_format_jour' => 'Формат дней',
+       'label_format_jour_abbr' => 'Кратко',
+       'label_format_jour_initiale' => 'Заглавная буква',
+       'label_jour1' => 'Первый день недели',
+
+       // M
+       'mois_precedent' => 'Предыдущий месяц',
+       'mois_suivant' => 'Следующий месяц'
+);
+
+?>
index 8894bca..d475866 100644 (file)
@@ -1,15 +1,25 @@
 <traduction module="paquet-calendriermini" gestionnaire="salvatore" url="http://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/calendrier_mini/trunk/lang/" reference="fr">
-       <langue code="de" url="http://trad.spip.net/tradlang_module/paquet-calendriermini?lang_cible=de">
+       <langue code="de" url="http://trad.spip.net/tradlang_module/paquet-calendriermini?lang_cible=de" total="3" traduits="3" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
                <traducteur nom="klaus++" lien="http://trad.spip.net/auteur/klaus" />
        </langue>
-       <langue code="en" url="http://trad.spip.net/tradlang_module/paquet-calendriermini?lang_cible=en">
+       <langue code="en" url="http://trad.spip.net/tradlang_module/paquet-calendriermini?lang_cible=en" total="3" traduits="3" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
                <traducteur nom="kent1" lien="http://trad.spip.net/auteur/kent1" />
        </langue>
-       <langue code="es" url="http://trad.spip.net/tradlang_module/paquet-calendriermini?lang_cible=es">
-               <traducteur nom="Raquel S. Bujaldón" lien="http://trad.spip.net/auteur/raquel" />
+       <langue code="es" url="http://trad.spip.net/tradlang_module/paquet-calendriermini?lang_cible=es" total="3" traduits="3" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="Raquel S. Bujaldón" lien="http://trad.spip.net/auteur/raquel-s-bujaldon" />
        </langue>
-       <langue code="fr" />
-       <langue code="sk" url="http://trad.spip.net/tradlang_module/paquet-calendriermini?lang_cible=sk">
+       <langue code="fr" url="http://trad.spip.net/tradlang_module/paquet-calendriermini?lang_cible=fr" total="3" traduits="3" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+       </langue>
+       <langue code="nl" url="http://trad.spip.net/tradlang_module/paquet-calendriermini?lang_cible=nl" total="3" traduits="3" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="Hanjo" lien="http://trad.spip.net/auteur/hanjo" />
+       </langue>
+       <langue code="oc_ni_mis" url="http://trad.spip.net/tradlang_module/paquet-calendriermini?lang_cible=oc_ni_mis" total="3" traduits="3" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="sylvain" lien="http://trad.spip.net/auteur/sylvain" />
+       </langue>
+       <langue code="ru" url="http://trad.spip.net/tradlang_module/paquet-calendriermini?lang_cible=ru" total="3" traduits="3" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="olly" lien="http://trad.spip.net/auteur/olly" />
+       </langue>
+       <langue code="sk" url="http://trad.spip.net/tradlang_module/paquet-calendriermini?lang_cible=sk" total="3" traduits="3" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
                <traducteur nom="jaro" lien="http://trad.spip.net/auteur/jaro" />
        </langue>
 </traduction>
index 53f1717..3b8d5ba 100644 (file)
@@ -8,7 +8,7 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
 $GLOBALS[$GLOBALS['idx_lang']] = array(
 
        // C
-       'calendriermini_description' => '#CALENDRIER_MINI displays a calendar designed as dotclear\'s one and therefore compatible with the styles from this blog system.
+       'calendriermini_description' => '#CALENDRIER_MINI displays a calendar designed as dotclears one and therefore compatible with the styles from this blog system.
 _ Other tools are added, such as tags, criteria, models...',
        'calendriermini_nom' => 'Mini Calendar',
        'calendriermini_slogan' => 'Allow to use a #CALENDRIER_MINI tag'
index 467dc05..700b1f3 100644 (file)
@@ -7,9 +7,9 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 
        // C
        'calendriermini_description' => '#CALENDRIER_MINI affiche un calendrier au design issu de dotclear et donc compatible avec les styles issus de ce système de blog.
-_ Lui sont adjoints d\'autre éléments, tels que balises, critères, modèles...',
+_ Lui sont adjoints dautre éléments, tels que balises, critères, modèles...',
        'calendriermini_nom' => 'Mini Calendrier',
-       'calendriermini_slogan' => 'Permet l\'utilisation d\'une balise #CALENDRIER_MINI'
+       'calendriermini_slogan' => 'Permet l’utilisation d’une balise #CALENDRIER_MINI'
 );
 
 ?>
diff --git a/www/plugins/calendrier_mini-2.0/lang/paquet-calendriermini_nl.php b/www/plugins/calendrier_mini-2.0/lang/paquet-calendriermini_nl.php
new file mode 100644 (file)
index 0000000..eea8844
--- /dev/null
@@ -0,0 +1,17 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/paquet-calendriermini?lang_cible=nl
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // C
+       'calendriermini_description' => '#CALENDRIER_MINI toont een kalender in het dotclear ontwerp en is dus compatibel met de stijl van blogs.
+_ Er zijn extra elementen aan toegevoegd, zoals bakens, criteria, modellen...',
+       'calendriermini_nom' => 'Mini Kalender',
+       'calendriermini_slogan' => 'Maakt het gebruik van #CALENDRIER_MINI mogelijk'
+);
+
+?>
diff --git a/www/plugins/calendrier_mini-2.0/lang/paquet-calendriermini_oc_ni_mis.php b/www/plugins/calendrier_mini-2.0/lang/paquet-calendriermini_oc_ni_mis.php
new file mode 100644 (file)
index 0000000..9b87f2c
--- /dev/null
@@ -0,0 +1,17 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/paquet-calendriermini?lang_cible=oc_ni_mis
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // C
+       'calendriermini_description' => '#CALENDRIER_MINI afichà un calendari dau design que ven de dotclear e es pi coumpatible embé l’estile que ven d’aqueu sistèma de blog.
+_ Lì soun ajounch d’autre elemen couma balisa, critèri, moudel...',
+       'calendriermini_nom' => 'Mini Calendari',
+       'calendriermini_slogan' => 'Permete l’utilisacioun d’una balisa #CALENDRIER_MINI'
+);
+
+?>
diff --git a/www/plugins/calendrier_mini-2.0/lang/paquet-calendriermini_ru.php b/www/plugins/calendrier_mini-2.0/lang/paquet-calendriermini_ru.php
new file mode 100644 (file)
index 0000000..cbb9ebf
--- /dev/null
@@ -0,0 +1,17 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/paquet-calendriermini?lang_cible=ru
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // C
+       'calendriermini_description' => '#CALENDRIER_MINI отображает календарь в соответствии с дизайном и стилями на сайте.
+_Добавлены другие инструменты: теги, критерии, модели...',
+       'calendriermini_nom' => 'Мини-Календарь',
+       'calendriermini_slogan' => 'Позволяет использовать тег #CALENDRIER_MINI'
+);
+
+?>
index 9880597..d566a1b 100644 (file)
Binary files a/www/plugins/calendrier_mini-2.0/minical-32.png and b/www/plugins/calendrier_mini-2.0/minical-32.png differ
index a8d8eb7..a5bdf96 100644 (file)
@@ -1,16 +1,16 @@
 <B_archives_mensuelles>
 <div id="archives" class="rubriques">
-  <h2 class="menu-titre"><:archives|ucfirst:></h2>
-  <ul>
-   <BOUCLE_archives_mensuelles(ARTICLES){branche ?}{lang}{par date}{inverse}>[
-   <li>
-   <a href="[(#ENV{self}|parametre_url{archives,[(#DATE|affdate{'Y-m'})]})]">[
-   (#ENV{archives}|=={[(#DATE|affdate{'Y-m'})]}|?{<b>})
-   ](#DATE|affdate{'Y-m'}|unique|affdate_mois_annee)[
-   (#ENV{archives}|=={[(#DATE|affdate{'Y-m'})]}|?{</b>})
-   ]</a>
-   </li>
-   ]</BOUCLE_archives_mensuelles>
-  </ul>
+       <h2 class="menu-titre"><:archives|ucfirst:></h2>
+       <ul>
+       <BOUCLE_archives_mensuelles(ARTICLES){branche ?}{lang}{par date}{inverse}>[
+               <li>
+                       <a href="[(#ENV{self}|parametre_url{archives,[(#DATE|affdate{'Y-m'})]})]">[
+                       (#ENV{archives}|=={[(#DATE|affdate{'Y-m'})]}|?{<b>})
+                       ](#DATE|affdate{'Y-m'}|unique|affdate_mois_annee)[
+                       (#ENV{archives}|=={[(#DATE|affdate{'Y-m'})]}|?{</b>})
+                       ]</a>
+               </li>
+       ]</BOUCLE_archives_mensuelles>
+       </ul>
 </div>
 </B_archives_mensuelles>
\ No newline at end of file
index 9685fa0..ee9f61e 100644 (file)
@@ -1,12 +1,12 @@
 <paquet
        prefix="calendriermini"
        categorie="date"
-       version="2.3.4"
-       etat="test"
-       compatibilite="[3.0.0-beta;3.0.99]"
+       version="2.3.9"
+       etat="stable"
+       compatibilite="[3.0.0;3.1.*]"
        logo="minical-32.png"
-       documentation="http://www.spip-contrib.net/Calendrier-Mini-2-0"
->      
+       documentation="http://contrib.spip.net/Calendrier-Mini-2-0"
+>
 
        <nom>Mini Calendrier</nom>
        <!-- Permet l'utilisation d'une balise #CALENDRIER_MINI -->
@@ -17,4 +17,4 @@
        <copyright>2006-2012</copyright>
 
        <licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL 3</licence>
-</paquet>
+</paquet>
\ No newline at end of file
index 5ecbd66..819ea4e 100644 (file)
@@ -1,10 +1,10 @@
 <svn_revision>
 <text_version>
 Origine: file:///home/svn/repository/spip-zone/_plugins_/calendrier_mini/trunk
-Revision: 69463
-Dernier commit: 2013-01-28 03:41:28 +0100 
+Revision: 93150
+Dernier commit: 2015-11-24 23:00:03 +0100 
 </text_version>
 <origine>file:///home/svn/repository/spip-zone/_plugins_/calendrier_mini/trunk</origine>
-<revision>69463</revision>
-<commit>2013-01-28 03:41:28 +0100 </commit>
+<revision>93150</revision>
+<commit>2015-11-24 23:00:03 +0100 </commit>
 </svn_revision>
\ No newline at end of file
index 5fd2c99..090fc48 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Plugin Spip-Bonux
  * Le plugin qui lave plus SPIP que SPIP
- * (c) 2008 Mathieu Marcillaud, Cedric Morin, Romy Tetue
+ * (c) 2008 Mathieu Marcillaud, Cedric Morin, Tetue
  * Licence GPL
  */
 
index bad0aed..20862e8 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Plugin Spip-Bonux
  * Le plugin qui lave plus SPIP que SPIP
- * (c) 2008 Mathieu Marcillaud, Cedric Morin, Romy Tetue
+ * (c) 2008 Mathieu Marcillaud, Cedric Morin, Tetue
  * Licence GPL
  *
  * Fonctions d'export d'une requete sql ou d'un tableau
@@ -41,7 +41,8 @@ function exporter_csv_champ($champ) {
 function exporter_csv_ligne($ligne, $delim = ',', $importer_charset = null) {
        $output = join($delim, array_map('exporter_csv_champ', $ligne))."\r\n";
        if ($importer_charset){
-               $output = unicode2charset(html2unicode(charset2unicode($output)), $importer_charset);
+               $output = str_replace('’', '\'', $output);
+    $output = unicode2charset(html2unicode(charset2unicode($output)), $importer_charset);
        }
        return $output;
 }
index f09d392..5a438f7 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Plugin Spip-Bonux
  * Le plugin qui lave plus SPIP que SPIP
- * (c) 2008 Mathieu Marcillaud, Cedric Morin, Romy Tetue
+ * (c) 2008 Mathieu Marcillaud, Cedric Morin, Tetue
  * Licence GPL
  * 
  * Fonctions de lecture d'un fichier CSV pour transformation en array()
index f263448..26d83f1 100644 (file)
@@ -1,18 +1,28 @@
 <traduction module="paquet-spip_bonux" gestionnaire="salvatore" url="http://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/spip-bonux-3/lang/" reference="fr">
-       <langue code="ar" url="http://trad.spip.net/tradlang_module/paquet-spip_bonux?lang_cible=ar">
+       <langue code="ar" url="http://trad.spip.net/tradlang_module/paquet-spip_bonux?lang_cible=ar" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
                <traducteur nom="George" lien="http://trad.spip.net/auteur/جورج-قندلفت" />
        </langue>
-       <langue code="en" url="http://trad.spip.net/tradlang_module/paquet-spip_bonux?lang_cible=en">
+       <langue code="de" url="http://trad.spip.net/tradlang_module/paquet-spip_bonux?lang_cible=de" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="Martin" lien="http://trad.spip.net/auteur/martin" />
+       </langue>
+       <langue code="en" url="http://trad.spip.net/tradlang_module/paquet-spip_bonux?lang_cible=en" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
                <traducteur nom="Gilles" lien="http://trad.spip.net/auteur/gilles" />
        </langue>
-       <langue code="es" url="http://trad.spip.net/tradlang_module/paquet-spip_bonux?lang_cible=es">
-               <traducteur nom="Raquel S. Bujaldón" lien="http://trad.spip.net/auteur/raquel" />
+       <langue code="es" url="http://trad.spip.net/tradlang_module/paquet-spip_bonux?lang_cible=es" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="Raquel S. Bujaldón" lien="http://trad.spip.net/auteur/raquel-s-bujaldon" />
+       </langue>
+       <langue code="fa" url="http://trad.spip.net/tradlang_module/paquet-spip_bonux?lang_cible=fa" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="Davood Hossein" lien="http://trad.spip.net/auteur/davood-hossein" />
+       </langue>
+       <langue code="fr" url="http://trad.spip.net/tradlang_module/paquet-spip_bonux?lang_cible=fr" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+       </langue>
+       <langue code="nl" url="http://trad.spip.net/tradlang_module/paquet-spip_bonux?lang_cible=nl" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="Hanjo" lien="http://trad.spip.net/auteur/hanjo" />
        </langue>
-       <langue code="fr" />
-       <langue code="ru" url="http://trad.spip.net/tradlang_module/paquet-spip_bonux?lang_cible=ru">
+       <langue code="ru" url="http://trad.spip.net/tradlang_module/paquet-spip_bonux?lang_cible=ru" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
                <traducteur nom="Serge Markitanenko" lien="http://trad.spip.net/auteur/serge-markitanenko" />
        </langue>
-       <langue code="sk" url="http://trad.spip.net/tradlang_module/paquet-spip_bonux?lang_cible=sk">
+       <langue code="sk" url="http://trad.spip.net/tradlang_module/paquet-spip_bonux?lang_cible=sk" total="2" traduits="2" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
                <traducteur nom="jaro" lien="http://trad.spip.net/auteur/jaro" />
        </langue>
 </traduction>
diff --git a/www/plugins/spip-bonux-3/lang/paquet-spip_bonux_de.php b/www/plugins/spip-bonux-3/lang/paquet-spip_bonux_de.php
new file mode 100644 (file)
index 0000000..a0477cb
--- /dev/null
@@ -0,0 +1,16 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/paquet-spip_bonux?lang_cible=de
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // S
+       'spip_bonux_description' => 'Der Plug-in, der SPIPer wäscht als SPIP, mit tollen Geschenken drin!
+       Tabellen, Zähler, usw.',
+       'spip_bonux_slogan' => 'Der Plug-in, der SPIPer wäscht als SPIP.'
+);
+
+?>
diff --git a/www/plugins/spip-bonux-3/lang/paquet-spip_bonux_fa.php b/www/plugins/spip-bonux-3/lang/paquet-spip_bonux_fa.php
new file mode 100644 (file)
index 0000000..b44df3b
--- /dev/null
@@ -0,0 +1,15 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/paquet-spip_bonux?lang_cible=fa
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // S
+       'spip_bonux_description' => 'پلاگيني كه اسپيپ را از اسپيپ بهتر مي‌سازد، با هداياي داخلي قشنگ، تابلو، شمارشگر و غيره. ',
+       'spip_bonux_slogan' => 'پلاگيني كه اسپيپ را از اسپيپ بهتر مي‌سازد '
+);
+
+?>
index 9068077..5d132bb 100644 (file)
@@ -6,7 +6,7 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
 $GLOBALS[$GLOBALS['idx_lang']] = array(
 
        // S
-       'spip_bonux_description' => 'Le plugin qui lave plus SPIP que SPIP, avec des chouettes cadeaux dedans !
+       'spip_bonux_description' => 'Le plugin qui lave plus SPIP que SPIP, avec des chouettes cadeaux dedans !
        Tableaux, compteur, etc.',
        'spip_bonux_slogan' => 'Le plugin qui lave plus SPIP que SPIP.'
 );
diff --git a/www/plugins/spip-bonux-3/lang/paquet-spip_bonux_nl.php b/www/plugins/spip-bonux-3/lang/paquet-spip_bonux_nl.php
new file mode 100644 (file)
index 0000000..97b9f18
--- /dev/null
@@ -0,0 +1,16 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/paquet-spip_bonux?lang_cible=nl
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // S
+       'spip_bonux_description' => 'De plugin die SPIP nog SPIPper maakt met leuke extraatjes!
+       Tabellen, teller, enz.',
+       'spip_bonux_slogan' => 'De plugin die SPIP nog SPIPper maakt.'
+);
+
+?>
index a7b88c8..7ee8b8b 100644 (file)
@@ -1,14 +1,28 @@
 <traduction module="spip_bonux" gestionnaire="salvatore" url="http://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/spip-bonux-3/lang/" reference="fr">
-       <langue code="ar" />
-       <langue code="en" />
-       <langue code="es" url="http://trad.spip.net/tradlang_module/spip_bonux?lang_cible=es">
-               <traducteur nom="Raquel S. Bujaldón" lien="http://trad.spip.net/auteur/raquel" />
+       <langue code="ar" url="http://trad.spip.net/tradlang_module/spip_bonux?lang_cible=ar" total="13" traduits="13" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="George" lien="http://trad.spip.net/auteur/جورج-قندلفت" />
        </langue>
-       <langue code="fr" />
-       <langue code="ru" url="http://trad.spip.net/tradlang_module/spip_bonux?lang_cible=ru">
+       <langue code="de" url="http://trad.spip.net/tradlang_module/spip_bonux?lang_cible=de" total="13" traduits="12" relire="0" modifs="1" nouveaux="0" pourcent="92.31">
+               <traducteur nom="Martin" lien="http://trad.spip.net/auteur/martin" />
+       </langue>
+       <langue code="en" url="http://trad.spip.net/tradlang_module/spip_bonux?lang_cible=en" total="13" traduits="13" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="kent1" lien="http://trad.spip.net/auteur/kent1" />
+       </langue>
+       <langue code="es" url="http://trad.spip.net/tradlang_module/spip_bonux?lang_cible=es" total="13" traduits="13" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="Raquel S. Bujaldón" lien="http://trad.spip.net/auteur/raquel-s-bujaldon" />
+       </langue>
+       <langue code="fa" url="http://trad.spip.net/tradlang_module/spip_bonux?lang_cible=fa" total="13" traduits="13" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="Davood Hossein" lien="http://trad.spip.net/auteur/davood-hossein" />
+       </langue>
+       <langue code="fr" url="http://trad.spip.net/tradlang_module/spip_bonux?lang_cible=fr" total="13" traduits="13" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+       </langue>
+       <langue code="nl" url="http://trad.spip.net/tradlang_module/spip_bonux?lang_cible=nl" total="13" traduits="13" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
+               <traducteur nom="Hanjo" lien="http://trad.spip.net/auteur/hanjo" />
+       </langue>
+       <langue code="ru" url="http://trad.spip.net/tradlang_module/spip_bonux?lang_cible=ru" total="13" traduits="12" relire="0" modifs="1" nouveaux="0" pourcent="92.31">
                <traducteur nom="Serge Markitanenko" lien="http://trad.spip.net/auteur/serge-markitanenko" />
        </langue>
-       <langue code="sk" url="http://trad.spip.net/tradlang_module/spip_bonux?lang_cible=sk">
+       <langue code="sk" url="http://trad.spip.net/tradlang_module/spip_bonux?lang_cible=sk" total="13" traduits="13" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
                <traducteur nom="jaro" lien="http://trad.spip.net/auteur/jaro" />
        </langue>
 </traduction>
diff --git a/www/plugins/spip-bonux-3/lang/spip_bonux_de.php b/www/plugins/spip-bonux-3/lang/spip_bonux_de.php
new file mode 100644 (file)
index 0000000..0070def
--- /dev/null
@@ -0,0 +1,36 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/spip_bonux?lang_cible=de
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'afficher_calendrier' => 'Kalender anzeigen',
+       'annee_precedente' => 'Vorheriges Jahr', # MODIF
+       'annee_suivante' => 'Folgendes Jahr',
+       'annuler_recherche' => 'Suche abbrechen',
+
+       // B
+       'bouton_fermer' => 'Schließen',
+
+       // E
+       'erreur_date' => 'Dieses Datum ist nicht korrekt',
+       'erreur_date_corrigee' => 'Das Datum wurde korrigiert',
+       'erreur_heure' => 'Diese Uhrzeit ist nicht korrekt',
+       'erreur_heure_corrigee' => 'Die Uhrzeit wurde korrigiert',
+
+       // I
+       'id_rapide' => 'Schnelleingabe',
+
+       // M
+       'mois_precedent' => 'Vorheriger Monat',
+       'mois_suivant' => 'Folgender Monat',
+
+       // P
+       'pages' => 'Seiten'
+);
+
+?>
index 80fe663..823a498 100644 (file)
@@ -8,7 +8,7 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
 $GLOBALS[$GLOBALS['idx_lang']] = array(
 
        // A
-       'afficher_calendrier' => 'Show the calendar',
+       'afficher_calendrier' => 'Display the calendar',
        'annee_precedente' => 'Previous year',
        'annee_suivante' => 'Next year',
        'annuler_recherche' => 'Cancel the search',
diff --git a/www/plugins/spip-bonux-3/lang/spip_bonux_fa.php b/www/plugins/spip-bonux-3/lang/spip_bonux_fa.php
new file mode 100644 (file)
index 0000000..0b195da
--- /dev/null
@@ -0,0 +1,36 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/spip_bonux?lang_cible=fa
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'afficher_calendrier' => 'نمايش تقويم ',
+       'annee_precedente' => 'سال پيش ',
+       'annee_suivante' => 'سال بعد',
+       'annuler_recherche' => 'لغو جستجو',
+
+       // B
+       'bouton_fermer' => 'بستن',
+
+       // E
+       'erreur_date' => 'اين تاريخ غلط ست',
+       'erreur_date_corrigee' => 'تاريخ تصحيح شده است',
+       'erreur_heure' => 'اين ساعت غلط است',
+       'erreur_heure_corrigee' => 'ساعت تصحيح شده است',
+
+       // I
+       'id_rapide' => 'افزودن سريع ',
+
+       // M
+       'mois_precedent' => 'ماه پيش ',
+       'mois_suivant' => 'ماه بعد ',
+
+       // P
+       'pages' => 'صفحه‌ها'
+);
+
+?>
index 002ec6f..ced3602 100644 (file)
@@ -7,7 +7,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 
        // A
        'afficher_calendrier' => 'Afficher le calendrier',
-       'annee_precedente' => 'Anée précédente',
+       'annee_precedente' => 'Année précédente',
        'annee_suivante' => 'Année suivante',
        'annuler_recherche' => 'Annuler la recherche',
 
@@ -18,7 +18,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
        'erreur_date' => 'Cette date est incorrecte',
        'erreur_date_corrigee' => 'La date a été corrigée',
        'erreur_heure' => 'Cette heure est incorrecte',
-       'erreur_heure_corrigee' => 'L\'heure a été corrigée',
+       'erreur_heure_corrigee' => 'Lheure a été corrigée',
 
        // I
        'id_rapide' => 'Ajout rapide',
diff --git a/www/plugins/spip-bonux-3/lang/spip_bonux_nl.php b/www/plugins/spip-bonux-3/lang/spip_bonux_nl.php
new file mode 100644 (file)
index 0000000..2105c7e
--- /dev/null
@@ -0,0 +1,36 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/spip_bonux?lang_cible=nl
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'afficher_calendrier' => 'Toon de kalender',
+       'annee_precedente' => 'Vorig jaar',
+       'annee_suivante' => 'Volgend jaar',
+       'annuler_recherche' => 'Stop met zoeken',
+
+       // B
+       'bouton_fermer' => 'Sluiten',
+
+       // E
+       'erreur_date' => 'Deze datum is onjuist',
+       'erreur_date_corrigee' => 'De datum is aangepast',
+       'erreur_heure' => 'Dit tijdstip is onjuist',
+       'erreur_heure_corrigee' => 'De tijd is aangepast',
+
+       // I
+       'id_rapide' => 'Voeg snel toe',
+
+       // M
+       'mois_precedent' => 'Vorige maand',
+       'mois_suivant' => 'Volgende maand',
+
+       // P
+       'pages' => 'Blz.'
+);
+
+?>
index 7760ad2..d5bfd32 100644 (file)
@@ -9,7 +9,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 
        // A
        'afficher_calendrier' => 'Показать календарь',
-       'annee_precedente' => 'Предыдущий год',
+       'annee_precedente' => 'Предыдущий год', # MODIF
        'annee_suivante' => 'Следующий год',
        'annuler_recherche' => 'Отменить поиск',
 
index 96522f8..e231e0d 100644 (file)
@@ -9,8 +9,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 
        // A
        'afficher_calendrier' => 'Zobraziť kalendár',
-       'annee_precedente' => 'Minulý rok',
-       'annee_suivante' => 'Budúci rok',
+       'annee_precedente' => 'Predošlý rok',
+       'annee_suivante' => 'Nasledujúci rok',
        'annuler_recherche' => 'Zrušiť vyhľadávanie',
 
        // B
diff --git a/www/plugins/spip-bonux-3/lib/array_column/array_column.php b/www/plugins/spip-bonux-3/lib/array_column/array_column.php
new file mode 100755 (executable)
index 0000000..1e7fa99
--- /dev/null
@@ -0,0 +1,115 @@
+<?php
+/**
+ * This file is part of the array_column library
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ *
+ * @copyright Copyright (c) Ben Ramsey (http://benramsey.com)
+ * @license http://opensource.org/licenses/MIT MIT
+ */
+
+if (!function_exists('array_column')) {
+    /**
+     * Returns the values from a single column of the input array, identified by
+     * the $columnKey.
+     *
+     * Optionally, you may provide an $indexKey to index the values in the returned
+     * array by the values from the $indexKey column in the input array.
+     *
+     * @param array $input A multi-dimensional array (record set) from which to pull
+     *                     a column of values.
+     * @param mixed $columnKey The column of values to return. This value may be the
+     *                         integer key of the column you wish to retrieve, or it
+     *                         may be the string key name for an associative array.
+     * @param mixed $indexKey (Optional.) The column to use as the index/keys for
+     *                        the returned array. This value may be the integer key
+     *                        of the column, or it may be the string key name.
+     * @return array
+     */
+    function array_column($input = null, $columnKey = null, $indexKey = null)
+    {
+        // Using func_get_args() in order to check for proper number of
+        // parameters and trigger errors exactly as the built-in array_column()
+        // does in PHP 5.5.
+        $argc = func_num_args();
+        $params = func_get_args();
+
+        if ($argc < 2) {
+            trigger_error("array_column() expects at least 2 parameters, {$argc} given", E_USER_WARNING);
+            return null;
+        }
+
+        if (!is_array($params[0])) {
+            trigger_error(
+                'array_column() expects parameter 1 to be array, ' . gettype($params[0]) . ' given',
+                E_USER_WARNING
+            );
+            return null;
+        }
+
+        if (!is_int($params[1])
+            && !is_float($params[1])
+            && !is_string($params[1])
+            && $params[1] !== null
+            && !(is_object($params[1]) && method_exists($params[1], '__toString'))
+        ) {
+            trigger_error('array_column(): The column key should be either a string or an integer', E_USER_WARNING);
+            return false;
+        }
+
+        if (isset($params[2])
+            && !is_int($params[2])
+            && !is_float($params[2])
+            && !is_string($params[2])
+            && !(is_object($params[2]) && method_exists($params[2], '__toString'))
+        ) {
+            trigger_error('array_column(): The index key should be either a string or an integer', E_USER_WARNING);
+            return false;
+        }
+
+        $paramsInput = $params[0];
+        $paramsColumnKey = ($params[1] !== null) ? (string) $params[1] : null;
+
+        $paramsIndexKey = null;
+        if (isset($params[2])) {
+            if (is_float($params[2]) || is_int($params[2])) {
+                $paramsIndexKey = (int) $params[2];
+            } else {
+                $paramsIndexKey = (string) $params[2];
+            }
+        }
+
+        $resultArray = array();
+
+        foreach ($paramsInput as $row) {
+            $key = $value = null;
+            $keySet = $valueSet = false;
+
+            if ($paramsIndexKey !== null && array_key_exists($paramsIndexKey, $row)) {
+                $keySet = true;
+                $key = (string) $row[$paramsIndexKey];
+            }
+
+            if ($paramsColumnKey === null) {
+                $valueSet = true;
+                $value = $row;
+            } elseif (is_array($row) && array_key_exists($paramsColumnKey, $row)) {
+                $valueSet = true;
+                $value = $row[$paramsColumnKey];
+            }
+
+            if ($valueSet) {
+                if ($keySet) {
+                    $resultArray[$key] = $value;
+                } else {
+                    $resultArray[] = $value;
+                }
+            }
+
+        }
+
+        return $resultArray;
+    }
+
+}
index 97984a5..113bf55 100644 (file)
@@ -9,7 +9,7 @@
 [<a href='[(#ENV{url}|parametre_url{#ENV{debut},''})]' class='lien_pagination' rel='nofollow'>(#GET{premiere}|>{1}|?{'...',''})</a> [<span class='sep separateur'>(#GET*{separateur})</span>]]
 <BOUCLE_pages(POUR){tableau #GET{pages}}>
 [(#SET{item, #VALEUR|moins{1}|mult{#ENV{pas}} })]
-[(#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|aoustrong{#VALEUR,#VALEUR|=={#ENV{page_courante}},lien_pagination,'',nofollow})]
+[(#ENV{url}|parametre_url{#ENV{debut},#GET{item}}|lien_ou_expose{#VALEUR,#VALEUR|=={#ENV{page_courante}},lien_pagination,'',nofollow})]
 [<span class='sep separateur'>(#VALEUR|<{#GET{derniere}}|?{#GET{separateur}})</span>]
 </BOUCLE_pages>
 [[<span class='sep separateur'>(#GET*{separateur})</span>] <a href='[(#ENV{url}|parametre_url{#ENV{debut},#ENV{nombre_pages}|moins{1}|mult{#ENV{pas}}})]' class='lien_pagination' rel='nofollow'>(#GET{derniere}|<{#ENV{nombre_pages}}|?{'...',''})</a>]
index b4909a7..a26797f 100644 (file)
@@ -1,12 +1,12 @@
 <paquet
        prefix="spip_bonux"
        categorie="outil"
-       version="3.0.5"
+       version="3.2.1"
        etat="stable"
-       compatibilite="[3.0.0-dev;3.1.*]"
+       compatibilite="[3.0.0;3.1.*]"
        logo="img_pack/spip-bonux.png"
-       documentation="http://www.spip-contrib.net/SPIP-Bonux"
->      
+       documentation="http://contrib.spip.net/Bonux-pour-SPIP3"
+>
 
        <nom>SPIP Bonux</nom>
        <!-- Le plugin qui lave plus SPIP que SPIP, avec des chouettes cadeaux dedans -->
@@ -15,7 +15,7 @@
        <auteur>Matthieu Marcillaud</auteur>
        <auteur>romy.tetue.net</auteur>
 
-       <copyright>2008-2013</copyright>
+       <copyright>2008-2015</copyright>
 
        <licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL</licence>
        <pipeline nom="affichage_final" />
index 59bce20..e7f11e6 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Plugin Spip-Bonux
  * Le plugin qui lave plus SPIP que SPIP
- * (c) 2008 Mathieu Marcillaud, Cedric Morin, Romy Tetue
+ * (c) 2008 Mathieu Marcillaud, Cedric Morin, Tetue
  * Licence GPL
  *
  */
index 2fd43e0..ba12fef 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Plugin Spip-Bonux
  * Le plugin qui lave plus SPIP que SPIP
- * (c) 2008 Mathieu Marcillaud, Cedric Morin, Romy Tetue
+ * (c) 2008 Mathieu Marcillaud, Cedric Morin, Tetue
  * Licence GPL
  * 
  */
 if (!defined('_ECRIRE_INC_VERSION')) return;
 
 /**
- * http://www.spip-contrib.net/Classer-les-articles-par-nombre-de#forum409210
  * Permet de faire un comptage par table liee
- * exemple
- * <BOUCLE1(AUTEURS){compteur articles}{par compteur_articles}>
- * #ID_AUTEUR : #COMPTEUR{articles}
- * </BOUCLE1>
- * pour avoir les auteurs classes par articles et le nombre d'article de chacun
  *
- * @param unknown_type $idb
- * @param unknown_type $boucles
- * @param unknown_type $crit
+ * @syntaxe `{compteur table[, champ]}`
+ * @link http://www.spip-contrib.net/Classer-les-articles-par-nombre-de#forum409210
+ * 
+ * @example
+ *     Pour avoir les auteurs classes par articles et
+ *     le nombre d'article de chacun :
+ * 
+ *     ```
+ *     <BOUCLE1(AUTEURS){compteur articles}{par compteur_articles}>
+ *     #ID_AUTEUR : #COMPTEUR{articles}
+ *     </BOUCLE1>
+ *     ```
+ *
+ * @note
+ *     Avec un seul argument {compteur autre_table} le groupby est fait
+ *     implicitement sur la cle primaire de la boucle en cours.
+ *     Avec un second argument {compteur autre_table,champ_fusion}
+ *     le groupby est fait sur le champ_fusion"
+ * 
+ * @param string $idb
+ *     Identifiant de la boucle
+ * @param Boucle[] $boucles
+ *     AST du squelette
+ * @param Critere $crit
+ *     Paramètres du critère dans cette boucle
+ * @param bool $left
+ *     true pour utiliser un left join plutôt qu'un inner join.      
+ * @return void
  */
 function critere_compteur($idb, &$boucles, $crit, $left=false){
        $boucle = &$boucles[$idb];
 
-       $_fusion = calculer_liste($crit->param[1], array(), $boucles, $boucle->id_parent);
+       if (isset($crit->param[1])) {
+               $_fusion = calculer_liste($crit->param[1], array(), $boucles, $boucle->id_parent);
+       } else {
+               $_fusion = "''";
+       }
        $params = $crit->param;
        $table = reset($params);
        $table = $table[0]->texte;
        $op = false;
-       if(preg_match(',^(\w+)([<>=])([0-9]+)$,',$table,$r)){
+       if (preg_match(',^(\w+)([<>=])([0-9]+)$,',$table,$r)){
                $table=$r[1];
                if (count($r)>=3) $op=$r[2];
                if (count($r)>=4) $op_val=$r[3];
@@ -42,7 +65,7 @@ function critere_compteur($idb, &$boucles, $crit, $left=false){
         * Si la clé primaire est une clé multiple, on prend la première partie
         * Utile pour compter les versions de spip_versions par exemple
         */
-       if(count($types = explode(',',$type_id)) > 1)
+       if (count($types = explode(',',$type_id)) > 1)
                $type_id = $types[0];
        $table_sql = table_objet_sql($type);
 
index c3b7411..5ceb501 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Plugin Spip-Bonux
  * Le plugin qui lave plus SPIP que SPIP
- * (c) 2008 Mathieu Marcillaud, Cedric Morin, Romy Tetue
+ * (c) 2008 Mathieu Marcillaud, Cedric Morin, Tetue
  * Licence GPL
  * 
  */
index fd09065..d3a762b 100644 (file)
@@ -2,11 +2,14 @@
 /**
  * Plugin Spip-Bonux
  * Le plugin qui lave plus SPIP que SPIP
- * (c) 2008 Mathieu Marcillaud, Cedric Morin, Romy Tetue
+ * (c) 2008 Mathieu Marcillaud, Cedric Morin, Tetue
  * Licence GPL
- * 
+ *
  */
 
+// On inclu une bonne fois pour toutes array_column
+include_spip('lib/array_column/array_column');
+
 if (_request('var_mode')=='preview'
   AND $cle = _request('var_relecture')){
        include_spip("spip_bonux_fonctions");
@@ -52,17 +55,17 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
  */
 if (!function_exists('_T_ou_typo')) {
 function _T_ou_typo($valeur, $mode_typo='toujours') {
-       
+
        // Si la valeur est bien une chaine (et pas non plus un entier déguisé)
        if (is_string($valeur) and !intval($valeur)){
                // Si la chaine est du type <:truc:> on passe à _T()
-               if (preg_match('/^\<:(.*?):\>$/', $valeur, $match)) 
+               if (preg_match('/^\<:(.*?):\>$/', $valeur, $match))
                        $valeur = _T($match[1]);
                // Sinon on la passe a typo()
                else {
                        if (!in_array($mode_typo, array('toujours', 'multi', 'jamais')))
                                $mode_typo = 'toujours';
-                       
+
                        if ($mode_typo == 'toujours' or ($mode_typo == 'multi' and strpos($valeur, '<multi>') !== false)){
                                include_spip('inc/texte');
                                $valeur = typo($valeur);
@@ -95,8 +98,8 @@ function _T_ou_typo($valeur, $mode_typo='toujours') {
  * @param bool $avant Indique si l'insertion se fait avant la clé (par défaut c'est après)
  * @return array Retourne le tableau avec l'insertion
  */
-if (!function_exists('array_insert')) {
-function array_insert($arr1, $cle, $arr2, $avant=false){
+if (!function_exists('spip_array_insert')) {
+function spip_array_insert($arr1, $cle, $arr2, $avant=false){
        $index = array_search($cle, array_keys($arr1));
        if($index === false){
                $index = count($arr1); // insert @ end of array if $key not found
@@ -135,14 +138,121 @@ if (!function_exists('array_replace_recursive')){
                $array = $args[0];
                if (!is_array($array))
                        return $array;
-               
+
                for ($i = 1; $i < count($args); $i++)
                        if (is_array($args[$i]))
                                $array = recurse($array, $args[$i]);
-               
+
                return $array;
        }
 }
 
+if (!function_exists('text_truncate')) {
+/**
+* Truncates text.
+*
+* Cuts a string to the length of $length and replaces the last characters
+* with the ending if the text is longer than length.
+*
+* ### Options:
+*
+* - `ending` Will be used as Ending and appended to the trimmed string
+* - `exact` If false, $text will not be cut mid-word
+* - `html` If true, HTML tags would be handled correctly
+*
+* @param string  $text String to truncate.
+* @param integer $length Length of returned string, including ellipsis.
+* @param array $options An array of html attributes and options.
+* @return string Trimmed string.
+* @access public
+* @link http://book.cakephp.org/view/1469/Text#truncate-1625
+*/
+function text_truncate($text, $length = 100, $options = array()) {
+    $default = array(
+        'ending' => '...', 'exact' => true, 'html' => false
+    );
+    $options = array_merge($default, $options);
+    extract($options);
+
+    if ($html) {
+        if (mb_strlen(preg_replace('/<.*?>/', '', $text)) <= $length) {
+            return $text;
+        }
+        $totalLength = mb_strlen(strip_tags($ending));
+        $openTags = array();
+        $truncate = '';
+
+        preg_match_all('/(<\/?([\w+]+)[^>]*>)?([^<>]*)/', $text, $tags, PREG_SET_ORDER);
+        foreach ($tags as $tag) {
+            if (!preg_match('/img|br|input|hr|area|base|basefont|col|frame|isindex|link|meta|param/s', $tag[2])) {
+                if (preg_match('/<[\w]+[^>]*>/s', $tag[0])) {
+                    array_unshift($openTags, $tag[2]);
+                } else if (preg_match('/<\/([\w]+)[^>]*>/s', $tag[0], $closeTag)) {
+                    $pos = array_search($closeTag[1], $openTags);
+                    if ($pos !== false) {
+                        array_splice($openTags, $pos, 1);
+                    }
+                }
+            }
+            $truncate .= $tag[1];
+
+            $contentLength = mb_strlen(preg_replace('/&[0-9a-z]{2,8};|&#[0-9]{1,7};|&#x[0-9a-f]{1,6};/i', ' ', $tag[3]));
+            if ($contentLength + $totalLength > $length) {
+                $left = $length - $totalLength;
+                $entitiesLength = 0;
+                if (preg_match_all('/&[0-9a-z]{2,8};|&#[0-9]{1,7};|&#x[0-9a-f]{1,6};/i', $tag[3], $entities, PREG_OFFSET_CAPTURE)) {
+                    foreach ($entities[0] as $entity) {
+                        if ($entity[1] + 1 - $entitiesLength <= $left) {
+                            $left--;
+                            $entitiesLength += mb_strlen($entity[0]);
+                        } else {
+                            break;
+                        }
+                    }
+                }
+
+                $truncate .= mb_substr($tag[3], 0 , $left + $entitiesLength);
+                break;
+            } else {
+                $truncate .= $tag[3];
+                $totalLength += $contentLength;
+            }
+            if ($totalLength >= $length) {
+                break;
+            }
+        }
+    } else {
+        if (mb_strlen($text) <= $length) {
+            return $text;
+        } else {
+            $truncate = mb_substr($text, 0, $length - mb_strlen($ending));
+        }
+    }
+    if (!$exact) {
+        $spacepos = mb_strrpos($truncate, ' ');
+        if (isset($spacepos)) {
+            if ($html) {
+                $bits = mb_substr($truncate, $spacepos);
+                preg_match_all('/<\/([a-z]+)>/', $bits, $droppedTags, PREG_SET_ORDER);
+                if (!empty($droppedTags)) {
+                    foreach ($droppedTags as $closingTag) {
+                        if (!in_array($closingTag[1], $openTags)) {
+                            array_unshift($openTags, $closingTag[1]);
+                        }
+                    }
+                }
+            }
+            $truncate = mb_substr($truncate, 0, $spacepos);
+        }
+    }
+    $truncate .= $ending;
 
-?>
+    if ($html) {
+        foreach ($openTags as $tag) {
+            $truncate .= '</'.$tag.'>';
+        }
+    }
+
+    return $truncate;
+}
+}
index 50f6416..f6f1765 100644 (file)
@@ -1,10 +1,10 @@
 <svn_revision>
 <text_version>
 Origine: file:///home/svn/repository/spip-zone/_plugins_/spip-bonux-3
-Revision: 71958
-Dernier commit: 2013-04-11 18:00:24 +0200 
+Revision: 90054
+Dernier commit: 2015-06-09 18:53:16 +0200 
 </text_version>
 <origine>file:///home/svn/repository/spip-zone/_plugins_/spip-bonux-3</origine>
-<revision>71958</revision>
-<commit>2013-04-11 18:00:24 +0200 </commit>
+<revision>90054</revision>
+<commit>2015-06-09 18:53:16 +0200 </commit>
 </svn_revision>
\ No newline at end of file