From: Ludovic CHEVALIER Date: Wed, 5 Jun 2013 09:53:51 +0000 (+0200) Subject: [PLUGINS] +les plugins de bases X-Git-Tag: 3.0.0~46 X-Git-Url: http://git.cyclocoop.org/?p=ptitvelo%2Fweb%2Fwww.git;a=commitdiff_plain;h=6fc965ae42a0a1843dd0f0f6f2af0289dc475b7f [PLUGINS] +les plugins de bases --- diff --git a/www/plugins/agenda_3_5/action/activer_agenda_rubrique.php b/www/plugins/agenda_3_5/action/activer_agenda_rubrique.php new file mode 100644 index 0000000..0fb08c7 --- /dev/null +++ b/www/plugins/agenda_3_5/action/activer_agenda_rubrique.php @@ -0,0 +1,33 @@ +0) + sql_updateq('spip_rubriques',array('agenda'=>1),'id_rubrique='.intval($arg)); + else + sql_updateq('spip_rubriques',array('agenda'=>0),'id_rubrique='.(-intval($arg))); + } +} + +?> diff --git a/www/plugins/agenda_3_5/action/editer_evenement.php b/www/plugins/agenda_3_5/action/editer_evenement.php new file mode 100644 index 0000000..d192815 --- /dev/null +++ b/www/plugins/agenda_3_5/action/editer_evenement.php @@ -0,0 +1,383 @@ +intval($id_evenement_source), + 'id_article'=>intval($id_article), + 'statut' => 'prop', + ); + + // Envoyer aux plugins + $champs = pipeline('pre_insertion', + array( + 'args' => array( + 'table' => 'spip_evenements', + ), + 'data' => $champs + ) + ); + + // nouvel evenement + $id_evenement = sql_insertq("spip_evenements", $champs); + + pipeline('post_insertion', + array( + 'args' => array( + 'table' => 'spip_evenements', + 'id_objet' => $id_evenement + ), + 'data' => $champs + ) + ); + + if (!$id_evenement){ + spip_log("agenda action formulaire evenement : impossible d'ajouter un evenement",'agenda'); + return false; + } + return $id_evenement; +} + +/** + * Modifier un evenement existant + * + * @param int $id_evenement + * @param array $set + * @return bool|string + */ +function evenement_modifier($id_evenement, $set=null){ + + include_spip('inc/modifier'); + include_spip('inc/filtres'); + $c = collecter_requests( + // white list + objet_info('evenement','champs_editables'), + // black list + array('statut','id_article'), + // donnees eventuellement fournies + $set + ); + + // Si l'evenement est publie, invalider les caches et demander sa reindexation + $t = sql_getfetsel("statut", "spip_evenements", "id_evenement=".intval($id_evenement)); + $invalideur = $indexation = false; + if ($t == 'publie') { + $invalideur = "id='evenement/$id_evenement'"; + $indexation = true; + } + + if ($err = objet_modifier_champs('evenement', $id_evenement, + array( + 'nonvide' => array('titre' => _T('info_nouvel_evenement')." "._T('info_numero_abbreviation').$id_evenement), + 'invalideur' => $invalideur, + 'indexation' => $indexation, + ), + $c)) + return $err; + + if (!is_null($repetitions = _request('repetitions', $set))) + agenda_action_revision_evenement_repetitions($id_evenement, $repetitions); + + // Modification de statut, changement de parent ? + $c = collecter_requests(array('statut', 'id_parent'), array(), $set); + $err = evenement_instituer($id_evenement, $c); + + return $err; +} + + +function agenda_action_revision_evenement_repetitions($id_evenement, $repetitions=""){ + include_spip('inc/filtres'); + $repetitions = preg_split(",[^0-9\-\/],",$repetitions); + // gestion des repetitions + $rep = array(); + foreach($repetitions as $date){ + if (strlen($date)){ + $date = recup_date($date); + if ($date=mktime(0,0,0,$date[1],$date[2],$date[0])) + $rep[] = $date; + } + } + agenda_action_update_repetitions($id_evenement, $rep); +} + +function agenda_action_update_repetitions($id_evenement, $repetitions){ + // evenement source + if ($row = sql_fetsel("*", "spip_evenements","id_evenement=".intval($id_evenement))){ + // Si ce n'est pas un événement source, on n'a rien à faire ici + if ($row['id_evenement_source'] != 0){ return; } + + // On ne garde que les données correctes pour une modification + $c = collecter_requests( + // white list + objet_info('evenement','champs_editables'), + // black list + array('id_evenement', 'id_evenement_source'), + // donnees fournies + $row + ); + + // Savoir si la source était publiée ou pas + $publie = ($row['statut'] == 'publie'); + + // On calcule la durée en secondes de l'événement source pour la reporter telle quelle aux répétitions + $date_debut = strtotime($row['date_debut']); + $date_fin = strtotime($row['date_fin']); + $duree = $date_fin - $date_debut; + + $repetitions_updated = array(); + // mettre a jour toutes les repetitions deja existantes ou les supprimer si plus lieu + $res = sql_select("id_evenement,date_debut","spip_evenements","id_evenement_source=".intval($id_evenement)); + while ($row = sql_fetch($res)){ + $date = strtotime(date('Y-m-d', strtotime($row['date_debut']))); + if (in_array($date, $repetitions)){ + // Cette répétition existe déjà, on la met à jour + $repetitions_updated[] = $date; + + // On calcule les nouvelles dates/heures en reportant la durée de la source + $update_date_debut = date('Y-m-d', $date).' '.date('H:i:s', $date_debut); + $update_date_fin = date('Y-m-d H:i:s', strtotime($update_date_debut)+$duree); + + // Seules les dates sont changées dans les champs de la source + // TODO : prendre en charge la mise a jour uniquement si conforme a l'original + $c['date_debut'] = $update_date_debut; + $c['date_fin'] = $update_date_fin; + + // mettre a jour l'evenement + sql_updateq( + 'spip_evenements', + $c, + 'id_evenement = '.$row['id_evenement'] + ); + } + else { + // il est supprime + sql_delete("spip_evenements","id_evenement=".$row['id_evenement']); + } + } + + // regarder les repetitions a ajouter + foreach($repetitions as $date){ + if (!in_array($date, $repetitions_updated)){ + // On calcule les dates/heures en reportant la durée de la source + $update_date_debut = date('Y-m-d', $date)." ".date('H:i:s', $date_debut); + $update_date_fin = date('Y-m-d H:i:s', strtotime($update_date_debut)+$duree); + + // Seules les dates sont changées dans les champs de la source + $c['date_debut'] = $update_date_debut; + $c['date_fin'] = $update_date_fin; + + // On crée la nouvelle répétition + if ($id_evenement_new = agenda_action_insert_evenement($c['id_article'], $id_evenement)) { + // Si c'est bon, on ajoute tous les champs + sql_updateq( + 'spip_evenements', + $c, + 'id_evenement = '.$id_evenement_new + ); + + // Pour les créations il ne faut pas oublier de dupliquer les liens + // En effet, sinon les documents insérés avant la création (0-id_auteur) ne seront pas dupliqués + include_spip('action/editer_liens'); + objet_dupliquer_liens('evenement', $id_evenement, $id_evenement_new); + } + } + } + } +} + +/** + * Instituer un evenement + * + * @param int $id_evenement + * @param array $c + * @return bool|string + */ +function evenement_instituer($id_evenement, $c) { + + include_spip('inc/autoriser'); + include_spip('inc/modifier'); + + $row = sql_fetsel("id_article, statut", "spip_evenements", "id_evenement=".intval($id_evenement)); + $id_parent = $id_parent_ancien = $row['id_article']; + $statut = $statut_ancien = $row['statut']; + + $champs = array(); + + if (!autoriser('modifier', 'article', $id_parent) + OR (isset($c['id_parent']) AND !autoriser('modifier', 'article', $c['id_parent']))){ + spip_log("editer_evenement $id_evenement refus " . join(' ', $c)); + return false; + } + + // Verifier que l'article demande existe et est different + // de l'article actuel + if ($c['id_parent'] + AND $c['id_parent'] != $id_parent + AND (sql_countsel("spip_articles", "id_article=".intval($c['id_parent'])))) { + $id_parent = $champs['id_article'] = $c['id_parent']; + } + + $sa = sql_getfetsel('statut','spip_articles','id_article='.intval($id_parent)); + if ($id_parent + AND ( + $id_parent!==$id_parent_ancien OR $statut=='0' + )){ + switch($sa){ + case 'publie': + // statut par defaut si besoin + if ($statut=='0') + $champs['statut'] = $statut = 'publie'; + break; + case 'poubelle': + // si article a la poubelle, evenement aussi + $champs['statut'] = $statut = 'poubelle'; + break; + default: + // pas de publie ni 0 si article pas publie + if (in_array($statut,array('publie','0'))) + $champs['statut'] = $statut = 'prop'; + break; + } + } + + // si pas d'article lie, et statut par defaut + // on met en propose + if ($statut=='0') + $champs['statut'] = $statut = 'prop'; + + if (isset($c['statut']) + AND $s = $c['statut'] + AND $s != $statut) { + // pour instituer un evenement il faut avoir le droit d'instituer l'article associe avec le meme statut + if (autoriser('instituer', 'article', $id_parent, null, array('statut'=>$s)) + AND ($sa=='publie' OR $s!=='publie')) + $champs['statut'] = $statut = $s; + else + spip_log("editer_evenement $id_evenement refus " . join(' ', $c)); + } + + // Envoyer aux plugins + $champs = pipeline('pre_edition', + array( + 'args' => array( + 'table' => 'spip_evenements', + 'action'=>'instituer', + 'id_objet' => $id_evenement, + 'id_parent_ancien' => $id_parent_ancien, + 'statut_ancien' => $statut_ancien, + ), + 'data' => $champs + ) + ); + + if (!count($champs)) return; + + // Envoyer les modifs sur l'evenement et toutes ses repetitons + $ids = array_map('reset', sql_allfetsel('id_evenement', 'spip_evenements', 'id_evenement_source='.intval($id_evenement))); + $ids[] = intval($id_evenement); + sql_updateq('spip_evenements', $champs, sql_in('id_evenement', $ids)); + + // Invalider les caches + include_spip('inc/invalideur'); + suivre_invalideur("id='id_article/$id_parent_ancien'"); + suivre_invalideur("id='id_article/$id_parent'"); + + // Pipeline + pipeline('post_edition', + array( + 'args' => array( + 'table' => 'spip_evenements', + 'action'=>'instituer', + 'id_objet' => $id_evenement, + 'id_parent_ancien' => $id_parent_ancien, + 'statut_ancien' => $statut_ancien, + ), + 'data' => $champs + ) + ); + + // Notifications + if ($notifications = charger_fonction('notifications', 'inc')) { + $notifications('instituerevenement', $id_evenement, + array('id_parent' => $id_parent, 'statut' => $statut, 'id_parent_ancien' => $id_parent, 'statut_ancien' => $statut_ancien) + ); + } + + return ''; // pas d'erreur +} + +/* +function agenda_action_supprime_repetitions($supp_evenement){ + $res = sql_select("id_evenement", "spip_evenements", "id_evenement_source=".intval($supp_evenement)); + while ($row = sql_fetch($res)){ + $id_evenement = $row['id_evenement']; + sql_delete("spip_evenements", "id_evenement=".intval($id_evenement)); + } +} +*/ +/* +function agenda_action_supprime_evenement($id_article,$supp_evenement){ + $id_evenement = sql_getfetsel("id_evenement", "spip_evenements", array( + "id_article=" . intval($id_article), + "id_evenement=" . intval($supp_evenement))); + if (intval($id_evenement) AND $id_evenement == $supp_evenement){ + sql_delete("spip_evenements", "id_evenement=".intval($id_evenement)); + agenda_action_supprime_repetitions($id_evenement); + } + include_spip('inc/invalideur'); + suivre_invalideur("article/$id_article"); + $id_evenement = 0; + return $id_evenement; +}*/ + + +function agenda_action_insert_evenement($id_article,$id_evenement_source = 0){return evenement_inserer($id_article,$id_evenement_source);} +function action_evenement_set($id_evenement, $set=null){return evenement_modifier($id_evenement, $set);} +function agenda_action_instituer_evenement($id_evenement, $c) {return evenement_instituer($id_evenement,$c);} +?> diff --git a/www/plugins/agenda_3_5/action/supprimer_evenement.php b/www/plugins/agenda_3_5/action/supprimer_evenement.php new file mode 100644 index 0000000..dc0b8c9 --- /dev/null +++ b/www/plugins/agenda_3_5/action/supprimer_evenement.php @@ -0,0 +1,27 @@ +$id_article))){ + include_spip("action/editer_evenement"); + evenement_modifier($id_evenement,array('statut'=>'poubelle')); + } +} + +?> \ No newline at end of file diff --git a/www/plugins/agenda_3_5/agenda_administrations.php b/www/plugins/agenda_3_5/agenda_administrations.php new file mode 100644 index 0000000..c40462a --- /dev/null +++ b/www/plugins/agenda_3_5/agenda_administrations.php @@ -0,0 +1,103 @@ +"concat(tables_liees,'evenements,')"), "evenements='oui'"), + array('sql_alter',"TABLE spip_groupes_mots DROP evenements"), + ); + + $maj['0.20'] = array( + array('sql_alter',"TABLE spip_rubriques ADD agenda tinyint(1) DEFAULT 0 NOT NULL"), + ); + + $maj['0.21'] = array( + array('sql_alter',"TABLE spip_evenements ADD adresse text NOT NULL"), + array('sql_alter',"TABLE spip_evenements ADD inscription text NOT NULL"), + array('sql_alter',"TABLE spip_evenements ADD places text NOT NULL"), + ); + + $maj['0.22'] = array( + array('maj_tables',array('spip_evenements_participants')), + ); + + $maj['0.23'] = array( + array('sql_alter',"TABLE spip_evenements CHANGE titre titre text NOT NULL DEFAULT ''"), + array('sql_alter',"TABLE spip_evenements CHANGE descriptif descriptif text NOT NULL DEFAULT ''"), + array('sql_alter',"TABLE spip_evenements CHANGE lieu lieu text NOT NULL DEFAULT ''"), + array('sql_alter',"TABLE spip_evenements CHANGE adresse adresse text NOT NULL DEFAULT ''"), + ); + include_spip('maj/svn10000'); + $maj['0.24.0'] = array( + array('maj_liens','mot','evenement'), + 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'), + ); + + include_spip('base/upgrade'); + maj_plugin($nom_meta_base_version, $version_cible, $maj); +} + +function agenda_vider_tables($nom_meta_base_version) { + sql_drop_table("spip_evenements"); + #sql_drop_table("spip_mots_evenements"); // au cas ou ? + sql_alter("TABLE spip_rubriques DROP COLUMN agenda"); + effacer_meta($nom_meta_base_version); +} + +function upgrade_evenements_articles_012(){ + $res = sql_select("*", "spip_evenements_articles"); + while ($row = sql_fetch($res)){ + $id_article = $row['id_article']; + $id_evenement = $row['id_evenement']; + sql_update("spip_evenements", array('id_article'=>$id_article),'id_evenement='.intval($id_evenement)); + } +} + +function upgrade_evenements_statut_025(){ + include_spip('action/editer_evenement'); + $res = sql_select('id_evenement','spip_evenements',"statut='0'"); + while ($row = sql_fetch($res)){ + evenement_modifier($row['id_evenement'],array()); + } +} + +?> diff --git a/www/plugins/agenda_3_5/agenda_autoriser.php b/www/plugins/agenda_3_5/agenda_autoriser.php new file mode 100644 index 0000000..5a944c9 --- /dev/null +++ b/www/plugins/agenda_3_5/agenda_autoriser.php @@ -0,0 +1,146 @@ + 0){ + return autoriser('creerevenementdans', 'article', $options['id_article'], $qui, $options); + } + else{ + return ($qui['statut'] == '0minirezo' and !$qui['restreint']); + } +} + +/** + * Autorisation de modifier un evenement : autorisations de l'article parent + * + * @param string $faire + * @param string $quoi + * @param int $id + * @param int $qui + * @param array $options + * @return bool + */ +function autoriser_evenement_modifier_dist($faire,$quoi,$id,$qui,$options){ + if (!isset($options['id_article']) OR !$id_article=$options['id_article']) + $id_article = sql_getfetsel('id_article','spip_evenements','id_evenement='.intval($id)); + if (!$id_article) return false; + return autoriser('modifier','article',$id_article,$qui); +} + +/** + * Autorisation d'instituer un evenement : voir si l'article est publie ou non + * @param string $faire + * @param string $quoi + * @param int $id + * @param int $qui + * @param array $options + * @return bool + */ +function autoriser_evenement_instituer_dist($faire,$quoi,$id,$qui,$options){ + if (!isset($options['id_article']) OR !$id_article=$options['id_article']) + $id_article = sql_getfetsel('id_article','spip_evenements','id_evenement='.intval($id)); + if (!$id_article) return false; + $statut = sql_getfetsel('statut','spip_articles','id_article='.intval($id_article)); + // interdit de publier un evenement sur un article non publie + if ($statut!=='publie' + AND isset($options['statut']) + AND $options['statut']=='publie') + return false; + $options['id_article']=$id_article; + return autoriser('modifier','evenement',$id,$qui,$options); +} + +/** + * Autorisation de voir un evenement : autorisations de l'article parent + * + * @param string $faire + * @param string $quoi + * @param int $id + * @param int $qui + * @param array $options + * @return bool + */ +function autoriser_evenement_voir_dist($faire,$quoi,$id,$qui,$options){ + if (!isset($options['id_article']) OR !$id_article=$options['id_article']) + $id_article = sql_getfetsel('id_article','spip_evenements','id_evenement='.intval($id)); + if (!$id_article) return false; + return autoriser('voir','article',$id_article,$qui); +} + + +/** + * Autorisation de supprimer un evenement : autorisations de l'article parent + * + * @param string $faire + * @param string $quoi + * @param int $id + * @param int $qui + * @param array $options + * @return bool + */ +function autoriser_evenement_supprimer_dist($faire,$quoi,$id,$qui,$options){ + if (!isset($options['id_article']) OR !$id_article=$options['id_article']) + $id_article = sql_getfetsel('id_article','spip_evenements','id_evenement='.intval($id)); + if (!$id_article) { + if ($qui['statut']=='0minirezo') + return true; + else + return false; + } + return autoriser('modifier','article',$id_article,$qui); +} + + +?> diff --git a/www/plugins/agenda_3_5/agenda_fonctions.php b/www/plugins/agenda_3_5/agenda_fonctions.php new file mode 100644 index 0000000..2060d58 --- /dev/null +++ b/www/plugins/agenda_3_5/agenda_fonctions.php @@ -0,0 +1,197 @@ + 28/02/2007 + * + * @param string $date + * @param int $decalage + * @param string $format + * @return string + */ +function agenda_moisdecal($date,$decalage,$format="Y-m-d H:i:s"){ + include_spip('inc/filtres'); + $date_array = recup_date($date); + if ($date_array) list($annee, $mois, $jour) = $date_array; + if (!$jour) $jour=1; + if (!$mois) $mois=1; + $mois2 = $mois + $decalage; + $date2 = mktime(1, 1, 1, $mois2, $jour, $annee); + // mois normalement attendu + $mois3 = date('m', mktime(1, 1, 1, $mois2, 1, $annee)); + // et si le mois de la nouvelle date a moins de jours... + $mois2 = date('m', $date2); + if ($mois2 - $mois3) $date2 = mktime(1, 1, 1, $mois2, 0, $annee); + return date($format, $date2); +} + + +/** + * decale les jours de la date. + * + * @param string $date + * @param int $decalage + * @param string $format + * @return string + */ +function agenda_jourdecal($date,$decalage,$format="Y-m-d H:i:s"){ + include_spip('inc/filtres'); + $date_array = recup_date($date); + if ($date_array) list($annee, $mois, $jour) = $date_array; + if (!$jour) $jour=1; + if (!$mois) $mois=1; + $jour2 = $jour + $decalage; + $date2 = mktime(1, 1, 1, $mois, $jour2, $annee); + return date($format, $date2); +} + +/** + * Filtre pour tester si une date est dans le futur + * [(#DATE|agenda_date_a_venir) Dans le futur...] + * + * @param string $date_test + * @param string $date_ref + * date de reference, par defaut celle du serveur (argument utile pour les tests unitaires) + * @return string + */ +function agenda_date_a_venir($date_test,$date_ref=null){ + if (is_null($date_ref)) + $date_ref = $_SERVER['REQUEST_TIME']; + else + $date_ref = strtotime($date_ref); + + return (strtotime($date_test)>$date_ref)?' ':''; +} + + +/** + * Filtre pour tester si une date est dans le passe + * [(#DATE|agenda_date_passee) Dans le passe...] + * + * @param string $date_test + * @param string $date_ref + * date de reference, par defaut celle du serveur (argument utile pour les tests unitaires) + * @return string + */ +function agenda_date_passee($date_test,$date_ref=null){ + if (is_null($date_ref)) + $date_ref = $_SERVER['REQUEST_TIME']; + else + $date_ref = strtotime($date_ref); + + return (strtotime($date_test)<$date_ref)?' ':''; +} + +/** + * Determiner la date de debut de l'affichage de la liste des evenements + * en fonction du mode demande et de la date courante + * @param string $date + * @param string $affichage_debut + * @return string + */ +function agenda_date_debut_liste($date,$affichage_debut='date_jour'){ + switch($affichage_debut){ + case 'date_jour' : + break; + case 'date_veille' : + $date = agenda_jourdecal($date, -1); + break; + case 'debut_semaine' : + $t = strtotime($date); + $date = agenda_jourdecal($date, -(date('N', $t)-1)); + break; + case 'debut_semaine_prec' : + $t = strtotime($date); + $date = agenda_jourdecal($date, -(date('N', $t)-1+7)); + break; + case 'debut_mois' : + $t = strtotime($date); + $date = agenda_jourdecal($date, -(date('j', $t)-1)); + break; + case 'debut_mois_prec' : + $t = strtotime($date); + $date = agenda_jourdecal($date, -(date('j', $t)-1)); // debut de mois + $date = agenda_moisdecal($date, -1); // precedent + break; + case 'debut_mois_1' : + case 'debut_mois_2' : + case 'debut_mois_3' : + case 'debut_mois_4' : + case 'debut_mois_5' : + case 'debut_mois_6' : + case 'debut_mois_7' : + case 'debut_mois_8' : + case 'debut_mois_9' : + case 'debut_mois_10' : + case 'debut_mois_11' : + case 'debut_mois_12' : + $t = strtotime($date); + $mdebut = intval(substr($affichage_debut,strlen('debut_mois_'))); + $mcourant = date('n', $t); + $offset = ($mcourant-$mdebut+12)%12; + $date = agenda_jourdecal($date, -(date('j', $t)-1)); // debut de mois + $date = agenda_moisdecal($date, -$offset); + break; + } + return $date; +} +/** + * Afficher la periode de l'agenda : + * Le nom du mois si nb_mois = 1 + * L'annee si nb_mois=12 et debut du mois = janvier + * sinon : mois annee - mois annee (xxx 12 - yyy 13) + * si le debut de la periode est fixe (debut d'un mois donnee), on precede de + * "Annee" ou "Saison" la periode + * + * @param string $date + * @param int $nb_mois + * @param string $affichage_debut + * @return string + */ +function affdate_periode($date,$nb_mois,$affichage_debut='date_jour'){ + $fixe = in_array($affichage_debut,array('debut_mois_1','debut_mois_2','debut_mois_3','debut_mois_4','debut_mois_5','debut_mois_6','debut_mois_7','debut_mois_8','debut_mois_9','debut_mois_10','debut_mois_11','debut_mois_12')); + if ($nb_mois==1) + return affdate_mois_annee($date); + if ($nb_mois==12 AND mois($date)==1) + return ($fixe?_T('agenda:label_annee').' ':'').annee($date); + + return ($fixe?_T('agenda:label_periode_saison').' ':'').affdate_mois_annee($date)." - ".affdate_mois_annee(agenda_moisdecal($date, $nb_mois-1)); +} + +/** + * Raccourcis [->evenement12] et [->evt12] + */ +/* +function generer_url_evenement($id, $args='', $ancre='') { + return array('evenement', $id); +}*/ + +?> diff --git a/www/plugins/agenda_3_5/agenda_pipelines.php b/www/plugins/agenda_3_5/agenda_pipelines.php new file mode 100644 index 0000000..1cdf7eb --- /dev/null +++ b/www/plugins/agenda_3_5/agenda_pipelines.php @@ -0,0 +1,253 @@ +'; + } + } + return $flux; +} + +/** + * Inserer les infos d'agenda sur les articles et rubriques + * + * @param array $flux + * @return array + */ +function agenda_affiche_milieu($flux) { + $e = trouver_objet_exec($flux['args']['exec']); + $out = ""; + if ($e['type']=='rubrique' + AND autoriser('configurer') + AND $e['edition']==false + AND $id_rubrique = intval($flux['args']['id_rubrique']) + AND autoriser('modifier', 'rubrique', $id_rubrique)){ + $activer = true; + $res = ""; + $actif = sql_getfetsel('agenda','spip_rubriques','id_rubrique='.intval($id_rubrique)); + $statut="-32"; + $alt = ""; + $voir = ""; + if (!sql_countsel('spip_rubriques','agenda=1')) + $res .= "" . _T('agenda:aucune_rubrique_mode_agenda') . "
"; + else { + include_spip('inc/rubriques'); + if (sql_countsel('spip_rubriques',sql_in('id_rubrique',calcul_hierarchie_in($id_rubrique))." AND agenda=1 AND id_rubrique<>".intval($id_rubrique))){ + $alt = _T('agenda:rubrique_dans_une_rubrique_mode_agenda'); + $activer = false; + $statut="-ok-32"; + $voir = _T('agenda:voir_evenements_rubrique'); + } + elseif(!$actif) { + $alt = _T('agenda:rubrique_sans_gestion_evenement').'
'; + $statut="-non-32"; + } + if ($actif){ + $alt = _T('agenda:rubrique_mode_agenda').'
'; + $statut="-ok-32"; + $voir = _T('agenda:voir_evenements_rubrique'); + } + } + + if (!$actif){ + if($activer){ + $res .= bouton_action(_T('agenda:rubrique_activer_agenda'),generer_action_auteur('activer_agenda_rubrique',$id_rubrique,self()),'ajax'); + } + } + else + $res .= bouton_action(_T('agenda:rubrique_desactiver_agenda'),generer_action_auteur('activer_agenda_rubrique',"-$id_rubrique",self()),'ajax'); + if ($voir) + $res .= " | $voir"; + if ($res) + $out .= boite_ouvrir(_T('agenda:agenda').http_img_pack("agenda$statut.png",$alt,"class='statut'",$alt),'simple agenda-statut') + . $res + . boite_fermer(); + } + elseif ($e['type']=='article' + AND $e['edition']==false){ + $id_article = $flux['args']['id_article']; + $out .= recuperer_fond('prive/objets/contenu/article-evenements',$flux['args']); + } + + if ($out){ + if ($p=strpos($flux['data'],'')) + $flux['data'] = substr_replace($flux['data'],$out,$p,0); + else + $flux['data'] .= $out; + } + return $flux; +} + +/** + * Optimiser la base (evenements a la poubelle, lies a des articles disparus, ou liens mots sur evenements disparus) + * + * @param array $flux + * @return array + */ +function agenda_optimiser_base_disparus($flux){ + + # passer a la poubelle + # les evenements lies a un article inexistant + $res = sql_select("DISTINCT evenements.id_article","spip_evenements AS evenements + LEFT JOIN spip_articles AS articles + ON evenements.id_article=articles.id_article","articles.id_article IS NULL"); + while ($row = sql_fetch($res)) + sql_updateq("spip_evenements",array('statut'=>'poubelle'),"id_article=".$row['id_article']); + + // Evenements a la pouvelle + sql_delete("spip_evenements", "statut='poubelle' AND maj < ".$flux['args']['date']); + + include_spip('action/editer_liens'); + // optimiser les liens de tous les mots vers des objets effaces + // et depuis des mots effaces + $flux['data'] += objet_optimiser_liens(array('mot'=>'*'),array('evenement'=>'*')); + + return $flux; +} + + +/** + * Lister les evenements dans le calendrier de l'espace prive (extension organiseur) + * + * @param array $flux + * @return array + */ +function agenda_quete_calendrier_prive($flux){ + $quoi = $flux['args']['quoi']; + if (!$quoi OR $quoi=='evenements'){ + $start = sql_quote($flux['args']['start']); + $end = sql_quote($flux['args']['end']); + $res = sql_select('*','spip_evenements AS E',"((E.date_fin >= $start OR E.date_debut >= $start) AND E.date_debut <= $end)"); + while ($row = sql_fetch($res)){ + $flux['data'][] = array( + 'id' => $row['id_evenement'], + 'title' => $row['titre'], + 'allDay' => false, + 'start' => $row['date_debut'], + 'end' => $row['date_fin'], + 'url' => str_replace("&","&",generer_url_entite($row['id_evenement'],'evenement')), + 'className' => "calendrier-event evenement calendrier-couleur5", + 'description' => $row['descriptif'], + ); + } + } + return $flux; +} + +/** + * Synchroniser le statut des evenements lorsqu'on publie/depublie un article + * @param array $flux + * @return array + */ +function agenda_post_edition($flux){ + if ($flux['args']['table']=='spip_articles' + AND $flux['args']['action'] == 'instituer' + AND $id_article = $flux['args']['id_objet'] + AND isset($flux['data']['statut']) + AND $statut = $flux['data']['statut'] + AND $statut_ancien = $flux['args']['statut_ancien'] + AND $statut!=$statut_ancien){ + + $set = array(); + // les evenements principaux, associes a cet article + $where = array('id_article='.intval($id_article),'id_evenement_source=0'); + switch($statut){ + case 'poubelle': + // on passe aussi tous les evenements associes a la poubelle, sans distinction + $set['statut'] = 'poubelle'; + break; + case 'publie': + // on passe aussi tous les evenements prop en publie + $set['statut'] = 'publie'; + $where[] = "statut='prop'"; + break; + default: + if ($statut_ancien=='publie'){ + // on depublie aussi tous les evenements publie + $set['statut'] = 'prop'; + $where[] = "statut='publie'"; + } + break; + } + if (count($set)){ + include_spip('action/editer_evenement'); + $res = sql_select('id_evenement','spip_evenements',$where); + // et on applique a tous les evenements lies a l'article + while ($row = sql_fetch($res)){ + evenement_modifier($row['id_evenement'],$set); + } + } + } + return $flux; +} + +/* + * Synchroniser les liaisons (mots, docs, gis, etc) de l'événement édité avec ses répétitions s'il en a + * @param array $flux + * @param array + */ +function agenda_post_edition_lien($flux){ + // Si on est en train de lier ou délier quelque chose a un événement + if ($flux['args']['objet'] == 'evenement'){ + // On cherche si cet événement a des répétitions + if ($id_evenement = $flux['args']['id_objet'] + and $id_evenement > 0 + and $repetitions = sql_allfetsel('id_evenement', 'spip_evenements', 'id_evenement_source = '.$id_evenement) + and is_array($repetitions) + ){ + include_spip('action/editer_liens'); + + // On a la liste des ids des répétitions + $repetitions = array_map('reset', $repetitions); + + // Si c'est un ajout de lien, on l'ajoute à toutes les répétitions + if ($flux['args']['action'] == 'insert'){ + objet_associer( + array($flux['args']['objet_source'] => $flux['args']['id_objet_source']), + array('evenement' => $repetitions) + ); + } + // Si c'est une suppression de lien, on le supprime à toutes les répétitions + elseif ($flux['args']['action'] == 'delete'){ + objet_dissocier( + array($flux['args']['objet_source'] => $flux['args']['id_objet_source']), + array('evenement' => $repetitions) + ); + } + } + } + + return $flux; +} + +/** + * Les evenements peuvent heriter des compositions des articles + * @param array $heritages + * @return array + */ +function agenda_compositions_declarer_heritage($heritages) { + $heritages['evenement'] = 'article'; + return $heritages; +} + + +?> diff --git a/www/plugins/agenda_3_5/base/agenda_evenements.php b/www/plugins/agenda_3_5/base/agenda_evenements.php new file mode 100644 index 0000000..3b7973b --- /dev/null +++ b/www/plugins/agenda_3_5/base/agenda_evenements.php @@ -0,0 +1,148 @@ + "BIGINT (21) DEFAULT '0' NOT NULL", + "id_auteur" => "BIGINT (21) DEFAULT '0' NOT NULL", + "date" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", + "reponse" => "char(3) default '?' NOT NULL", // oui, non, ? + ); + + $spip_evenements_participants_key = array( + "PRIMARY KEY" => "id_evenement, id_auteur", + "KEY id_auteur" => "id_auteur"); + + $tables_auxiliaires['spip_evenements_participants'] = array( + 'field' => &$spip_evenements_participants, + 'key' => &$spip_evenements_participants_key); + + return $tables_auxiliaires; +} + +/** + * Declarer la table objet evenement + * + * @param array $tables + * @return array + */ +function agenda_declarer_tables_objets_sql($tables){ + $tables['spip_evenements'] = array( + 'page'=>'evenement', + 'texte_retour' => 'icone_retour', + 'texte_objets' => 'agenda:info_evenements', + 'texte_objet' => 'agenda:info_evenement', + 'texte_modifier' => 'agenda:icone_modifier_evenement', + 'texte_creer' => 'agenda:titre_cadre_ajouter_evenement', + 'texte_logo_objet' => 'agenda:texte_logo_objet', + 'info_aucun_objet'=> 'agenda:info_aucun_evenement', + 'info_1_objet' => 'agenda:info_un_evenement', + 'info_nb_objets' => 'agenda:info_nombre_evenements', + 'titre' => 'titre, "" AS lang', + 'date' => 'date_debut', + 'principale' => 'oui', + 'champs_editables' => array('date_debut', 'date_fin', 'titre', 'descriptif','lieu', 'adresse', 'inscription', 'places', 'horaire'), + 'field'=> array( + "id_evenement" => "bigint(21) NOT NULL", + "id_article" => "bigint(21) DEFAULT '0' NOT NULL", + "date_debut" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", + "date_fin" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", + "titre" => "text NOT NULL DEFAULT ''", + "descriptif" => "text NOT NULL DEFAULT ''", + "lieu" => "text NOT NULL DEFAULT ''", + "adresse" => "text NOT NULL DEFAULT ''", + "inscription" => "tinyint(1) DEFAULT 0 NOT NULL", + "places" => "int(11) DEFAULT 0 NOT NULL", + "horaire" => "varchar(3) DEFAULT 'oui' NOT NULL", + "id_evenement_source" => "bigint(21) NOT NULL", + "statut" => "varchar(10) DEFAULT '0' NOT NULL", + "maj" => "TIMESTAMP" + ), + 'key' => array( + "PRIMARY KEY" => "id_evenement", + "KEY date_debut" => "date_debut", + "KEY date_fin" => "date_fin", + "KEY id_article" => "id_article" + ), + 'join' => array( + "id_evenement"=>"id_evenement", + "id_article"=>"id_article" + ), + 'tables_jointures' => array( + 'articles', + 'evenements_participants', + ), + 'rechercher_champs' => array( + 'titre' => 8, 'descriptif' => 5, 'lieu' => 5, 'adresse' => 3 + ), + 'rechercher_jointures' => array( + 'document' => array('titre' => 2, 'descriptif' => 1) + ), + 'statut' => array( + array( + 'champ' => 'statut', + 'publie' => 'publie', + 'previsu' => '!', + 'exception' => array('statut','tout') + ), + ), + 'statut_titres' => array( + 'prop'=>'agenda:info_evenement_propose', + 'publie'=>'agenda:info_evenement_publie', + 'poubelle'=>'agenda:info_evenement_supprime' + ), + 'statut_textes_instituer' => array( + 'prop' => 'texte_statut_propose_evaluation', + 'publie' => 'texte_statut_publie', + 'poubelle' => 'texte_statut_poubelle', + ), + 'texte_changer_statut' => 'agenda:texte_evenement_statut', + 'champs_versionnes' => array('id_article', 'titre', 'descriptif', 'lieu', 'adresse'), + + ); + + //-- Jointures ---------------------------------------------------- + $tables['spip_articles']['tables_jointures'][] = 'evenements'; + $tables['spip_auteurs']['tables_jointures'][] = 'evenements_participants'; + $tables['spip_rubriques']['field']['agenda'] = 'tinyint(1) DEFAULT 0 NOT NULL'; + + return $tables; +} + +?> \ No newline at end of file diff --git a/www/plugins/agenda_3_5/css/spip.agenda.css b/www/plugins/agenda_3_5/css/spip.agenda.css new file mode 100644 index 0000000..795e0c5 --- /dev/null +++ b/www/plugins/agenda_3_5/css/spip.agenda.css @@ -0,0 +1,36 @@ + +.evenement.one {padding: 0.75em;background: #eee;margin-bottom: 1.5em;} +.evenement.one .lire-la-suite {display: none;} + +.long .liste-items .evenement {padding-left: 7.5em;} +.long .liste-items .evenement .banner {display:block;float: left;margin-left: -7.5em;width: 5.5em;text-align: center;overflow: hidden;opacity: 0.7;} +.long .liste-items .evenement .banner .label {display: block;padding:0.75em 0;} +.long .liste-items .evenement .banner .day {display: block;text-align: center;font-size: 2em;line-height: 1;} +.long .liste-items .evenement .banner .month {display: block;text-align: center;text-transform: uppercase;font-size: 0.85em;} +.long .liste-items .evenement .banner .year {display: block;text-align: center;font-size: 0.85em;} + +/*.long .liste-items.evenements .item.month, .long .liste-items.evenements .item.month {padding: 0.75em;background: #e4e4e4; text-transform: uppercase;}*/ +.liste-items.evenements .item.fini .entry-title a {color:#ccc;} +.liste-items.evenements .item.fini .entry-content {margin-bottom: 0;max-height: 4.5em;overflow: hidden;} +.liste-items.evenements .item.fini .meta-publi {display: none;} +.liste-items.evenements .item.fini .lire-la-suite {display: none;} +.liste-items.evenements .item.fini .evenement .banner {opacity: 0.5;} + +.liste-items.evenements.short .info-publi, .short .liste-items.evenements .info-publi {display:block;margin: 0;} +.liste-items.evenements .meta-publi {left:7.5em;} +.liste-items.evenements .lire-la-suite {left:7.5em;} +.liste-items.evenements .entry-title {margin-top: 0;} + +.page_jour .liste-items.evenements .evenement .banner {display: none;} +.page_jour .long .liste-items .evenement{padding-left: 0;} +.page_jour .liste-items.evenements .meta-publi {left:0;} +.page_jour .liste-items.evenements .lire-la-suite {left:0;} + +/* +.liste-items.evenements.short .evenement {padding-left: 0;background-image: none;} +.liste-items.evenements.short .entry-title {margin: 0;font-size: inherit;} +.liste-items.evenements.short .banner {display: none;} +.liste-items.evenements.short .entry-content {display: none;} +.liste-items.evenements.short .lire-la-suite {display: none;} +.liste-items.evenements.short .meta-publi {display: none;} +*/ \ No newline at end of file diff --git a/www/plugins/agenda_3_5/demo/agenda_calendrier_mini.html b/www/plugins/agenda_3_5/demo/agenda_calendrier_mini.html new file mode 100644 index 0000000..34e8c5b --- /dev/null +++ b/www/plugins/agenda_3_5/demo/agenda_calendrier_mini.html @@ -0,0 +1,173 @@ +#CACHE{86400} + + + + [(#TITRE|textebrut)][ - (#NOM_SITE_SPIP|textebrut)] + + [] + + [] + + + + + + + + + + + + + +
+ + [(#REM) Entete de la page + titre du site ] + + + [(#REM) Fil d'Ariane ] +
<:accueil_site:> > [(#TITRE|couper{80})][ > (#TITRE|couper{80})]
+ + +
+ + + [(#REM) Contenu principal : contenu de l'article ] + +
+ +[(#REM) mini calendrier : +1er arg la date, +2eme le nom de la variable date (optionel : 'date' par defaut) +3eme l'url sur laquelle boucler (optionel : url courante par defaut) ] +#CALENDRIER_MINI{#ENV{date},'date',#SELF} + +
+ #DEBUT_SURLIGNE + [(#LOGO_ARTICLE||image_reduire{200,200})] + [

(#SURTITRE)

] +

#TITRE

+ [

(#SOUSTITRE)

] + #FIN_SURLIGNE + +

[(#DATE|nom_jour) ][(#DATE|affdate)][, <:par_auteur:> (#LESAUTEURS)]

+ + [(#REM) Traductions de l'article ] + +
+

<:trad_article_traduction:>

+
    + [(#LANG|traduire_nom_langue)] + +
  • [(#LANG|traduire_nom_langue)]
  • + +
+
+
+
+ + + #DEBUT_SURLIGNE + [
(#CHAPO)
] +
+ [

<:voir_en_ligne:> : [(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]

] + [
(#TEXTE|image_reduire{520,0})
] + #FIN_SURLIGNE + + [(#REM) Portfolio : album d'images ] + + + + +
+ #EMBED_DOCUMENT + [
(#TITRE)
] + [
(#DESCRIPTIF)
] +
+ + + [

<:info_ps:>

#DEBUT_SURLIGNE(#PS)#FIN_SURLIGNE
] + + [(#REM) Autres documents joints a l'article ] + +
+

<:titre_documents_joints:>

+ +
+
+ + [(#REM) Petition : + La petition ayant une PAGINATION il faut absolument lui passer SELF] + [ #REM Conserver cet invalideur invisible : (#PETITION|?{'',''}) ] + + + [

<:info_notes:>

#DEBUT_SURLIGNE(#NOTES)#FIN_SURLIGNE
] + + [(#REM) Forum de l'article ] + [

<:repondre_article:>

] + + + +
+ + + [(#REM) Menu de navigation laterale ] + + +
+ + [(#REM) Pied de page ] + + +
+ + + diff --git a/www/plugins/agenda_3_5/demo/exemple_navigation_jours.html b/www/plugins/agenda_3_5/demo/exemple_navigation_jours.html new file mode 100644 index 0000000..b3b318b --- /dev/null +++ b/www/plugins/agenda_3_5/demo/exemple_navigation_jours.html @@ -0,0 +1,8 @@ + +[ +[(#VAL{Y-m-d}|date{#VAL{-1 day}|strtotime{#ENV{date}|affdate{U}}}|nom_jour)] ‹] + +[(#EVAL{' '}|concat{[(#ENV{date}|nom_jour) ],#ENV{date}|jour})] + +[›  [(#VAL{Y-m-d}|date{#VAL{+1 day}|strtotime{#ENV{date}|affdate{U}}}|nom_jour)]] \ No newline at end of file diff --git a/www/plugins/agenda_3_5/demo/test/test_boucle_evenements.html b/www/plugins/agenda_3_5/demo/test/test_boucle_evenements.html new file mode 100644 index 0000000..91769a1 --- /dev/null +++ b/www/plugins/agenda_3_5/demo/test/test_boucle_evenements.html @@ -0,0 +1,9 @@ + +#ID_EVENEMENT: + + + + +plop + + \ No newline at end of file diff --git a/www/plugins/agenda_3_5/demo/test/testagenda.html b/www/plugins/agenda_3_5/demo/test/testagenda.html new file mode 100644 index 0000000..8e994db --- /dev/null +++ b/www/plugins/agenda_3_5/demo/test/testagenda.html @@ -0,0 +1,36 @@ +

{id_mot}

+
    + +
  • #TITRE + +
      + +
    • #TITRE
    • + +
    +
    +
  • + +
+ +

{titre_mot}

+
    + +
  • #TITRE
  • + +
+ +

{branche}

+
    + +
  • #TITRE + +
      + +
    • #TITRE
    • + +
    +
    +
  • + +
diff --git a/www/plugins/agenda_3_5/formulaires/configurer_agenda.html b/www/plugins/agenda_3_5/formulaires/configurer_agenda.html new file mode 100644 index 0000000..7d61bbd --- /dev/null +++ b/www/plugins/agenda_3_5/formulaires/configurer_agenda.html @@ -0,0 +1,105 @@ +
+

<:configureragenda:titre_configuration:>

+ [

(#ENV**{message_ok})

] + [

(#ENV**{message_erreur})

] + +
+ [(#REM) déclarer les hidden qui déclencheront le service du formulaire + paramêtre : url d'action ] + #ACTION_FORMULAIRE{#ENV{action}} + #SET{fl,configureragenda} +
    + + #SET{name,titre}#SET{obli,''}[(#SET{defaut,<:agenda:titre_sur_l_agenda:>})]#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
  • + [ + (#GET{erreurs}) + ] +
  • + #SET{name,descriptif}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
  • + [ + (#GET{erreurs}) + ] +
  • + #SET{name,url_evenement}#SET{obli,''}#SET{defaut,'evenement'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
  • + [ + (#GET{erreurs}) + ] + #SET{val,evenement} +
    + + +
    + #SET{val,article} +
    + + +
    +
  • + [(#VAL{_AGENDA_INSERT_HEAD_CSS}|defined|non) + #SET{name,insert_head_css}#SET{obli,''}#SET{defaut,1}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
  • [ + (#GET{erreurs}) + ] + #SET{val,1} +
    + + +
    +
  • + ] +
  • +
    + <:configureragenda:legend_presentation_agenda:> +
      + #SET{name,affichage_debut}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
    • + [ + (#GET{erreurs}) + ] +
    • + #SET{name,affichage_duree}#SET{obli,''}#SET{defaut,1}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
    • + [ + (#GET{erreurs}) + ] +
    • +
    +
    +
  • +
+ + [(#REM) ajouter les saisies supplémentaires : extra et autre, à cet endroit ] + +

  + +

+
+
\ No newline at end of file diff --git a/www/plugins/agenda_3_5/formulaires/editer_evenement.html b/www/plugins/agenda_3_5/formulaires/editer_evenement.html new file mode 100644 index 0000000..269778e --- /dev/null +++ b/www/plugins/agenda_3_5/formulaires/editer_evenement.html @@ -0,0 +1,113 @@ +
+ [

(#ENV**{message_ok})

] + [

(#ENV**{message_erreur})

] + [(#ENV{editable}) +
+ [(#REM) declarer les hidden qui declencheront le service du formulaire + parametre : url d'action ] + #ACTION_FORMULAIRE{#ENV{action}} + + +
    +
  • + [ + (#ENV**{erreurs}|table_valeur{titre}) + ] +
  • +
  • + [ + (#ENV**{erreurs}|table_valeur{id_parent}) + ] +
  • +
  • <:agenda:evenement_date:> +
      +
    • + [ + (#ENV**{erreurs}|table_valeur{horaire}) + ] +
    • +
    • + [ + (#ENV**{erreurs}|table_valeur{date_debut})][ + (#ENV**{erreurs}|table_valeur{date_fin}) + ] + + + + + + +
    • +
    +
  • +
  • + [ + (#ENV{repetitions}|non)<:agenda:ajouter_repetition:> +
    ][ + (#ENV**{erreurs}|table_valeur{repetitions}) + ]
    + [ + (#ENV{repetitions}|non)
    ] +
  • +
  • + [ + (#ENV**{erreurs}|table_valeur{descriptif}) + ] +
  • [ + (#ENV{affiche_inscription,oui}|=={oui}|oui) +
  • +
    + [(#ENV**{erreurs}|table_valeur{inscription})] + + +
    + [ + (#ENV**{erreurs}|table_valeur{places}) + ] +
    +
  • ] +
  • + [ + (#ENV**{erreurs}|table_valeur{lieu}) + ] +
  • +
  • + [ + (#ENV**{erreurs}|table_valeur{adresse}) + ] +
  • +
+ [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ] + +

+
+ #INCLURE{fond=formulaires/dateur/inc-dateur} + ] +
+ \ No newline at end of file diff --git a/www/plugins/agenda_3_5/formulaires/editer_evenement.php b/www/plugins/agenda_3_5/formulaires/editer_evenement.php new file mode 100644 index 0000000..c998359 --- /dev/null +++ b/www/plugins/agenda_3_5/formulaires/editer_evenement.php @@ -0,0 +1,136 @@ +'publie')); + } + $id_evenement = $res['id_evenement']; + if ($res['redirect']) { + if (strpos($res['redirect'],'article')!==false){ + $id_article = sql_getfetsel('id_article','spip_evenements','id_evenement='.intval($id_evenement)); + $res['redirect'] = parametre_url($res['redirect'],'id_article',$id_article); + } + } + return $res; +} + +?> diff --git a/www/plugins/agenda_3_5/formulaires/evenement_participants.html b/www/plugins/agenda_3_5/formulaires/evenement_participants.html new file mode 100644 index 0000000..3ba1228 --- /dev/null +++ b/www/plugins/agenda_3_5/formulaires/evenement_participants.html @@ -0,0 +1,15 @@ +
+ [

(#ENV*{message_ok})

] + [

(#ENV*{message_erreur})

] +
+ #ACTION_FORMULAIRE{#ENV{action}} +
 
+ + + +
+
+ diff --git a/www/plugins/agenda_3_5/formulaires/evenement_participants.php b/www/plugins/agenda_3_5/formulaires/evenement_participants.php new file mode 100644 index 0000000..7761a0e --- /dev/null +++ b/www/plugins/agenda_3_5/formulaires/evenement_participants.php @@ -0,0 +1,83 @@ +$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 ''; +} +?> diff --git a/www/plugins/agenda_3_5/formulaires/migrer_agenda.html b/www/plugins/agenda_3_5/formulaires/migrer_agenda.html new file mode 100644 index 0000000..29f09e7 --- /dev/null +++ b/www/plugins/agenda_3_5/formulaires/migrer_agenda.html @@ -0,0 +1,102 @@ +
+

<:migreragenda:titre_migrer_agenda:>

+ [

(#ENV**{message_ok})

] + [

(#ENV**{message_erreur})

] + [(#ENV{editable}) +
+ [(#REM) déclarer les hidden qui déclencheront le service du formulaire + paramêtre : url d'action ] + #ACTION_FORMULAIRE{#ENV{action}} + #SET{fl,migreragenda} + +

<:migreragenda:explication_migration_agenda_article_1:>

+

<:migreragenda:explication_migration_agenda_article_2:>

+
    + [
  • + [ + (#ENV**{erreurs}|table_valeur{id_parent}) + ] + (#VAL|chercher_rubrique{0,#ENV{id_parent},'article',0,0,0,form_simple}) +
  • ] + #SET{name,toute_la_branche}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
  • [ + (#GET{erreurs}) + ] + #SET{val,oui} +
    + + +
    +
  • + + #SET{name,champ_date_debut}#SET{obli,''}#SET{defaut,'date'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
  • + [ + (#GET{erreurs}) + ] +
  • + #SET{name,champ_date_fin}#SET{obli,''}#SET{defaut,'date_redac'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
  • + [ + (#GET{erreurs}) + ] +
  • + + #SET{name,horaire}#SET{obli,''}#SET{defaut,'oui'}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
  • + [ + (#GET{erreurs}) + ] + #SET{val,oui} +
    + + +
    + #SET{val,non} +
    + + +
    +
  • + + #SET{name,groupes_mots}#SET{obli,''}#SET{defaut,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
  • + [ + (#GET{erreurs}) + ] + ] + + #SET{val,#ID_GROUPE} +
    + + +
    + + [(#ENV{editable}) +
  • +
+

<:migreragenda:explication_migration_agenda_article_fin:>

+ [(#REM) ajouter les saisies supplémentaires : extra et autre, à cet endroit ] + +

  +

+ + [
+ (#ENV**{erreurs}|table_valeur{confirmer}) +
+

  +

+ ] +
+ ] +
\ No newline at end of file diff --git a/www/plugins/agenda_3_5/formulaires/migrer_agenda.php b/www/plugins/agenda_3_5/formulaires/migrer_agenda.php new file mode 100644 index 0000000..1f79a57 --- /dev/null +++ b/www/plugins/agenda_3_5/formulaires/migrer_agenda.php @@ -0,0 +1,182 @@ +'', + 'toute_la_branche' => '', + 'champ_date_debut' => 'date', + 'champ_date_fin' => 'date_redac', + 'horaire' => 'oui', + 'groupes_mots' => array(), + ); + + return $valeurs; +} + +function formulaires_migrer_agenda_verifier_dist(){ + + $erreurs = array(); + $oblis = array('id_parent','champ_date_debut','champ_date_fin','horaire'); + + foreach ($oblis as $obli){ + if (!_request($obli)) + $erreurs[$obli] = _T('info_obligatoire'); + } + + if (!isset($erreurs['champ_date_debut']) + AND !in_array(_request('champ_date_debut'),array('date','date_redac'))) + $erreurs['champ_date_debut'] = _T('migreragenda:erreur_choix_incorrect'); + + if (!isset($erreurs['champ_date_fin']) + AND !in_array(_request('champ_date_fin'),array('date','date_redac'))) + $erreurs['champ_date_fin'] = _T('migreragenda:erreur_choix_incorrect'); + + if (!isset($erreurs['horaire']) + AND !in_array(_request('horaire'),array('oui','non'))) + $erreurs['horaire'] = _T('migreragenda:erreur_choix_incorrect'); + + if (!isset($erreurs['groupes_mots']) + AND $groupes = _request('groupes_mots')){ + + if (!is_array($groupes)) + $erreurs['groupes_mots'] = _T('migreragenda:erreur_choix_incorrect'); + else { + $groupes = array_map('intval',$groupes); + if (sql_countsel('spip_groupes_mots',sql_in('id_groupe',$groupes))!=count($groupes)) + $erreurs['groupes_mots'] = _T('migreragenda:erreur_choix_incorrect'); + } + } + + // pas d'erreurs ? verifier ce qui va etre fait et l'annoncer + if (!count($erreurs) AND !_request('confirm')){ + $where = migrer_agenda_where_articles(_request('id_parent'),_request('toute_la_branche')); + $nba = sql_countsel("spip_articles",$where); + + $message = _T('migreragenda:info_migration_articles')." "; + $message .= sinon(singulier_ou_pluriel($nba,'info_1_article','info_nb_articles'),_T('info_aucun_article')); + + $erreurs['confirmer'] = $message; + } + + return $erreurs; +} + + +function formulaires_migrer_agenda_traiter_dist(){ + $id_rubrique = _request('id_parent'); + $where_articles = migrer_agenda_where_articles($id_rubrique,_request('toute_la_branche')); + $groupes = _request('groupes_mots'); + if (!$groupes) + $groupes = array(); + $where_mots = migrer_agenda_where_mots($groupes); + + $horaire = (_request('horaire')=='oui'?true:false); + $champ_date_debut = _request('champ_date_debut'); + $champ_date_fin = _request('champ_date_fin'); + + // poser le flag agenda sur la rubrique ! + sql_updateq("spip_rubriques",array('agenda'=>1),'id_rubrique='.intval($id_rubrique)); + // et migrer les articles + $nb = migrer_articles($where_articles,$champ_date_debut,$champ_date_fin,$horaire,$where_mots); + + $message = _T('migreragenda:info_migration_articles_reussi')." "; + $message .= sinon(singulier_ou_pluriel($nb,'info_1_article','info_nb_articles'),_T('info_aucun_article')); + + return array('message_ok'=>$message); +} + + + +function migrer_articles($where_articles,$champ_date_debut,$champ_date_fin,$horaire,$where_mots){ + + include_spip("action/editer_evenement"); + + $where_mots = implode(" AND ",$where_mots); + + $nb = 0; + $res = sql_select("*","spip_articles",$where_articles); + while ($row = sql_fetch($res)){ + + $id_evenement = evenement_inserer($row['id_article']); + // mettre les champs + $set = array( + 'date_debut' => $row[$champ_date_debut], + 'date_fin' => $row[$champ_date_fin], + 'titre' => $row['titre'], + 'horaire' => ($horaire?'oui':'non') + ); + evenement_modifier($id_evenement,$set); + + // associer les mots : en sql pour ne pas exploser si plein de mots en base + $mots = sql_allfetsel('M.id_mot','spip_mots AS M JOIN spip_mots_liens AS L ON (M.id_mot=L.id_mot AND L.objet='.sql_quote('article').')',"id_objet=".intval($row['id_article'])." AND (".$where_mots.")"); + if (count($mots)){ + $insert = array(); + foreach ($mots as $mot){ + $insert[] = array('id_mot'=>$mot['id_mot'],'objet'=>'evenement','id_objet'=>$id_evenement); + } + sql_insertq_multi("spip_mots_liens",$insert); + } + + + // publier l'evenement + evenement_modifier($id_evenement,array('statut'=>'publie')); + + $nb++; + } + + return $nb; +} + + + +function migrer_agenda_where_articles($id_rubrique,$branche = false){ + + $where = array(); + $where[] = "statut=".sql_quote('publie'); + if ($branche){ + include_spip("inc/rubriques"); + $where[] = sql_in('id_rubrique',calcul_branche_in($id_rubrique)); + } + else + $where[] = "id_rubrique=".intval($id_rubrique); + + // exclure les articles qui ont deja un evenement + $where[] = "id_article NOT IN (".sql_get_select("id_article","spip_evenements").")"; + + return $where; +} + +function migrer_agenda_where_mots($groupes){ + $id_groupe = array(); + + $rows = sql_allfetsel('*','spip_groupes_mots',sql_in('id_groupe',$groupes)); + foreach($rows as $row){ + $id_groupe[] = $row['id_groupe']; + $tables_liees = explode(',',$row['tables_liees']); + $tables_liees = array_filter($tables_liees); + // ajouter les evenements a ce groupe de mot + if (!in_array('evenements',$tables_liees)){ + include_spip("action/editer_groupe_mots"); + $tables_liees[] = 'evenements'; + $tables_liees = implode(',',$tables_liees); + groupemots_modifier($row['id_groupe'],array('tables_liees'=>$tables_liees)); + } + } + + $where = array(sql_in('id_groupe',$id_groupe)); + return $where; +} + +?> \ No newline at end of file diff --git a/www/plugins/agenda_3_5/formulaires/participer_evenement.html b/www/plugins/agenda_3_5/formulaires/participer_evenement.html new file mode 100644 index 0000000..c25dd05 --- /dev/null +++ b/www/plugins/agenda_3_5/formulaires/participer_evenement.html @@ -0,0 +1,37 @@ +
+ [(#ENV{editable}|non) + [

(#ENV**{message_ok})

] + [

(#ENV**{message_erreur})

] + ] + [(#ENV{editable}) +
+ [(#REM) declarer les hidden qui declencheront le service du formulaire + parametre : url d'action ] + #ACTION_FORMULAIRE{#ENV{action}} +
<:agenda:label_vous_inscrire:> + [

(#ENV*{message_ok})

] + [

(#ENV*{message_erreur})

] +
    +
  • + [(#ENV**{erreurs}|table_valeur{reponse})] +
    + + +
    +
    + + +
    +
    + + +
    +
  • +
+
+ [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ] + +

+
+ ] +
diff --git a/www/plugins/agenda_3_5/formulaires/participer_evenement.php b/www/plugins/agenda_3_5/formulaires/participer_evenement.php new file mode 100644 index 0000000..868ec6b --- /dev/null +++ b/www/plugins/agenda_3_5/formulaires/participer_evenement.php @@ -0,0 +1,108 @@ +NOW()') + OR !$row['inscription']) + return false; + + // si anonyme, on echoue avec avertissement + if (!$GLOBALS['visiteur_session']['id_auteur']) + return array( + 'message_erreur'=>_T('agenda:connexion_necessaire_pour_inscription'), + 'editable'=>false + ); + + // 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'])); + + // si les places sont comptees, regarder si il en reste + if ($places = $row['places']){ + $ok = sql_countsel('spip_evenements_participants','id_evenement='.intval($id_evenement)." AND reponse='oui'"); + $peutetre = sql_countsel('spip_evenements_participants','id_evenement='.intval($id_evenement)." AND reponse='?'"); + // Les reponses PEUT-ETRE sont ponderees a 0,5 donc + // 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']=='?')){ + $valeurs['editable'] = false; + $valeurs['message_ok'] = _T('agenda:evenement_complet'); + } + } + } + + return $valeurs; +} + +function formulaires_participer_evenement_verifier_dist($id_evenement){ + $erreurs = array(); + $reponse = _request('reponse'); + // 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') { + $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){ + $ok = sql_countsel('spip_evenements_participants','id_evenement='.intval($id_evenement)." AND reponse='oui'"); + $peutetre = sql_countsel('spip_evenements_participants','id_evenement='.intval($id_evenement)." AND reponse='?'"); + // Les reponses PEUT-ETRE sont ponderees a 0,5 donc + // 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'); + } + } + } + return $erreurs; +} + +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); +} + +?> \ No newline at end of file diff --git a/www/plugins/agenda_3_5/inc/agenda_filtres.php b/www/plugins/agenda_3_5/inc/agenda_filtres.php new file mode 100644 index 0000000..84a6186 --- /dev/null +++ b/www/plugins/agenda_3_5/inc/agenda_filtres.php @@ -0,0 +1,197 @@ +param; + + if (count($params) < 1) + erreur_squelette(_T('zbug_info_erreur_squelette'), + "{agenda ?} BOUCLE$idb"); + + $parent = $boucles[$idb]->id_parent; + + // les valeurs $date et $type doivent etre connus a la compilation + // autrement dit ne pas etre des champs + + $date_deb = array_shift($params); + $date_deb = $date_deb[0]->texte; + + $date_fin = array_shift($params); + $date_fin = $date_fin[0]->texte; + + $type = array_shift($params); + $type = $type[0]->texte; + + $annee = $params ? array_shift($params) : ""; + $annee = "\n" . 'sprintf("%04d", ($x = ' . + calculer_liste($annee, array(), $boucles, $parent) . + ') ? $x : date("Y"))'; + + $mois = $params ? array_shift($params) : ""; + $mois = "\n" . 'sprintf("%02d", ($x = ' . + calculer_liste($mois, array(), $boucles, $parent) . + ') ? $x : date("m"))'; + + $jour = $params ? array_shift($params) : ""; + $jour = "\n" . 'sprintf("%02d", ($x = ' . + calculer_liste($jour, array(), $boucles, $parent) . + ') ? $x : date("d"))'; + + $annee2 = $params ? array_shift($params) : ""; + $annee2 = "\n" . 'sprintf("%04d", ($x = ' . + calculer_liste($annee2, array(), $boucles, $parent) . + ') ? $x : date("Y"))'; + + $mois2 = $params ? array_shift($params) : ""; + $mois2 = "\n" . 'sprintf("%02d", ($x = ' . + calculer_liste($mois2, array(), $boucles, $parent) . + ') ? $x : date("m"))'; + + $jour2 = $params ? array_shift($params) : ""; + $jour2 = "\n" . 'sprintf("%02d", ($x = ' . + calculer_liste($jour2, array(), $boucles, $parent) . + ') ? $x : date("d"))'; + + $boucle = &$boucles[$idb]; + $date = $boucle->id_table . ".$date"; + + $quote_end = ",'".$boucle->sql_serveur."','text'"; + + if ($type == 'jour') + $boucle->where[]= array("'AND'", + array("'<='", "'DATE_FORMAT($date_deb, \'%Y%m%d\')'",("sql_quote($annee . $mois . $jour$quote_end)")), + array("'>='", "'DATE_FORMAT($date_fin, \'%Y%m%d\')'",("sql_quote($annee . $mois . $jour$quote_end)"))); + elseif ($type == 'mois') + $boucle->where[]= array("'AND'", + array("'<='", "'DATE_FORMAT($date_deb, \'%Y%m\')'",("sql_quote($annee . $mois$quote_end)")), + array("'>='", "'DATE_FORMAT($date_fin, \'%Y%m\')'",("sql_quote($annee . $mois$quote_end)"))); + elseif ($type == 'semaine') + $boucle->where[]= array("'AND'", + array("'>='", + "'DATE_FORMAT($date_fin, \'%Y%m%d\')'", + ("date_debut_semaine($annee, $mois, $jour)")), + array("'<='", + "'DATE_FORMAT($date_deb, \'%Y%m%d\')'", + ("date_fin_semaine($annee, $mois, $jour)"))); + elseif (count($crit->param) > 3) + $boucle->where[]= array("'AND'", + array("'>='", + "'DATE_FORMAT($date_fin, \'%Y%m%d\')'", + ("sql_quote($annee . $mois . $jour$quote_end)")), + array("'<='", "'DATE_FORMAT($date_deb, \'%Y%m%d\')'", ("sql_quote($annee2 . $mois2 . $jour2$quote_end)"))); + // sinon on prend tout +} + + +/** + * Afficher de facon textuelle les dates de debut et fin en fonction des cas + * - Le lundi 20 fevrier a 18h + * - Le 20 fevrier de 18h a 20h + * - Du 20 au 23 fevrier + * - du 20 fevrier au 30 mars + * - du 20 fevrier 2007 au 30 mars 2008 + * $horaire='oui' permet d'afficher l'horaire, toute autre valeur n'indique que le jour + * $forme peut contenir abbr (afficher le nom des jours en abbrege) et ou hcal (generer une date au format hcal) + * + * @param string $date_debut + * @param string $date_fin + * @param string $horaire + * @param string $forme + * @return string + */ +function agenda_affdate_debut_fin($date_debut, $date_fin, $horaire = 'oui', $forme=''){ + $abbr = ''; + if (strpos($forme,'abbr')!==false) $abbr = 'abbr'; + $affdate = "affdate_jourcourt"; + if (strpos($forme,'annee')!==false) $affdate = 'affdate'; + + $dtstart = $dtend = $dtabbr = ""; + if (strpos($forme,'hcal')!==false) { + $dtstart = ""; + $dtend = ""; + $dtabbr = ""; + } + + $date_debut = strtotime($date_debut); + $date_fin = strtotime($date_fin); + $d = date("Y-m-d", $date_debut); + $f = date("Y-m-d", $date_fin); + $h = $horaire=='oui'; + $hd = date("H:i",$date_debut); + $hf = date("H:i",$date_fin); + $au = " " . strtolower(_T('agenda:evenement_date_au')); + $du = _T('agenda:evenement_date_du') . " "; + $s = ""; + if ($d==$f) + { // meme jour + $s = ucfirst(nom_jour($d,$abbr))." ".$affdate($d); + if ($h) + $s .= " $hd"; + $s = "$dtstart$s$dtabbr"; + if ($h AND $hd!=$hf) $s .= "-$dtend$hf$dtabbr"; + } + else if ((date("Y-m",$date_debut))==date("Y-m",$date_fin)) + { // meme annee et mois, jours differents + if ($h){ + $s = $du . $dtstart . affdate_jourcourt($d) . " $hd" . $dtabbr; + $s .= $au . $dtend . $affdate($f); + if ($hd!=$hf) $s .= " $hf"; + $s .= $dtabbr; + } + else { + $s = $du . $dtstart . jour($d) . $dtabbr; + $s .= $au . $dtend . $affdate($f) . $dtabbr; + } + } + else if ((date("Y",$date_debut))==date("Y",$date_fin)) + { // meme annee, mois et jours differents + $s = $du . $dtstart . affdate_jourcourt($d); + if ($h) $s .= " $hd"; + $s .= $dtabbr . $au . $dtend . $affdate($f); + if ($h) $s .= " $hf"; + $s .= $dtabbr; + } + else + { // tout different + $s = $du . $dtstart . affdate($d); + if ($h) + $s .= " ".date("(H:i)",$date_debut); + $s .= $dtabbr . $au . $dtend. affdate($f); + if ($h) + $s .= " ".date("(H:i)",$date_fin); + $s .= $dtabbr; + } + return unicode2charset(charset2unicode($s,'AUTO')); +} + + +?> diff --git a/www/plugins/agenda_3_5/inc/date_gestion.php b/www/plugins/agenda_3_5/inc/date_gestion.php new file mode 100644 index 0000000..6531615 --- /dev/null +++ b/www/plugins/agenda_3_5/inc/date_gestion.php @@ -0,0 +1,46 @@ + \ No newline at end of file diff --git a/www/plugins/agenda_3_5/inc/un-evenement-ical.html b/www/plugins/agenda_3_5/inc/un-evenement-ical.html new file mode 100644 index 0000000..68cd4db --- /dev/null +++ b/www/plugins/agenda_3_5/inc/un-evenement-ical.html @@ -0,0 +1,14 @@ +BEGIN:VEVENT +SUMMARY:[(#EVTITRE|textebrut|filtrer_ical)] +UID:evenement#ID_EVENEMENT @ [(#URL_SITE_SPIP|filtrer_ical)][ +DTSTAMP:(#DATE_DEBUT|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})]})][ +LOCATION:(#LIEU|PtoBR|textebrut|filtrer_ical)][ +DESCRIPTION:(#DESCRIPTIF|supprimer_tags|textebrut|filtrer_ical)] +CATEGORIES:[(#TITRE|textebrut|filtrer_ical)] +URL:[(#URL_ARTICLE|parametre_url{id_evenement,#ID_EVENEMENT}|url_absolue|filtrer_ical)] +STATUS:CONFIRMED +END:VEVENT diff --git a/www/plugins/agenda_3_5/javascript/jquery-ui.multidatespicker.js b/www/plugins/agenda_3_5/javascript/jquery-ui.multidatespicker.js new file mode 100755 index 0000000..36511a8 --- /dev/null +++ b/www/plugins/agenda_3_5/javascript/jquery-ui.multidatespicker.js @@ -0,0 +1,461 @@ +/* + * MultiDatesPicker v1.6.1 + * http://multidatespickr.sourceforge.net/ + * + * Copyright 2011, Luca Lauretta + * Dual licensed under the MIT or GPL version 2 licenses. + */ +(function( $ ){ + $.extend($.ui, { multiDatesPicker: { version: "1.6.1" } }); + + $.fn.multiDatesPicker = function(method) { + var mdp_arguments = arguments; + var ret = this; + var today_date = new Date(); + var day_zero = new Date(0); + var mdp_events = {}; + + function removeDate(date, type) { + if(!type) type = 'picked'; + date = dateConvert.call(this, date); + for(var i in this.multiDatesPicker.dates[type]) + if(!methods.compareDates(this.multiDatesPicker.dates[type][i], date)) + return this.multiDatesPicker.dates[type].splice(i, 1).pop(); + } + function removeIndex(index, type) { + if(!type) type = 'picked'; + return this.multiDatesPicker.dates[type].splice(index, 1).pop(); + } + function addDate(date, type, no_sort) { + if(!type) type = 'picked'; + date = dateConvert.call(this, date); + + // @todo: use jQuery UI datepicker method instead + date.setHours(0); + date.setMinutes(0); + date.setSeconds(0); + date.setMilliseconds(0); + + if (methods.gotDate.call(this, date, type) === false) { + this.multiDatesPicker.dates[type].push(date); + if(!no_sort) this.multiDatesPicker.dates[type].sort(methods.compareDates); + } + } + function sortDates(type) { + if(!type) type = 'picked'; + this.multiDatesPicker.dates[type].sort(methods.compareDates); + } + function dateConvert(date, desired_type, date_format) { + if(!desired_type) desired_type = 'object';/* + if(!date_format && (typeof date == 'string')) { + date_format = $(this).datepicker('option', 'dateFormat'); + if(!date_format) date_format = $.datepicker._defaults.dateFormat; + } + */ + return methods.dateConvert.call(this, date, desired_type, date_format); + } + + var methods = { + init : function( options ) { + var $this = $(this); + this.multiDatesPicker.changed = false; + + var mdp_events = { + beforeShow: function(input, inst) { + this.multiDatesPicker.changed = false; + if(this.multiDatesPicker.originalBeforeShow) + this.multiDatesPicker.originalBeforeShow.call(this, input, inst); + }, + onSelect : function(dateText, inst) { + var $this = $(this); + this.multiDatesPicker.changed = true; + + if (dateText) { + $this.multiDatesPicker('toggleDate', dateText); + } + + if (this.multiDatesPicker.mode == 'normal' && this.multiDatesPicker.dates.picked.length > 0 && this.multiDatesPicker.pickableRange) { + var min_date = this.multiDatesPicker.dates.picked[0], + max_date = new Date(min_date.getTime()); + + methods.sumDays(max_date, this.multiDatesPicker.pickableRange-1); + + // counts the number of disabled dates in the range + if(this.multiDatesPicker.adjustRangeToDisabled) { + var c_disabled, + disabled = this.multiDatesPicker.dates.disabled.slice(0); + do { + c_disabled = 0; + for(var i = 0; i < disabled.length; i++) { + if(disabled[i].getTime() <= max_date.getTime()) { + if((min_date.getTime() <= disabled[i].getTime()) && (disabled[i].getTime() <= max_date.getTime()) ) { + c_disabled++; + } + disabled.splice(i, 1); + i--; + } + } + max_date.setDate(max_date.getDate() + c_disabled); + } while(c_disabled != 0); + } + + if(this.multiDatesPicker.maxDate && (max_date > this.multiDatesPicker.maxDate)) + max_date = this.multiDatesPicker.maxDate; + + $this + .datepicker("option", "minDate", min_date) + .datepicker("option", "maxDate", max_date); + } else { + $this + .datepicker("option", "minDate", this.multiDatesPicker.minDate) + .datepicker("option", "maxDate", this.multiDatesPicker.maxDate); + } + + if(this.tagName == 'INPUT') { // for inputs + $this.val( + $this.multiDatesPicker('getDates', 'string') + ); + } + + if(this.multiDatesPicker.originalOnSelect && dateText) + this.multiDatesPicker.originalOnSelect.call(this, dateText, inst); + + // thanks to bibendus83 -> http://sourceforge.net/tracker/?func=detail&atid=1495384&aid=3403159&group_id=358205 + if ($this.datepicker('option', 'altField') != undefined && $this.datepicker('option', 'altField') != "") { + $($this.datepicker('option', 'altField')).val( + $this.multiDatesPicker('getDates', 'string') + ); + } + }, + beforeShowDay : function(date) { + var $this = $(this), + gotThisDate = $this.multiDatesPicker('gotDate', date) !== false, + isDisabledCalendar = $this.datepicker('option', 'disabled'), + isDisabledDate = $this.multiDatesPicker('gotDate', date, 'disabled') !== false, + areAllSelected = this.multiDatesPicker.maxPicks == this.multiDatesPicker.dates.picked.length; + + var custom = [true, '']; + if(this.multiDatesPicker.originalBeforeShowDay) + custom = this.multiDatesPicker.originalBeforeShowDay.call(this, date); + + var highlight_class = gotThisDate ? 'ui-state-highlight' : custom[1]; + var highlight_class = (gotThisDate ? 'ui-state-highlight' : '') + ((custom[1] && gotThisDate) ? ' ' : '') + custom[1]; + var selectable_date = !(isDisabledCalendar || isDisabledDate || (areAllSelected && !highlight_class)); + custom[0] = selectable_date && custom[0]; + custom[1] = highlight_class; + return custom; + }, + onClose: function(dateText, inst) { + if(this.tagName == 'INPUT' && this.multiDatesPicker.changed) { + $(inst.dpDiv[0]).stop(false,true); + setTimeout('$("#'+inst.id+'").datepicker("show")',50); + } + if(this.multiDatesPicker.originalOnClose) this.multiDatesPicker.originalOnClose.call(this, dateText, inst); + } + }; + + if(options) { + this.multiDatesPicker.originalBeforeShow = options.beforeShow; + this.multiDatesPicker.originalOnSelect = options.onSelect; + this.multiDatesPicker.originalBeforeShowDay = options.beforeShowDay; + this.multiDatesPicker.originalOnClose = options.onClose; + + $this.datepicker(options); + + this.multiDatesPicker.minDate = $.datepicker._determineDate(this, options.minDate, null); + this.multiDatesPicker.maxDate = $.datepicker._determineDate(this, options.maxDate, null); + + if(options.addDates) methods.addDates.call(this, options.addDates); + if(options.addDisabledDates) + methods.addDates.call(this, options.addDisabledDates, 'disabled'); + + methods.setMode.call(this, options); + } else { + $this.datepicker(); + } + + $this.datepicker('option', mdp_events); + + if(this.tagName == 'INPUT') $this.val($this.multiDatesPicker('getDates', 'string')); + + // Fixes the altField filled with defaultDate by default + var altFieldOption = $this.datepicker('option', 'altField'); + if (altFieldOption) $(altFieldOption).val($this.multiDatesPicker('getDates', 'string')); + }, + compareDates : function(date1, date2) { + date1 = dateConvert.call(this, date1); + date2 = dateConvert.call(this, date2); + // return > 0 means date1 is later than date2 + // return == 0 means date1 is the same day as date2 + // return < 0 means date1 is earlier than date2 + var diff = date1.getFullYear() - date2.getFullYear(); + if(!diff) { + diff = date1.getMonth() - date2.getMonth(); + if(!diff) + diff = date1.getDate() - date2.getDate(); + } + return diff; + }, + sumDays : function( date, n_days ) { + var origDateType = typeof date; + obj_date = dateConvert.call(this, date); + obj_date.setDate(obj_date.getDate() + n_days); + return dateConvert.call(this, obj_date, origDateType); + }, + dateConvert : function( date, desired_format, dateFormat ) { + var from_format = typeof date; + + if(from_format == desired_format) { + if(from_format == 'object') { + try { + date.getTime(); + } catch (e) { + $.error('Received date is in a non supported format!'); + return false; + } + } + return date; + } + + var $this = $(this); + if(typeof date == 'undefined') date = new Date(0); + + if(desired_format != 'string' && desired_format != 'object' && desired_format != 'number') + $.error('Date format "'+ desired_format +'" not supported!'); + + if(!dateFormat) { + dateFormat = $.datepicker._defaults.dateFormat; + + // thanks to bibendus83 -> http://sourceforge.net/tracker/index.php?func=detail&aid=3213174&group_id=358205&atid=1495382 + var dp_dateFormat = $this.datepicker('option', 'dateFormat'); + if (dp_dateFormat) { + dateFormat = dp_dateFormat; + } + } + + // converts to object as a neutral format + switch(from_format) { + case 'object': break; + case 'string': date = $.datepicker.parseDate(dateFormat, date); break; + case 'number': date = new Date(date); break; + default: $.error('Conversion from "'+ desired_format +'" format not allowed on jQuery.multiDatesPicker'); + } + // then converts to the desired format + switch(desired_format) { + case 'object': return date; + case 'string': return $.datepicker.formatDate(dateFormat, date); + case 'number': return date.getTime(); + default: $.error('Conversion to "'+ desired_format +'" format not allowed on jQuery.multiDatesPicker'); + } + return false; + }, + gotDate : function( date, type ) { + if(!type) type = 'picked'; + for(var i = 0; i < this.multiDatesPicker.dates[type].length; i++) { + if(methods.compareDates.call(this, this.multiDatesPicker.dates[type][i], date) === 0) { + return i; + } + } + return false; + }, + getDates : function( format, type ) { + if(!format) format = 'string'; + if(!type) type = 'picked'; + switch (format) { + case 'object': + return this.multiDatesPicker.dates[type]; + case 'string': + case 'number': + var o_dates = new Array(); + for(var i in this.multiDatesPicker.dates[type]) + o_dates.push( + dateConvert.call( + this, + this.multiDatesPicker.dates[type][i], + format + ) + ); + return o_dates; + + default: $.error('Format "'+format+'" not supported!'); + } + }, + addDates : function( dates, type ) { + if(dates.length > 0) { + if(!type) type = 'picked'; + switch(typeof dates) { + case 'object': + case 'array': + if(dates.length) { + for(var i in dates) + if (typeof dates[i] != "function") + addDate.call(this, dates[i], type, true); + sortDates.call(this, type); + break; + } // else does the same as 'string' + case 'string': + case 'number': + addDate.call(this, dates, type); + break; + default: + $.error('Date format "'+ typeof dates +'" not allowed on jQuery.multiDatesPicker'); + } + $(this).datepicker('refresh'); + } else { + $.error('Empty array of dates received.'); + } + }, + removeDates : function( dates, type ) { + if(!type) type = 'picked'; + var removed = []; + if (Object.prototype.toString.call(dates) === '[object Array]') { + for(var i in dates.sort(function(a,b){return b-a})) { + removed.push(removeDate.call(this, dates[i], type)); + } + } else { + removed.push(removeDate.call(this, dates, type)); + } + $(this).datepicker('refresh'); + return removed; + }, + removeIndexes : function( indexes, type ) { + if(!type) type = 'picked'; + var removed = []; + if (Object.prototype.toString.call(indexes) === '[object Array]') { + for(var i in indexes.sort(function(a,b){return b-a})) { + removed.push(removeIndex.call(this, indexes[i], type)); + } + } else { + removed.push(removeIndex.call(this, indexes, type)); + } + $(this).datepicker('refresh'); + return removed; + }, + resetDates : function ( type ) { + if(!type) type = 'picked'; + this.multiDatesPicker.dates[type] = []; + $(this).datepicker('refresh'); + }, + toggleDate : function( date, type ) { + if(!type) type = 'picked'; + + switch(this.multiDatesPicker.mode) { + case 'daysRange': + this.multiDatesPicker.dates[type] = []; // deletes all picked/disabled dates + var end = this.multiDatesPicker.autoselectRange[1]; + var begin = this.multiDatesPicker.autoselectRange[0]; + if(end < begin) { // switch + end = this.multiDatesPicker.autoselectRange[0]; + begin = this.multiDatesPicker.autoselectRange[1]; + } + for(var i = begin; i < end; i++) + methods.addDates.call(this, methods.sumDays(date, i), type); + break; + default: + if(methods.gotDate.call(this, date) === false) // adds dates + methods.addDates.call(this, date, type); + else // removes dates + methods.removeDates.call(this, date, type); + break; + } + }, + setMode : function( options ) { + var $this = $(this); + if(options.mode) this.multiDatesPicker.mode = options.mode; + + switch(this.multiDatesPicker.mode) { + case 'normal': + for(option in options) + switch(option) { + case 'maxPicks': + case 'minPicks': + case 'pickableRange': + case 'adjustRangeToDisabled': + this.multiDatesPicker[option] = options[option]; + break; + //default: $.error('Option ' + option + ' ignored for mode "'.options.mode.'".'); + } + break; + case 'daysRange': + case 'weeksRange': + var mandatory = 1; + for(option in options) + switch(option) { + case 'autoselectRange': + mandatory--; + case 'pickableRange': + case 'adjustRangeToDisabled': + this.multiDatesPicker[option] = options[option]; + break; + //default: $.error('Option ' + option + ' does not exist for setMode on jQuery.multiDatesPicker'); + } + if(mandatory > 0) $.error('Some mandatory options not specified!'); + break; + } + + /* + if(options.pickableRange) { + $this.datepicker("option", "maxDate", options.pickableRange); + $this.datepicker("option", "minDate", this.multiDatesPicker.minDate); + } + */ + + if(mdp_events.onSelect) + mdp_events.onSelect(); + $this.datepicker('refresh'); + } + }; + + this.each(function() { + if (!this.multiDatesPicker) { + this.multiDatesPicker = { + dates: { + picked: [], + disabled: [] + }, + mode: 'normal', + adjustRangeToDisabled: true + }; + } + + if(methods[method]) { + var exec_result = methods[method].apply(this, Array.prototype.slice.call(mdp_arguments, 1)); + switch(method) { + case 'getDates': + case 'removeDates': + case 'gotDate': + case 'sumDays': + case 'compareDates': + case 'dateConvert': + ret = exec_result; + } + return exec_result; + } else if( typeof method === 'object' || ! method ) { + return methods.init.apply(this, mdp_arguments); + } else { + $.error('Method ' + method + ' does not exist on jQuery.multiDatesPicker'); + } + return false; + }); + + if(method != 'gotDate' && method != 'getDates') { + aaaa = 1; + } + + return ret; + }; + + var PROP_NAME = 'multiDatesPicker'; + var dpuuid = new Date().getTime(); + var instActive; + + $.multiDatesPicker = {version: false}; + //$.multiDatesPicker = new MultiDatesPicker(); // singleton instance + $.multiDatesPicker.initialized = false; + $.multiDatesPicker.uuid = new Date().getTime(); + $.multiDatesPicker.version = $.ui.multiDatesPicker.version; + + // Workaround for #4055 + // Add another global to avoid noConflict issues with inline event handlers + window['DP_jQuery_' + dpuuid] = $; +})( jQuery ); \ No newline at end of file diff --git a/www/plugins/agenda_3_5/lang/agenda.xml b/www/plugins/agenda_3_5/lang/agenda.xml new file mode 100644 index 0000000..9b8cd30 --- /dev/null +++ b/www/plugins/agenda_3_5/lang/agenda.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/www/plugins/agenda_3_5/lang/agenda_de.php b/www/plugins/agenda_3_5/lang/agenda_de.php new file mode 100644 index 0000000..dbe4f62 --- /dev/null +++ b/www/plugins/agenda_3_5/lang/agenda_de.php @@ -0,0 +1,155 @@ + 'Ihre Abwesenheit wurde erfasst', + 'activite_editoriale' => 'Redaktionelle Aktivität', + 'afficher_calendrier' => 'Kalender anzeigen', + 'agenda' => 'Kalender', + 'ajouter_repetition' => 'Wiederholungen hinzufügen', + 'ajouter_un_evenement' => 'diesem Artikel ein Event hinzufügen', + 'annee_precedente' => 'Jahr davor', # MODIF + 'annee_suivante' => 'Jahr danach', + 'aucun_evenement' => 'Kein Event', + 'aucun_inscrit' => 'Aucun inscrit', # NEW + '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 + 'bouton_annuler' => 'Abbrechen', + 'bouton_supprimer' => 'Löschen', + + // C + '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 vous connecter pour pouvoir vous inscrire à cet événement.', # NEW + 'creer_evenement' => 'Event neu anlegen', + + // E + 'erreur_article_interdit' => 'Sie dürfen dieses Event nicht diesem Artikel zuordnen', + 'erreur_article_manquant' => 'Sie müssen einen Artikel angeben', + 'erreur_date' => 'Falsches Datum', + 'erreur_date_avant_apres' => 'Das Enddatum muß nach dem Anfangsdatum liegen!', + 'erreur_date_corrigee' => 'Das Datum wurde korrigiert', + 'erreur_heure' => 'Falsche Uhrzeit', + 'erreur_heure_corrigee' => 'Die Uhrzeit wurde korrigiert', + 'evenement_adresse' => 'Adresse', + 'evenement_article' => 'Verbunden mit Artikel', + 'evenement_autres_occurences' => 'Weitere Zuordnungen:', + 'evenement_date' => 'Datum', + 'evenement_date_a' => 'bis ', + 'evenement_date_a_immediat' => 'zu ', + 'evenement_date_au' => 'bis ', + 'evenement_date_de' => 'Von ', + 'evenement_date_debut' => 'Anfangsdatum', + 'evenement_date_du' => 'Vom ', + 'evenement_date_fin' => 'Enddatum', + 'evenement_date_inscription' => 'Date d\'inscription', # NEW + 'evenement_descriptif' => 'Beschreibung', + 'evenement_horaire' => 'ganztägig', + 'evenement_lieu' => 'Ort', + 'evenement_repetitions' => 'Wiederholungen', + 'evenement_titre' => 'Titel', + 'evenements' => 'Event', + 'evenements_a_venir' => 'In der Zukunft', + 'evenements_depuis_debut' => 'Alle', + + // F + 'fermer' => 'Schließen', + + // 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 + 'info_1_place' => '1 Platz', + 'info_aucun_evenement' => 'Kein Event', + 'info_evenement' => 'Event', + 'info_evenement_poubelle' => 'Event gelöscht', + 'info_evenement_propose' => 'Event vorgeschlagen', + 'info_evenement_publie' => 'Event veröffentlicht', + 'info_evenements' => 'Event', + 'info_inscription' => 'Inscription en ligne :', # NEW + 'info_lieu' => 'Ort:', + 'info_nb_inscrits' => '@nb@ inscrits', # NEW + 'info_nb_mois' => '@nb@ mois', # NEW + 'info_nb_places' => '@nb@ Plätze', + '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_reponses_inscriptions' => 'Antworten', + 'info_un_evenement' => 'ein Event', + 'info_un_inscrit' => 'Un inscrit', # NEW + 'inscrits' => 'Anmeldungen', + + // L + 'label_annee' => 'Année', # NEW + 'label_inscription' => 'Online-Anmeldungen', + 'label_periode_saison' => 'Saison', # NEW + '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_retirer_evenement' => 'Löschen', + 'liste_inscrits' => 'Liste der Anmeldungen', + + // M + 'mois_precedent' => 'voriger Monat', + 'mois_suivant' => 'nächster Monat', + + // N + 'nb_repetitions' => '@nb@ Wiederholungen', + + // P + 'participation_incertaine_prise_en_compte' => 'Ihre vorläufige Anmeldung wurde gespeichert', + 'participation_prise_en_compte' => 'Ihre Anmeldung wurde gespeichert', + 'probleme_technique' => 'Ein technisches Problem ist aufgetreten. Bitte versuchen sie es später noch einmal.', + + // R + 'repetition' => 'Wiederholung', + 'repetition_de' => 'Wiederholung von', + 'retour_evenement' => 'Retour à l\'événement', # NEW + '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', + 'rubrique_liste_evenements_de' => 'Events der Rubrik', + 'rubrique_mode_agenda' => 'Der Kalender wurde für diese Rubrik und ihre Artikel aktiviert. ', + 'rubrique_sans_gestion_evenement' => 'Der Kalender ist für diese Rubrik noch nicht aktiviert. ', + 'rubriques' => 'Kalender-Rubriken', + + // S + '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 + 'texte_evenement_statut' => 'Dieses Event ist', + 'texte_logo_objet' => 'EVENT-LOGO', # MODIF + '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 + 'toutes_rubriques' => 'Alle', + + // U + 'une_repetition' => '1 Wiederholung', + + // V + 'voir_evenements_rubrique' => 'Die Events der Rubrik einsehen' +); + +?> diff --git a/www/plugins/agenda_3_5/lang/agenda_en.php b/www/plugins/agenda_3_5/lang/agenda_en.php new file mode 100644 index 0000000..32a7c1d --- /dev/null +++ b/www/plugins/agenda_3_5/lang/agenda_en.php @@ -0,0 +1,155 @@ + 'Your absence is recorded', + 'activite_editoriale' => 'Editorial activity', + 'afficher_calendrier' => 'Show the calendar', + 'agenda' => 'Agenda', + 'ajouter_repetition' => 'Add repetitions', + 'ajouter_un_evenement' => 'Add one event to this article', + 'annee_precedente' => 'previous year', + 'annee_suivante' => 'next year', + 'aucun_evenement' => 'no event', + 'aucun_inscrit' => 'No registered', + 'aucune_rubrique_mode_agenda' => 'By default, all sections can use the events. If you activate the agenda mode on one or more sections, event management will be limited in its subtree.', + + // B + 'bouton_annuler' => 'Cancel', + 'bouton_supprimer' => 'Delete', + + // C + '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', + + // E + 'erreur_article_interdit' => 'You have no right to associate this event to this article', + 'erreur_article_manquant' => 'You should link to an article', + 'erreur_date' => 'This date is incorrect', + 'erreur_date_avant_apres' => 'Please enter an end date after the date of beginning.', + 'erreur_date_corrigee' => 'The date has been corrected', + 'erreur_heure' => 'This hour is incorrect', + 'erreur_heure_corrigee' => 'The hour has been corrected', + 'evenement_adresse' => 'Address', + 'evenement_article' => 'Link to the article', + 'evenement_autres_occurences' => 'Other occurences :', + 'evenement_date' => 'Date', + 'evenement_date_a' => 'to ', + 'evenement_date_a_immediat' => 'at ', + 'evenement_date_au' => 'To ', + 'evenement_date_de' => 'From ', + 'evenement_date_debut' => 'Starting date', + 'evenement_date_du' => 'From ', + 'evenement_date_fin' => 'Ending date', + 'evenement_date_inscription' => 'Registration date', + 'evenement_descriptif' => 'Description', + 'evenement_horaire' => 'All day', + 'evenement_lieu' => 'Location', + 'evenement_repetitions' => 'Repetition', + 'evenement_titre' => 'Title', + 'evenements' => 'Events', + 'evenements_a_venir' => 'Next', + 'evenements_depuis_debut' => 'All', + + // F + 'fermer' => 'close', + + // I + 'icone_creer_evenement' => 'Generate a new event', + 'icone_modifier_evenement' => 'Edit the event', + 'indiquez_votre_choix' => 'Indicate your choice', + 'info_1_mois' => '1 month', + 'info_1_place' => '1 seat', + 'info_aucun_evenement' => 'No event', + 'info_evenement' => 'Event', + 'info_evenement_poubelle' => 'Event deleted', + 'info_evenement_propose' => 'Event proposed', + 'info_evenement_publie' => 'Event published', + 'info_evenements' => 'Events', + 'info_inscription' => 'Online registration:', + 'info_lieu' => 'Place:', + 'info_nb_inscrits' => '@nb@ registered', + 'info_nb_mois' => '@nb@ months', + 'info_nb_places' => '@nb@ seats', + 'info_nombre_evenements' => '@nb@ events', + 'info_nouvel_evenement' => 'New event', + 'info_reponse_inscription_non' => 'no', + 'info_reponse_inscription_nsp' => '?', + 'info_reponse_inscription_oui' => 'yes', + 'info_reponse_inscriptions' => 'Answer', + 'info_reponses_inscriptions' => 'Answers:', + 'info_un_evenement' => 'One event', + 'info_un_inscrit' => 'One registered', + 'inscrits' => 'Registrations', + + // L + 'label_annee' => 'Year', + '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_vous_inscrire' => 'Your participation', + 'lien_desinscrire' => 'Remove', + 'lien_desinscrire_tous' => 'Delete all registrations', + 'lien_retirer_evenement' => 'Deleted ', + 'liste_inscrits' => 'Registrations', + + // M + 'mois_precedent' => 'previous month', + 'mois_suivant' => 'next month', + + // N + 'nb_repetitions' => '@nb@ repetitions', + + // P + 'participation_incertaine_prise_en_compte' => 'Your possible participation is registered', + 'participation_prise_en_compte' => 'Your participation is recorded', + 'probleme_technique' => 'A technical problem occurred. Try again later.', + + // R + 'repetition' => 'Repetition', + 'repetition_de' => 'Repetition of', + 'retour_evenement' => 'Back to the event', + 'rubrique_activer_agenda' => 'Activate the agenda for this section', + 'rubrique_dans_une_rubrique_mode_agenda' => 'This section allows you to use the events as it is in a section where agenda mode has been enabled', + 'rubrique_desactiver_agenda' => 'Disable agenda mode for this section', + 'rubrique_liste_evenements_de' => 'Events of the section', + 'rubrique_mode_agenda' => 'The agenda mode is enabled for this section and its subtree', + 'rubrique_sans_gestion_evenement' => 'The agenda mode is not enabled for this section', + 'rubriques' => 'Agenda sections', + + // S + 'sans_titre' => '(without title)', + + // T + 'telecharger' => 'Download (csv)', + 'telecharger_oui' => 'Only positive answers', + 'telecharger_toutes' => 'All answers', + 'telecharger_toutes_tous_evenements' => 'All answers to registrations', + 'texte_agenda' => 'Agenda', + 'texte_evenement_statut' => 'This event is:', + 'texte_logo_objet' => 'Event\'s logo', + 'titre_cadre_ajouter_evenement' => 'Add one event', + 'titre_cadre_modifier_evenement' => 'Modify one event', + 'titre_sur_l_agenda' => 'On agenda', + 'titre_sur_l_agenda_aussi' => 'And also...', + 'toutes_rubriques' => 'All', + + // U + 'une_repetition' => '1 repetition', + + // V + 'voir_evenements_rubrique' => 'See this section\'s events' +); + +?> diff --git a/www/plugins/agenda_3_5/lang/agenda_es.php b/www/plugins/agenda_3_5/lang/agenda_es.php new file mode 100644 index 0000000..c598089 --- /dev/null +++ b/www/plugins/agenda_3_5/lang/agenda_es.php @@ -0,0 +1,155 @@ + 'Su ausencia se ha registrado', + 'activite_editoriale' => 'Actividad Editorial', + 'afficher_calendrier' => 'Mostrar el calendario', + 'agenda' => 'Agenda', + 'ajouter_repetition' => 'Añadir repeticiones', + 'ajouter_un_evenement' => 'Añadir un evento a este artículo', + 'annee_precedente' => 'Año anterior', + 'annee_suivante' => 'Año siguiente', + 'aucun_evenement' => 'Ningún evento', + 'aucun_inscrit' => 'Ningún inscrito', + 'aucune_rubrique_mode_agenda' => 'Por defecto, todas las secciones permiten utilizar los eventos. Si activa el modo agenda sobre una o más secciones, la gestión de enventos se limitará a su rama.', + + // B + 'bouton_annuler' => 'Cancelar', + 'bouton_supprimer' => 'Eliminar', + + // C + '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 conectarse para poder inscribirse a este evento.', + 'creer_evenement' => 'Crear un evento', + + // E + 'erreur_article_interdit' => 'No tiene permiso para asociar este evento a este artículo', + 'erreur_article_manquant' => 'Debe indicar un artículo', + 'erreur_date' => 'Esta fecha es incorrecta', + 'erreur_date_avant_apres' => '¡Indique una fecha de finalización posterior a la fecha de inicio!', + 'erreur_date_corrigee' => 'La fecha ha sido corregida', + 'erreur_heure' => 'Esta hora es incorrecta', + 'erreur_heure_corrigee' => 'La hora ha sido corregida', + 'evenement_adresse' => 'Dirección', + 'evenement_article' => 'Asociado al artículo', + 'evenement_autres_occurences' => 'Otras ocasiones:', + 'evenement_date' => 'Fecha', + 'evenement_date_a' => 'a las ', + 'evenement_date_a_immediat' => 'a las ', + 'evenement_date_au' => 'Al', + 'evenement_date_de' => 'De ', + 'evenement_date_debut' => 'Fecha de inicio', + 'evenement_date_du' => 'Del ', + 'evenement_date_fin' => 'Fecha de finalización', + 'evenement_date_inscription' => 'Fecha de inscripción', + 'evenement_descriptif' => 'Descripción', + 'evenement_horaire' => 'Todo el día', + 'evenement_lieu' => 'Lugar', + 'evenement_repetitions' => 'Repeticiones', + 'evenement_titre' => 'Título', + 'evenements' => 'Eventos', + 'evenements_a_venir' => 'Próximos', + 'evenements_depuis_debut' => 'Desde el inicio', + + // F + 'fermer' => 'cerrar', + + // I + 'icone_creer_evenement' => 'Crear un nuevo evento', + 'icone_modifier_evenement' => 'Modificar el evento', + 'indiquez_votre_choix' => 'Indique su elección', + 'info_1_mois' => '1 mes', + 'info_1_place' => '1 plaza', + 'info_aucun_evenement' => 'Ningún evento', + 'info_evenement' => 'Evento', + 'info_evenement_poubelle' => 'Evento eliminado', + 'info_evenement_propose' => 'Evento propuesto', + 'info_evenement_publie' => 'Evento publicado', + 'info_evenements' => 'Eventos', + 'info_inscription' => 'Inscripción en línea:', + 'info_lieu' => 'Lugar:', + 'info_nb_inscrits' => '@nb@ inscritos', + 'info_nb_mois' => '@nb@ meses', + 'info_nb_places' => '@nb@ plazas', + 'info_nombre_evenements' => '@nb@ eventos', + 'info_nouvel_evenement' => 'Nuevo evento', + 'info_reponse_inscription_non' => 'no', + 'info_reponse_inscription_nsp' => '¿?', + 'info_reponse_inscription_oui' => 'sí', + 'info_reponse_inscriptions' => 'Respuesta', + 'info_reponses_inscriptions' => 'Respuestas:', + 'info_un_evenement' => '1 evento', + 'info_un_inscrit' => 'Un inscrito', + 'inscrits' => 'Inscripciones', + + // L + 'label_annee' => 'Año', + 'label_inscription' => 'Inscripción en línea ', + 'label_periode_saison' => 'Estación', + 'label_places' => 'Limitar el número de lugares', + 'label_reponse_jyparticipe' => 'Asistiré', + 'label_reponse_jyparticipe_pas' => 'No asistiré', + 'label_reponse_jyparticipe_peutetre' => 'Tal vez asista', + 'label_vous_inscrire' => 'Su participación', + 'lien_desinscrire' => 'Eliminar', + 'lien_desinscrire_tous' => 'Eliminar todas las inscripciones', + 'lien_retirer_evenement' => 'Eliminar', + 'liste_inscrits' => 'Lista de inscripciones', + + // M + 'mois_precedent' => 'mes anterior', + 'mois_suivant' => 'mes siguiente', + + // N + 'nb_repetitions' => '@nb@ repeticiones', + + // P + 'participation_incertaine_prise_en_compte' => 'Su eventual participación ha sido registrada', + 'participation_prise_en_compte' => 'Su participación ha sido registrada', + 'probleme_technique' => 'Ha habido un problema técnico. Por favor, inténtelo más tarde.', + + // R + 'repetition' => 'Repetición', + 'repetition_de' => 'Repetición de', + 'retour_evenement' => 'Volver al evento', + 'rubrique_activer_agenda' => 'Activar el modo agenda', + 'rubrique_dans_une_rubrique_mode_agenda' => 'Esta sección permite utilizar eventos porque está en una sección en la que el modo agenda ha sido activado', + 'rubrique_desactiver_agenda' => 'Desactivar el modo agenda', + 'rubrique_liste_evenements_de' => 'Eventos de la sección', + 'rubrique_mode_agenda' => 'El modo agenda está activado para esta sección y su rama', + 'rubrique_sans_gestion_evenement' => 'El modo agenda no está activado para esta sección', + 'rubriques' => 'Secciones Agenda', + + // S + 'sans_titre' => '(sin título)', + + // T + 'telecharger' => 'Descargar', + 'telecharger_oui' => 'Solamente respuestas positivas', + 'telecharger_toutes' => 'Todas las respuestas', + 'telecharger_toutes_tous_evenements' => 'Todas las respuestas a las inscripciones', + 'texte_agenda' => 'Agenda', + 'texte_evenement_statut' => 'Este evento es:', + 'texte_logo_objet' => 'Logo del evento', + 'titre_cadre_ajouter_evenement' => 'Añadir un evento', + 'titre_cadre_modifier_evenement' => 'Modificar un evento', + 'titre_sur_l_agenda' => 'En la agenda', + 'titre_sur_l_agenda_aussi' => 'Y también...', + 'toutes_rubriques' => 'Todas', + + // U + 'une_repetition' => '1 repetición', + + // V + 'voir_evenements_rubrique' => 'Ver los eventos de la sección' +); + +?> diff --git a/www/plugins/agenda_3_5/lang/agenda_fr.php b/www/plugins/agenda_3_5/lang/agenda_fr.php new file mode 100644 index 0000000..f975b6e --- /dev/null +++ b/www/plugins/agenda_3_5/lang/agenda_fr.php @@ -0,0 +1,153 @@ + 'Votre absence est enregistrée', + 'activite_editoriale' => 'Activité Éditoriale', + 'afficher_calendrier' => 'Afficher le calendrier', + 'agenda' => 'Agenda', + 'ajouter_repetition' => 'Ajouter des répétitions', + 'ajouter_un_evenement' => 'ajouter un événement à cet article', + 'annee_precedente' => 'année précédente', + '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.', + + // 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 ?', + 'connexion_necessaire_pour_inscription' => 'Merci de vous connecter pour pouvoir vous inscrire à cet événement.', + 'creer_evenement' => 'Créer un événement', + + // E + '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_corrigee' => 'La date a été corrigée', + 'erreur_heure' => 'Cette heure est incorrecte', + 'erreur_heure_corrigee' => 'L\'heure a été corrigée', + 'evenement_adresse' => 'Adresse', + 'evenement_article' => 'Associé à l\'article', + 'evenement_autres_occurences' => 'Autres occurences :', + 'evenement_date' => 'Date', + 'evenement_date_a' => 'à ', + 'evenement_date_a_immediat' => 'à ', + 'evenement_date_au' => 'Au ', + 'evenement_date_de' => 'De ', + 'evenement_date_debut' => 'Date de début', + 'evenement_date_du' => 'Du ', + 'evenement_date_fin' => 'Date de fin', + 'evenement_date_inscription' => 'Date d\'inscription', + 'evenement_descriptif' => 'Descriptif', + 'evenement_horaire' => 'Toute la journée', + 'evenement_lieu' => 'Lieu', + 'evenement_repetitions' => 'Répétitions', + 'evenement_titre' => 'Titre', + 'evenements' => 'Événements', + 'evenements_a_venir' => 'À venir', + 'evenements_depuis_debut' => 'Depuis le début', + + // F + 'fermer' => 'fermer', + + // I + 'icone_creer_evenement' => 'Créer un nouvel é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', + 'info_aucun_evenement' => 'Aucun événement', + 'info_evenement' => 'Événement', + 'info_evenement_poubelle' => 'Événement supprimé', + 'info_evenement_propose' => 'Événement proposé', + 'info_evenement_publie' => 'Événement publié', + 'info_evenements' => 'Événements', + 'info_inscription' => 'Inscription en ligne :', + 'info_lieu' => 'Lieu :', + 'info_nb_inscrits' => '@nb@ inscrits', + 'info_nb_mois' => '@nb@ mois', + 'info_nb_places' => '@nb@ places', + 'info_nombre_evenements' => '@nb@ événements', + 'info_nouvel_evenement' => 'Nouvel événement', + 'info_reponse_inscription_non' => 'non', + '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', + 'inscrits' => 'Inscriptions', + + // L + 'label_annee' => 'Année', + '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_vous_inscrire' => 'Votre participation', + 'lien_desinscrire' => 'Supprimer', + 'lien_desinscrire_tous' => 'Supprimer toutes les inscriptions', + 'lien_retirer_evenement' => 'Supprimer', + 'liste_inscrits' => 'Liste des inscriptions', + + // M + 'mois_precedent' => 'mois précédent', + 'mois_suivant' => 'mois suivant', + + // N + 'nb_repetitions' => '@nb@ répétitions', + + // P + 'participation_incertaine_prise_en_compte' => 'Votre participation éventuelle est enregistrée', + 'participation_prise_en_compte' => 'Votre participation est enregistrée', + 'probleme_technique' => 'Un problème technique est survenu. Reessayez plus tard.', + + // R + 'repetition' => 'Répétition', + 'repetition_de' => 'Répétition de', + '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_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', + 'rubriques' => 'Rubriques Agenda', + + // S + 'sans_titre' => '(sans titre)', + + // T + 'telecharger' => 'Télécharger (csv)', + 'telecharger_oui' => 'Seulement les réponses positives', + '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', + '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_aussi' => 'Et aussi...', + 'toutes_rubriques' => 'Toutes', + + // U + 'une_repetition' => '1 répétition', + + // V + 'voir_evenements_rubrique' => 'Voir les événements de la rubrique' +); + +?> diff --git a/www/plugins/agenda_3_5/lang/agenda_nl.php b/www/plugins/agenda_3_5/lang/agenda_nl.php new file mode 100644 index 0000000..fabba51 --- /dev/null +++ b/www/plugins/agenda_3_5/lang/agenda_nl.php @@ -0,0 +1,60 @@ + 'Hoofdactiviteit', + 'ajouter_un_evenement' => 'een gebeurtenis toevoegen aan dit artikel', +// B + 'bouton_annuler' => 'Annuleren', + 'bouton_supprimer' => 'Afschaffen', +// E + 'evenement_autres_occurences' => 'Andere omstandigheden:', + 'evenement_date' => 'Date', + 'evenement_date_a' => 'tot ', + 'evenement_date_a_immediat' => 'om ', + 'evenement_date_au' => 'Tot ', + 'evenement_date_de' => 'Van ', + 'evenement_date_debut' => 'Aanvangsdatum', + 'evenement_date_du' => 'Van ', + 'evenement_date_fin' => 'Einddatum', + 'evenement_descriptif' => 'Beschrijvend', + 'evenement_horaire' => 'Dienstregeling', + 'evenement_lieu' => 'Plaats', + 'evenement_repetitions' => 'Herhalingen', + 'evenement_titre' => 'Titel', + 'evenements' => 'Gebeurtenissen', +// I + 'icone_creer_evenement' => 'Een nieuwe gebeurtenis creëren', + 'info_evenements' => 'Gebeurtenissen', + 'info_nombre_evenements' => '@nb@ gebeurtenissen,', + 'info_un_evenement' => 'een gebeurtenis,', + 'item_mots_cles_association_evenements' => 'aan de gebeurtenissen', +// L + 'lien_retirer_evenement' => 'Afschaffen', +// N + 'nb_mots_clefs' => '@nb@ trefwoorden', + 'nb_repetitions' => '@nb@ herhalingen', +// R + 'repetition_de' => 'Herhaling van', +// S + 'sans_titre' => '(zonder titel)', +// T + 'texte_agenda' => 'AGENDA', + 'titre_cadre_ajouter_evenement' => 'Een gebeurtenis toevoegen', + 'titre_cadre_modifier_evenement' => 'Een gebeurtenis wijzigen', + 'titre_sur_l_agenda' => 'Op de agenda', +// U + 'un_mot_clef' => '1 trefwoord', + 'une_repetition' => '1 herhaling', +); +?> \ No newline at end of file diff --git a/www/plugins/agenda_3_5/lang/agenda_sk.php b/www/plugins/agenda_3_5/lang/agenda_sk.php new file mode 100644 index 0000000..45c6b68 --- /dev/null +++ b/www/plugins/agenda_3_5/lang/agenda_sk.php @@ -0,0 +1,155 @@ + 'Vaša neúčasť bola zaznamenaná', + 'activite_editoriale' => 'Redakčná činnosť', + 'afficher_calendrier' => 'Zobraziť kalendár', + 'agenda' => 'Kalendár udalostí', + 'ajouter_repetition' => 'Pridať opakovania', + 'ajouter_un_evenement' => 'pridať udalosť k tomuto článku', + 'annee_precedente' => 'predchádzajúci rok', + 'annee_suivante' => 'ďalší rok', + 'aucun_evenement' => 'žiadna udalosť', + 'aucun_inscrit' => 'Žiadne prihlásenie', + 'aucune_rubrique_mode_agenda' => 'Podľa predvolených nastavení vám všetky rubriky umožňujú umožňujú využívať udalosti. Ak kalendár udalostí aktivujete pre jednu rubriku alebo viacero rubrík, riadenie udalostí bude obmedzené na vetvy týchto rubrík.', + + // B + 'bouton_annuler' => 'Zrušiť', + 'bouton_supprimer' => 'Odstrániť', + + // C + '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ť', + + // 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', + 'erreur_date' => 'Tento dátum nie je správny', + 'erreur_date_avant_apres' => 'Zadajte dátum ukončenia, ktorý nasleduje po dátume začiatku!', + 'erreur_date_corrigee' => 'Dátum bol opravený', + 'erreur_heure' => 'Tento čas nie je správny', + 'erreur_heure_corrigee' => 'Čas bol opravený', + 'evenement_adresse' => 'Adresa', + 'evenement_article' => 'Priradená k článku', + 'evenement_autres_occurences' => 'Ďalšie výskyty:', + 'evenement_date' => 'Dátum', + 'evenement_date_a' => 'k ', + 'evenement_date_a_immediat' => 'o ', + 'evenement_date_au' => 'Do ', + 'evenement_date_de' => 'Z(o) ', + 'evenement_date_debut' => 'Dátum začiatku', + 'evenement_date_du' => 'Od ', + 'evenement_date_fin' => 'Dátum ukončenia', + 'evenement_date_inscription' => 'Dátum prihlásenia', + 'evenement_descriptif' => 'Popis', + 'evenement_horaire' => 'Celý deň', + 'evenement_lieu' => 'Miesto', + 'evenement_repetitions' => 'Opakovania', + 'evenement_titre' => 'Nadpis', + 'evenements' => 'Udalosti', + 'evenements_a_venir' => 'Budúce', + 'evenements_depuis_debut' => 'od začiatku', + + // F + 'fermer' => 'zatvoriť', + + // I + 'icone_creer_evenement' => 'Vytvoriť novú udalosť', + 'icone_modifier_evenement' => 'Upraviť udalosť', + 'indiquez_votre_choix' => 'Uveďte svoju voľbu', + 'info_1_mois' => '1 mesiac', + 'info_1_place' => '1 miesto', + 'info_aucun_evenement' => 'Žiadna udalosť', + 'info_evenement' => 'Udalosť', + 'info_evenement_poubelle' => 'Odstránená udalosť', + 'info_evenement_propose' => 'Navrhovaná udalosť', + 'info_evenement_publie' => 'Uverejnená udalosť', + 'info_evenements' => 'Udalosti', + 'info_inscription' => 'Registrácia online:', + 'info_lieu' => 'Miesto:', + 'info_nb_inscrits' => '@nb@ prihlásení', + 'info_nb_mois' => '@nb@ mesiac', + 'info_nb_places' => '@nb@ miest', + 'info_nombre_evenements' => '@nb@ udalostí', + 'info_nouvel_evenement' => 'Nová udalosť', + 'info_reponse_inscription_non' => 'nie', + 'info_reponse_inscription_nsp' => '?', + 'info_reponse_inscription_oui' => 'áno', + 'info_reponse_inscriptions' => 'Reakcia', + 'info_reponses_inscriptions' => 'Reakcie:', + 'info_un_evenement' => '1 udalosť', + 'info_un_inscrit' => 'Jedno prihlásenie', + 'inscrits' => 'Registrácie', + + // L + 'label_annee' => 'Rok', + 'label_inscription' => 'Registrácia online', + '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_peutetre' => 'Možno prídem', + 'label_vous_inscrire' => 'Vaša účasť', + 'lien_desinscrire' => 'Odstrániť', + 'lien_desinscrire_tous' => 'Vymazať všetky prihlásenia', + 'lien_retirer_evenement' => 'Odstrániť', + 'liste_inscrits' => 'Zoznam zaregistrovaných', + + // M + 'mois_precedent' => 'predchádzajúci mesiac', + 'mois_suivant' => 'ďalší mesiac', + + // N + 'nb_repetitions' => '@nb@ opakovaní', + + // P + 'participation_incertaine_prise_en_compte' => 'Vaša prípadná účasť bola zaznamenaná', + 'participation_prise_en_compte' => 'Vaša účasť bola zaznamenaná', + 'probleme_technique' => 'Vyskytol sa technický problém. Skúste neskôr, prosím.', + + // R + 'repetition' => 'Opakovanie', + 'repetition_de' => 'Opakovanie', + 'retour_evenement' => 'Vrátiť sa na udalosť', + 'rubrique_activer_agenda' => 'Aktivovať Kalendár udalostí pre túto rubriku', + 'rubrique_dans_une_rubrique_mode_agenda' => 'Táto rubrika vám umožňuje využívať udalosti, keďže sa nachádza v rubrike, pre ktorú bol Kalendár udalostí aktivovaný', + 'rubrique_desactiver_agenda' => 'Deaktivovať Kalendár udalostí pre túto rubriku', + 'rubrique_liste_evenements_de' => 'Udalosti rubriky', + 'rubrique_mode_agenda' => 'Režim Kalendár udalostí bol aktivovaný pre túto rubriku a jej vetvu', + 'rubrique_sans_gestion_evenement' => 'Režim Kalendár udalostí nie je pre túto rubriku aktivovaný', + 'rubriques' => 'Rubriky s kalendárom udalostí', + + // S + 'sans_titre' => '(bez nadpisu)', + + // T + 'telecharger' => 'Stiahnuť (csv)', + 'telecharger_oui' => 'Iba pozitívne reakcie', + 'telecharger_toutes' => 'Všetky reakcie', + 'telecharger_toutes_tous_evenements' => 'Všetky reakcie cez prihlásenie', + 'texte_agenda' => 'Kalendár udalostí', + 'texte_evenement_statut' => 'Táto udalosť je:', + 'texte_logo_objet' => 'Logo udalosti', + 'titre_cadre_ajouter_evenement' => 'Pridať udalosť', + 'titre_cadre_modifier_evenement' => 'Upraviť udalosť', + 'titre_sur_l_agenda' => 'V Kalendári udalostí ', + 'titre_sur_l_agenda_aussi' => 'A tiež...', + 'toutes_rubriques' => 'Všetky', + + // U + 'une_repetition' => '1 opakovanie', + + // V + 'voir_evenements_rubrique' => 'Zobraziť udalosti rubriky' +); + +?> diff --git a/www/plugins/agenda_3_5/lang/configureragenda_fr.php b/www/plugins/agenda_3_5/lang/configureragenda_fr.php new file mode 100644 index 0000000..a2d6724 --- /dev/null +++ b/www/plugins/agenda_3_5/lang/configureragenda_fr.php @@ -0,0 +1,30 @@ + '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', + '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_prec' => 'Début du mois précédent', + 'label_affichage_debut_debut_mois_1' => 'Début d\'année', + 'label_affichage_debut_mois_passe' => '@mois@ précédent', + + 'legend_presentation_agenda' => 'Présentation de l\'agenda', +); + +?> diff --git a/www/plugins/agenda_3_5/lang/migreragenda_fr.php b/www/plugins/agenda_3_5/lang/migreragenda_fr.php new file mode 100644 index 0000000..e1d0482 --- /dev/null +++ b/www/plugins/agenda_3_5/lang/migreragenda_fr.php @@ -0,0 +1,35 @@ + 'Migrer un Agenda d\'articles', + '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.', + + 'label_rubrique_source' => 'Rubrique Agenda à migrer', + 'label_toute_la_branche_oui' => 'Migrer aussi toutes les sous-rubriques', + '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 :", + +); + +?> diff --git a/www/plugins/agenda_3_5/lang/paquet-agenda.xml b/www/plugins/agenda_3_5/lang/paquet-agenda.xml new file mode 100644 index 0000000..cac2b72 --- /dev/null +++ b/www/plugins/agenda_3_5/lang/paquet-agenda.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/www/plugins/agenda_3_5/lang/paquet-agenda_en.php b/www/plugins/agenda_3_5/lang/paquet-agenda_en.php new file mode 100644 index 0000000..d3e9409 --- /dev/null +++ b/www/plugins/agenda_3_5/lang/paquet-agenda_en.php @@ -0,0 +1,16 @@ + 'Events agenda', + 'agenda_nom' => 'Agenda', + 'agenda_slogan' => 'Events agenda' +); + +?> diff --git a/www/plugins/agenda_3_5/lang/paquet-agenda_es.php b/www/plugins/agenda_3_5/lang/paquet-agenda_es.php new file mode 100644 index 0000000..340def3 --- /dev/null +++ b/www/plugins/agenda_3_5/lang/paquet-agenda_es.php @@ -0,0 +1,16 @@ + 'Agenda de Eventos', + 'agenda_nom' => 'Agenda', + 'agenda_slogan' => 'Agenda de Eventos' +); + +?> diff --git a/www/plugins/agenda_3_5/lang/paquet-agenda_fr.php b/www/plugins/agenda_3_5/lang/paquet-agenda_fr.php new file mode 100644 index 0000000..f6fba01 --- /dev/null +++ b/www/plugins/agenda_3_5/lang/paquet-agenda_fr.php @@ -0,0 +1,14 @@ + 'Agenda Evénementiel', + 'agenda_nom' => 'Agenda', + 'agenda_slogan' => 'Agenda Evénementiel' +); + +?> diff --git a/www/plugins/agenda_3_5/lang/paquet-agenda_sk.php b/www/plugins/agenda_3_5/lang/paquet-agenda_sk.php new file mode 100644 index 0000000..20fa3df --- /dev/null +++ b/www/plugins/agenda_3_5/lang/paquet-agenda_sk.php @@ -0,0 +1,16 @@ + 'Kalendár udalostí', + 'agenda_nom' => 'Diár', + 'agenda_slogan' => 'Kalendár udalostí' +); + +?> diff --git a/www/plugins/agenda_3_5/lang/paquet-albums.xml b/www/plugins/agenda_3_5/lang/paquet-albums.xml new file mode 100644 index 0000000..f2b1b69 --- /dev/null +++ b/www/plugins/agenda_3_5/lang/paquet-albums.xml @@ -0,0 +1,2 @@ + + diff --git a/www/plugins/agenda_3_5/modeles/evenement_vevent.html b/www/plugins/agenda_3_5/modeles/evenement_vevent.html new file mode 100644 index 0000000..28aa078 --- /dev/null +++ b/www/plugins/agenda_3_5/modeles/evenement_vevent.html @@ -0,0 +1 @@ +#INCLURE{fond=inclure/resume/evenement,id_evenement=#ENV{id,#ENV{id_evenement}}} \ No newline at end of file diff --git a/www/plugins/agenda_3_5/paquet.xml b/www/plugins/agenda_3_5/paquet.xml new file mode 100644 index 0000000..1c4818b --- /dev/null +++ b/www/plugins/agenda_3_5/paquet.xml @@ -0,0 +1,49 @@ + + + Agenda + + + Cedric MORIN + b_b + romy.tetue.net + Julien Tessier + + 2006-2012 + + GPL 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/www/plugins/agenda_3_5/prive/objets/contenu/article-evenements.html b/www/plugins/agenda_3_5/prive/objets/contenu/article-evenements.html new file mode 100644 index 0000000..0839510 --- /dev/null +++ b/www/plugins/agenda_3_5/prive/objets/contenu/article-evenements.html @@ -0,0 +1,7 @@ +[(#REM) afficher les evenements de cet article] +
+,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})] +] +
diff --git a/www/plugins/agenda_3_5/prive/objets/contenu/evenement.html b/www/plugins/agenda_3_5/prive/objets/contenu/evenement.html new file mode 100644 index 0000000..780d67b --- /dev/null +++ b/www/plugins/agenda_3_5/prive/objets/contenu/evenement.html @@ -0,0 +1,46 @@ + +
+
<:info_titre:>
+
#TITRE
+
+
+
<:agenda:info_dates:>
+
[(#DATE_DEBUT|affdate_debut_fin{#DATE_FIN,#HORAIRE})]
+
+ +
+
[(#GRAND_TOTAL|singulier_ou_pluriel{agenda:une_repetition,agenda:nb_repetitions})]
+
([(#DATE_DEBUT|affdate_court)])
+
+
+
+
<:info_descriptif:>
+
[(#DESCRIPTIF|image_reduire{500,0})]
+
+
+
<:agenda:info_lieu:>
+
[(#LIEU|image_reduire{500,0})]
+
+
+
<:agenda:evenement_adresse:>
+
[(#ADRESSE|image_reduire{500,0})]
+
+
+
<:agenda:info_inscription:>
+#SET{rep_oui,#TOTAL_BOUCLE} +#SET{rep_non,#TOTAL_BOUCLE} +#SET{rep_nsp,#TOTAL_BOUCLE} +[
(#PLACES|singulier_ou_pluriel{agenda:info_1_place,agenda:info_nb_places}) + (<:agenda:info_reponses_inscriptions:> + [(#GET{rep_oui}) ]<:agenda:info_reponse_inscription_oui:> | + [(#GET{rep_non}) ]<:agenda:info_reponse_inscription_non:> | + [(#GET{rep_nsp}) ]<:agenda:info_reponse_inscription_nsp:>) + +
] + +
+[
+
<:info_notes:>
+
(#NOTES)
+
+] \ No newline at end of file diff --git a/www/plugins/agenda_3_5/prive/objets/infos/evenement.html b/www/plugins/agenda_3_5/prive/objets/infos/evenement.html new file mode 100644 index 0000000..2304c66 --- /dev/null +++ b/www/plugins/agenda_3_5/prive/objets/infos/evenement.html @@ -0,0 +1,33 @@ + +
+#SET{texte_objet,#VAL{evenement}|objet_info{texte_objet}|_T} +
<:titre_cadre_numero_objet{objet=#GET{texte_objet}}:>

#ID_EVENEMENT

+ +[(#FORMULAIRE_INSTITUER_OBJET{evenement,#ID_EVENEMENT})] + +[(#REM) + + Bouton voir en ligne + +] + + + + + + [(#VAL{redirect} + |generer_url_action{type=evenement&id=#ID_EVENEMENT} + |parametre_url{var_mode,calcul} + |icone_horizontale{<:icone_voir_en_ligne:>,racine})] + + [(#AUTORISER{previsualiser,evenement,#ID_EVENEMENT,'',#ARRAY{statut,#STATUT}}) + [(#VAL{redirect} + |generer_url_action{type=evenement&id=#ID_ARTICLE} + |parametre_url{var_mode,preview} + |icone_horizontale{<:previsualiser:>,preview})] + ] + +
+ diff --git a/www/plugins/agenda_3_5/prive/objets/liste/evenement_participants.html b/www/plugins/agenda_3_5/prive/objets/liste/evenement_participants.html new file mode 100755 index 0000000..390fc41 --- /dev/null +++ b/www/plugins/agenda_3_5/prive/objets/liste/evenement_participants.html @@ -0,0 +1,39 @@ + +#ANCRE_PAGINATION +
+ +[] + + + + + + + [ + (#AUTORISER{modifier,evenement,#ID_EVENEMENT})] + + + + + + + + + + [ + (#AUTORISER{modifier,evenement,#ID_EVENEMENT})] + + + +
(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{agenda:info_un_inscrit,agenda:info_nb_inscrits,nb}})
[(#TRI{statut,#,ajax})][(#TRI{nom,<:nom:>,ajax})][(#TRI{email,<:email:>,ajax})][(#TRI{date,<:agenda:evenement_date_inscription:>,ajax})][(#TRI{reponse,<:agenda:info_reponse_inscriptions:>,ajax})]Action
[(#STATUT|puce_statut{auteur,#ID_AUTEUR})][(#RANG). ][(#NOM|sinon{<:texte_vide:>})]#EMAIL[(#DATE|affdate_jourcourt|unique{liste_evt})]#REPONSE + +
+[

(#PAGINATION{prive})

] +
+[(#AUTORISER{modifier,evenement,#ID_EVENEMENT})

] + +
+

<:agenda:aucun_inscrit:>

+ + + diff --git a/www/plugins/agenda_3_5/prive/objets/liste/evenements-post.html b/www/plugins/agenda_3_5/prive/objets/liste/evenements-post.html new file mode 100644 index 0000000..0197a75 --- /dev/null +++ b/www/plugins/agenda_3_5/prive/objets/liste/evenements-post.html @@ -0,0 +1,11 @@ +[(#REM) Se placer au debut du mois en cours par defaut] +#SET{date_debut,#ENV{date_debut,#ENV{date}}|affdate{Y-m-d 00:00:00}|agenda_dateplus{-1}} + +[(#REM) Si un evenement passe, on commence par le jour de cet evenement] + #SET{id_evenement,#ID_EVENEMENT} + + + #SET{id_evenement,#ID_EVENEMENT} + + +[(#INCLURE{fond=prive/objets/liste/evenements,debut_liste_evt=#ENV{debut_liste_evt,@#GET{id_evenement}},id_evenement=#EVAL{null},env})] diff --git a/www/plugins/agenda_3_5/prive/objets/liste/evenements.html b/www/plugins/agenda_3_5/prive/objets/liste/evenements.html new file mode 100644 index 0000000..42dc489 --- /dev/null +++ b/www/plugins/agenda_3_5/prive/objets/liste/evenements.html @@ -0,0 +1,49 @@ +[(#SET{defaut_tri,#ARRAY{ + date_debut,#ENV{date_sens,1}, + titre,1, + id_evenement,1, + points,-1 +}}) +] +#ANCRE_PAGINATION +
+ +[] + + + + + + + + + + + + + + + + + + + #SET{id_evenement,#ID_EVENEMENT_SOURCE|?{#ID_EVENEMENT_SOURCE,#ID_EVENEMENT}} + + + + +
(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{agenda:info_un_evenement,agenda:info_nombre_evenements}})
[(#TRI{statut,#,ajax})][(#TRI{date_debut,<:date:>,ajax})][(#TRI{titre,<:info_titre:>,ajax})]<:agenda:evenement_lieu:>[(#TRI{id_evenement,<:info_numero_abbreviation:>,ajax})]
[(#STATUT|puce_statut{evenement,#ID_EVENEMENT})][(#DATE_DEBUT|affdate_jourcourt|unique{liste_evt})][[(#CHEMIN_IMAGE{article-16.png}|balise_img{#INFO_TITRE{article,#ID_ARTICLE}})]][(#RANG). ]#TITRE +

[(#DATE_DEBUT|affdate_debut_fin{#DATE_FIN,#HORAIRE})]

+
#LIEU[(#ID_EVENEMENT_SOURCE|oui) + [(#CHEMIN_IMAGE{repetition-16.png}|balise_img{<:agenda:repetition:>,''}|inserer_attribut{title,<:agenda:repetition:>})] + ][(#AUTORISER{modifier,evenement,#GET{id_evenement}}|?{[ + (#GET{id_evenement})], + [(#GET{id_evenement})] + })] +
+[

(#PAGINATION{prive})

] +
+
[ +
(#ENV*{sinon,''})
+] diff --git a/www/plugins/agenda_3_5/prive/squelettes/contenu/agenda_inscriptions.html b/www/plugins/agenda_3_5/prive/squelettes/contenu/agenda_inscriptions.html new file mode 100755 index 0000000..8fde0b8 --- /dev/null +++ b/www/plugins/agenda_3_5/prive/squelettes/contenu/agenda_inscriptions.html @@ -0,0 +1,16 @@ +#BOITE_OUVRIR + +

<:agenda:liste_inscrits:>

+

#TITRE

+
[(#DATE_DEBUT|affdate_debut_fin{#DATE_FIN,#HORAIRE})]
+[
<:agenda:evenement_descriptif:> : (#DESCRIPTIF|PtoBR)
] +[
<:agenda:evenement_lieu:> : (#LIEU)
] +
+ #FORMULAIRE_EVENEMENT_PARTICIPANTS{#ENV{id_evenement},#ENV{tri_inscrits}} +
+ + + +

<:agenda:aucun_evenement:>

+ +#BOITE_FERMER diff --git a/www/plugins/agenda_3_5/prive/squelettes/contenu/configurer_agenda.html b/www/plugins/agenda_3_5/prive/squelettes/contenu/configurer_agenda.html new file mode 100644 index 0000000..741df29 --- /dev/null +++ b/www/plugins/agenda_3_5/prive/squelettes/contenu/configurer_agenda.html @@ -0,0 +1,6 @@ +[(#AUTORISER{configurer_agenda}|sinon_interdire_acces)] +

<:agenda:agenda:>

+
#FORMULAIRE_CONFIGURER_AGENDA
+
#FORMULAIRE_CONFIGURER_CALENDRIERMINI
+

<:agenda:rubriques:>

+
#FORMULAIRE_MIGRER_AGENDA
diff --git a/www/plugins/agenda_3_5/prive/squelettes/contenu/evenement_edit.html b/www/plugins/agenda_3_5/prive/squelettes/contenu/evenement_edit.html new file mode 100644 index 0000000..48e97a3 --- /dev/null +++ b/www/plugins/agenda_3_5/prive/squelettes/contenu/evenement_edit.html @@ -0,0 +1,32 @@ +[(#ID_EVENEMENT|intval|oui) + [(#AUTORISER{modifier,evenement,#ID_EVENEMENT}|sinon_interdire_acces)]] +[(#ID_EVENEMENT|intval|non) + [(#AUTORISER{creer,evenement,0,'',#ARRAY{id_article,#ENV{id_article}}}|sinon_interdire_acces)]] + +#SET{retour,#ENV{redirect}|sinon{#ENV{id_article}|?{#URL_ECRIRE{article,id_article=#ID_ARTICLE},#ID_EVENEMENT|?{#ID_EVENEMENT|generer_url_entite{evenement},#URL_ECRIRE{evenements}}}}} +
+
+ [(#GET{retour}|icone_verticale{<:icone_retour:>,evenement,'',left retour[(#ENV{retourajax,''}|oui)ajax preload]})] + [[(#ID_EVENEMENT|?{<:agenda:titre_cadre_modifier_evenement:>,<:agenda:titre_cadre_ajouter_evenement:>})] +

(#ENV{titre,#INFO_TITRE{evenement,#ID_EVENEMENT}|sinon{<:agenda:info_nouvel_evenement:>}})

] +
+ +#SET{redirect,#ENV{redirect,#ID_EVENEMENT|generer_url_entite{evenement}}} +[(#ENV{retourajax,''}|oui) + #SET{redirect,'javascript:if (window.jQuery) jQuery(".entete-formulaire .retour a").followLink();'} +
+ +] + #FORMULAIRE_EDITER_EVENEMENT{#ENV{id_evenement,oui},#ENV{id_article},#GET{redirect},#ENV{associer_objet}} +[(#ENV{retourajax,''}|oui) +
+ +] +[(#ENV{id_evenement,''}|intval|oui) +
+ #FORMULAIRE_EDITER_LIENS{mots,evenement,#ENV{id_evenement}} +
+] + +
+ diff --git a/www/plugins/agenda_3_5/prive/squelettes/contenu/evenements.html b/www/plugins/agenda_3_5/prive/squelettes/contenu/evenements.html new file mode 100644 index 0000000..9584d51 --- /dev/null +++ b/www/plugins/agenda_3_5/prive/squelettes/contenu/evenements.html @@ -0,0 +1,16 @@ +[(#AUTORISER{menu,_evenements}|sinon_interdire_acces)] +

<:agenda:agenda:>

+ +#BOITE_OUVRIR{'','note'} + [(#CHEMIN_IMAGE{fermer-16.png}|balise_img|inserer_attribut{alt,<:info_tout_afficher:>})] + <:agenda:rubrique_liste_evenements_de:> +

#TITRE

+#BOITE_FERMER + + +
+ [(#INCLURE{fond=prive/objets/liste/evenements-post}{env})] +
+[(#AUTORISER{creer,evenement}|oui) +[(#URL_ECRIRE{evenement_edit,id_evenement=new}|parametre_url{id_article,#ID_ARTICLE}|icone_verticale{<:agenda:creer_evenement:>,evenement-24.png,new,right})] +] \ No newline at end of file diff --git a/www/plugins/agenda_3_5/prive/squelettes/extra/agenda_inscriptions.html b/www/plugins/agenda_3_5/prive/squelettes/extra/agenda_inscriptions.html new file mode 100644 index 0000000..d3fff83 --- /dev/null +++ b/www/plugins/agenda_3_5/prive/squelettes/extra/agenda_inscriptions.html @@ -0,0 +1,23 @@ +[(#BOITE_OUVRIR{[(#CHEMIN_IMAGE{calendrier-24.png}|balise_img{'',cadre-icone})],'info'})] +

<:agenda:info_inscription:>

+#SET{rep_oui,#TOTAL_BOUCLE} +#SET{rep_non,#TOTAL_BOUCLE} +#SET{rep_nsp,#TOTAL_BOUCLE} + +[
(#PLACES|singulier_ou_pluriel{agenda:info_1_place,agenda:info_nb_places})
] + +
<:agenda:info_reponses_inscriptions:>
+
    +
  • [(#GET{rep_oui}) ]<:agenda:info_reponse_inscription_oui:>
  • +
  • [(#GET{rep_non}) ]<:agenda:info_reponse_inscription_non:>
  • +
  • [(#GET{rep_nsp}) ]<:agenda:info_reponse_inscription_nsp:>
  • +
+#SET{args,#ARRAY{id_evenement,#ID_EVENEMENT}} +

<:agenda:telecharger:>

+ +#BOITE_FERMER diff --git a/www/plugins/agenda_3_5/prive/squelettes/inclure/agenda-navigation-mois.html b/www/plugins/agenda_3_5/prive/squelettes/inclure/agenda-navigation-mois.html new file mode 100644 index 0000000..1a986b0 --- /dev/null +++ b/www/plugins/agenda_3_5/prive/squelettes/inclure/agenda-navigation-mois.html @@ -0,0 +1,12 @@ +#SET{self,#ENV{self}|parametre_url{debut_mois,#EVAL{_request('debut_mois')}}} + +[(#REM) navigation par mois] + +[

(#PAGINATION{prive})

] +
diff --git a/www/plugins/agenda_3_5/prive/squelettes/inclure/agenda-rubriques.html b/www/plugins/agenda_3_5/prive/squelettes/inclure/agenda-rubriques.html new file mode 100644 index 0000000..0371454 --- /dev/null +++ b/www/plugins/agenda_3_5/prive/squelettes/inclure/agenda-rubriques.html @@ -0,0 +1,13 @@ +#SET{self,#SELF|parametre_url{debut_rubriques,#EVAL{_request('debut_rubriques')}}} + +[(#BOITE_OUVRIR{[<:agenda:rubriques:>(#CHEMIN_IMAGE{rubrique-24.png}|balise_img{'',cadre-icone})],simple})] +[(#REM) navigation par rubriques agenda] +[

(#PAGINATION{page})

] +
    +
  • [(#GET{self}|parametre_url{id_rubrique,''}|lien_ou_expose{<:agenda:toutes_rubriques:>,#ENV{id_rubrique,0}|=={0}})]
  • + +
  • [(#GET{self}|parametre_url{id_rubrique,#ID_RUBRIQUE}|lien_ou_expose{#TITRE|supprimer_numero{},#ENV{id_rubrique}|=={#ID_RUBRIQUE}})] (<:info_numero_abbreviation:>#ID_RUBRIQUE)
  • + +
+#BOITE_FERMER +
diff --git a/www/plugins/agenda_3_5/prive/squelettes/navigation/agenda_inscriptions.html b/www/plugins/agenda_3_5/prive/squelettes/navigation/agenda_inscriptions.html new file mode 100755 index 0000000..ac724bc --- /dev/null +++ b/www/plugins/agenda_3_5/prive/squelettes/navigation/agenda_inscriptions.html @@ -0,0 +1,5 @@ + +[(#BOITE_OUVRIR{[(#CHEMIN_IMAGE{calendrier-24.png}|balise_img{'',cadre-icone})]})] +

<:agenda:retour_evenement:>

+#BOITE_FERMER + diff --git a/www/plugins/agenda_3_5/prive/squelettes/navigation/evenement.html b/www/plugins/agenda_3_5/prive/squelettes/navigation/evenement.html new file mode 100644 index 0000000..0c3d615 --- /dev/null +++ b/www/plugins/agenda_3_5/prive/squelettes/navigation/evenement.html @@ -0,0 +1,14 @@ + +#BOITE_OUVRIR{'','info'} +#PIPELINE{boite_infos,#ARRAY{data,'',args,#ARRAY{'type','evenement','id',#ENV{id_evenement}}}} +#BOITE_FERMER + +
+#FORMULAIRE_EDITER_LOGO{evenement,#ID_EVENEMENT,'',#ENV**} +
+ +#PIPELINE{afficher_config_objet,#ARRAY{args,#ARRAY{type,evenement,id,#ID_EVENEMENT},data,''}} + + +[(#ENV{exec}|=={evenement_edit}|oui)] + diff --git a/www/plugins/agenda_3_5/prive/squelettes/navigation/evenements.html b/www/plugins/agenda_3_5/prive/squelettes/navigation/evenements.html new file mode 100644 index 0000000..a2c1eb3 --- /dev/null +++ b/www/plugins/agenda_3_5/prive/squelettes/navigation/evenements.html @@ -0,0 +1,25 @@ +[(#BOITE_OUVRIR{[(#CHEMIN_IMAGE{calendrier-24.png}|balise_img{'',cadre-icone})],'simple'})] +#SET{self,#SELF|parametre_url{id_evenement|date_debut|debut_liste_evt,''}|parametre_url{debut_mois,#EVAL{_request('debut_mois')}}} + +[(#INCLURE{fond=prive/squelettes/inclure/agenda-navigation-mois}{ajax}{env}{self=#GET{self}})] +#BOITE_FERMER +[(#INCLURE{fond=prive/squelettes/inclure/agenda-rubriques}{ajax}{env}{self=#GET{self}})] + \ No newline at end of file diff --git a/www/plugins/agenda_3_5/prive/style_prive_plugin_agenda.html b/www/plugins/agenda_3_5/prive/style_prive_plugin_agenda.html new file mode 100644 index 0000000..7d0c867 --- /dev/null +++ b/www/plugins/agenda_3_5/prive/style_prive_plugin_agenda.html @@ -0,0 +1,102 @@ +[(#REM) + + Ce squelette definit les styles de l'espace prive + + Note: l'entete "Vary:" sert a repousser l'entete par + defaut "Vary: Cookie,Accept-Encoding", qui est (un peu) + genant en cas de "rotation du cookie de session" apres + un changement d'IP (effet de clignotement). + + ATTENTION: il faut absolument le charset sinon Firefox croit que + c'est du text/html ! + +#CACHE{0} +
+#FORMULAIRE_CONFIGURER_BEESPIP +
+ diff --git a/www/plugins/beespip/fonds/cfg_beespip_couleur.html b/www/plugins/beespip/fonds/cfg_beespip_couleur.html new file mode 100755 index 0000000..d155ede --- /dev/null +++ b/www/plugins/beespip/fonds/cfg_beespip_couleur.html @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + +#CACHE{0} +
+#FORMULAIRE_CONFIGURER_BEESPIP_COULEUR +
diff --git a/www/plugins/beespip/fonds/cfg_beespip_options_affichage.html b/www/plugins/beespip/fonds/cfg_beespip_options_affichage.html new file mode 100755 index 0000000..6bd81cc --- /dev/null +++ b/www/plugins/beespip/fonds/cfg_beespip_options_affichage.html @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + +#CACHE{0} +
+#FORMULAIRE_CONFIGURER_BEESPIP_OPTIONS_AFFICHAGE +
+ + diff --git a/www/plugins/beespip/formulaires/calendrier_mini.html b/www/plugins/beespip/formulaires/calendrier_mini.html new file mode 100755 index 0000000..4c8a1d6 --- /dev/null +++ b/www/plugins/beespip/formulaires/calendrier_mini.html @@ -0,0 +1,57 @@ +[(#SET{urljson,[(#ENV{urljson} + |parametre_url{id_rubrique,#ENV{id_rubrique,#ENV{urljson}|parametre_url{id_rubrique}}} + |parametre_url{id_article,#ENV{id_article,#ENV{urljson}|parametre_url{id_article}}} + |parametre_url{id_mot,#ENV{id_mot,#ENV{urljson}|parametre_url{id_mot}}} + |parametre_url{lang,#ENV{lang,#ENV{urljson}|parametre_url{lang}}} + )]}) +]
+ +
[(#REM) + + Contenu alternatif statique pour les Bot et les utilisateurs sans JS + ]
+ #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} + [(#ENV{date}|affdate_mois_annee)] : + + + +

<:minical:aucune_date:>

+ +

+ #SET{prev,#VAL{Y-m-01}|date{#GET{start}|moins{172800}}} + #SET{next,#VAL{Y-m-01}|date{#GET{end}}} + [(#GET{prev}|affdate_mois_annee)] + | [(#GET{next}|affdate_mois_annee)] +

+
+
+
[ +(#REM) -------------------------------------------------------------------------------------------------- + +Chargement du javascript du mini-calendrier + +][ +(#REM) -------------------------------------------------------------------------------------------------- + +Chargement de la css que l'on importe inline pour eviter un hit (performance) ++ fixer la css de background pour les boutons precedent/suivant + +] diff --git a/www/plugins/beespip/formulaires/configurer_beespip.html b/www/plugins/beespip/formulaires/configurer_beespip.html new file mode 100755 index 0000000..c5b3493 --- /dev/null +++ b/www/plugins/beespip/formulaires/configurer_beespip.html @@ -0,0 +1,60 @@ +
+ +

[(#CHEMIN{prive/themes/spip/images/beespip_config-24.png}|image_reduire{24}|inserer_attribut{class,cadre-icone}|inserer_attribut{alt,''})] Configuration de Beespip

+ +[

(#ENV*{message_ok})

] +[

(#ENV*{message_erreur})

] + +
+
+#ACTION_FORMULAIRE{#ENV{action}} + + +
<:beespip:beespip_choix_page_accueil:> + #SET{erreurs,#ENV**{erreurs}|table_valeur{page_accueil}} +
+
+
+

+ [(#PLUGIN{agenda}|oui)

<:beespip:beespip_calendrier_public:> + #SET{erreurs,#ENV**{erreurs}|table_valeur{calendrier_public}} + +
+

] +

Option de la page d'accueil + #SET{erreurs,#ENV**{erreurs}|table_valeur{nb_article_une}} +
+ +
+ #SET{erreurs,#ENV**{erreurs}|table_valeur{nb_ligne_sousune}} +
+ +
+ #SET{erreurs,#ENV**{erreurs}|table_valeur{nb_article_col_droite}} +
+ + + [(#PLUGIN{agenda}|oui)[(#CONFIG{BeeSpip/configuration/calendrier_public}|=={'oui'}|oui) +
+ #SET{erreurs,#ENV**{erreurs}|table_valeur{nb_evenement_accueil}} +
+ + ]] +
+ #SET{erreurs,#ENV**{erreurs}|table_valeur{autres_articles}} + Afficher les autres articles en bas de page
+ + +
+ #SET{erreurs,#ENV**{erreurs}|table_valeur{articles_populaires}} + Afficher les articles les plus consultés
+ +
+ + +

+ +

+
+
+
diff --git a/www/plugins/beespip/formulaires/configurer_beespip_couleur.html b/www/plugins/beespip/formulaires/configurer_beespip_couleur.html new file mode 100755 index 0000000..9d0c2f6 --- /dev/null +++ b/www/plugins/beespip/formulaires/configurer_beespip_couleur.html @@ -0,0 +1,117 @@ +
+ +

[(#CHEMIN{images/config/beespip_config-24.png}|image_reduire{24}|inserer_attribut{class,cadre-icone}|inserer_attribut{alt,''})] Configuration de Beespip

+ +[

(#ENV*{message_ok})

] +[

(#ENV*{message_erreur})

] + +
+
+#ACTION_FORMULAIRE{#ENV{action}} + +Vous pouvez sélectionner un thème parmi ceux proposés ci-dessous puis valider ensuite. +#SET{couleur_principale,#EVAL{$_GET['couleur_principale']}|sinon{#ENV{couleur_principale}}} +#SET{couleur_secondaire_foncee,#EVAL{$_GET['couleur_secondaire_foncee']}|sinon{#ENV{couleur_secondaire_foncee}}} +#SET{couleur_secondaire_claire,#EVAL{$_GET['couleur_secondaire_claire']}|sinon{#ENV{couleur_secondaire_claire}}} +#SET{couleur_fond_page,#EVAL{$_GET['couleur_fond_page']}|sinon{#ENV{couleur_fond_page}}} +#SET{couleur_principale_texte,#EVAL{$_GET['couleur_principale_texte']}|sinon{#ENV{couleur_principale_texte}}} +#SET{couleur_titres,#EVAL{$_GET['couleur_titres']}|sinon{#ENV{couleur_titres}}} +#SET{couleur_liens,#EVAL{$_GET['couleur_liens']}|sinon{#ENV{couleur_liens}}} +#SET{couleur_liens_survol,#EVAL{$_GET['couleur_liens_survol']}|sinon{#ENV{couleur_liens_survol}}} +#SET{couleur_menu_fond,#EVAL{$_GET['couleur_menu_fond']}|sinon{#ENV{couleur_menu_fond}}} +#SET{couleur_menu_liens,#EVAL{$_GET['couleur_menu_liens']}|sinon{#ENV{couleur_menu_liens}}} +#SET{couleur_menu_liens_survol,#EVAL{$_GET['couleur_menu_liens_survol']}|sinon{#ENV{couleur_menu_liens_survol}}} +#SET{couleur_filets_titres,#EVAL{$_GET['couleur_filets_titres']}|sinon{#ENV{couleur_filets_titres}}} +#SET{couleur_filets_colonnes,#EVAL{$_GET['couleur_filets_colonnes']}|sinon{#ENV{couleur_filets_colonnes}}} +#SET{couleur_cadres,#EVAL{$_GET['couleur_cadres']}|sinon{#ENV{couleur_cadres}}} +#SET{couleur_fond_formulaires,#EVAL{$_GET['couleur_fond_formulaires']}|sinon{#ENV{couleur_fond_formulaires}}} +Vous pouvez aussi sélectionner vos propres couleurs.

+

Choix des couleurs principales des aplats et certains textes + + #SET{erreurs,#ENV**{erreurs}|table_valeur{couleur_principale}} + +

+ + #SET{erreurs,#ENV**{erreurs}|table_valeur{couleur_secondaire_foncee}} + +

+ + #SET{erreurs,#ENV**{erreurs}|table_valeur{couleur_secondaire_claire}} + +

+ + #SET{erreurs,#ENV**{erreurs}|table_valeur{couleur_fond_page}} + +

+ +
Choix des couleurs des textes et liens + + #SET{erreurs,#ENV**{erreurs}|table_valeur{couleur_principale_texte}} + +

+ + #SET{erreurs,#ENV**{erreurs}|table_valeur{couleur_titres}} + +

+
Vous pouvez définir une police spécifique pour vos titres. Pour cela accéder au répertoire Google WebFonts et identifier une police qui vous convient, et cliquez sur "Quick-use".
+ Copier dans le champ ci-dessous le contenu du bloc : "3. Add this code to your website:" qui doit ressembler à
+ <link href='http://fonts.googleapis.com/css?family=Electrolize' rel='stylesheet' type='text/css'>
+
+ Ensuite copier ci-dessous la partie 4, qui doit ressembler à
+ font-family: 'Electrolize', sans-serif;
+ +

+ + #SET{erreurs,#ENV**{erreurs}|table_valeur{couleur_liens}} + +

+ + #SET{erreurs,#ENV**{erreurs}|table_valeur{couleur_liens_survol}} + +

+ +
Choix des couleurs du menu + + #SET{erreurs,#ENV**{erreurs}|table_valeur{couleur_menu_fond}} + +

+ + #SET{erreurs,#ENV**{erreurs}|table_valeur{couleur_menu_liens}} + +

+ + #SET{erreurs,#ENV**{erreurs}|table_valeur{couleur_menu_liens_survol}} + + +

+ +
Autres couleurs + + #SET{erreurs,#ENV**{erreurs}|table_valeur{couleur_fond_formulaires}} + +

+ + #SET{erreurs,#ENV**{erreurs}|table_valeur{couleur_filets_titres}} + +

+ + #SET{erreurs,#ENV**{erreurs}|table_valeur{couleur_filets_colonnes}} + +

+ + #SET{erreurs,#ENV**{erreurs}|table_valeur{couleur_cadres}} + +

+

+ + +

+ +

+
+
+
diff --git a/www/plugins/beespip/formulaires/configurer_beespip_options_affichage.html b/www/plugins/beespip/formulaires/configurer_beespip_options_affichage.html new file mode 100755 index 0000000..ab17cd3 --- /dev/null +++ b/www/plugins/beespip/formulaires/configurer_beespip_options_affichage.html @@ -0,0 +1,95 @@ +
+ +

[(#CHEMIN{prive/themes/spip/images/beespip_config-24.png}|image_reduire{24}|inserer_attribut{class,cadre-icone}|inserer_attribut{alt,''})] Configuration de Beespip

+ +[

(#ENV*{message_ok})

] +[

(#ENV*{message_erreur})

] + +
+
+#ACTION_FORMULAIRE{#ENV{action}} + +
<:beespip:beespip_gestion_entete:> + Nom du site
Afficher le nom et le slogan du site
+ #SET{erreurs,#ENV**{erreurs}|table_valeur{nom_site}} + + +

+ #SET{erreurs,#ENV**{erreurs}|table_valeur{hauteur_entete}} + + +

+ #SET{erreurs,#ENV**{erreurs}|table_valeur{hauteur_menu}} + + +

+ #SET{erreurs,#ENV**{erreurs}|table_valeur{nb_items_menu}} + + +

+ [(#PLUGIN{menus}|oui)#SET{erreurs,#ENV**{erreurs}|table_valeur{menu_debut}} + Complément du menu
Si le nombre d'éléments définis par le plugin "Menu" + est inférieur à la valeur définie ci-dessus, précisez ou se positionneront les rubriques racines complémentaires.
+
+ +

] + #SET{erreurs,#ENV**{erreurs}|table_valeur{largeur_items_menu}} + + +

+ #SET{erreurs,#ENV**{erreurs}|table_valeur{taille_typo_menu}} + + + +

+

+

<:beespip:beespip_emplacement_recherche:> + #SET{erreurs,#ENV**{erreurs}|table_valeur{emplacement_recherche}} +
+
+

+

Afficher les textes "articles" et "sous-rubriques" dans les pages de rubrique. +#SET{erreurs,#ENV**{erreurs}|table_valeur{libelle_rubrique_article}} + +
+

+

Modèle de pagination + #SET{erreurs,#ENV**{erreurs}|table_valeur{modele_pagination}} +
+
+
+
+

+

<:beespip:beespip_dates:> + <:beespip:beespip_dates_articles:>
+ #SET{erreurs,#ENV**{erreurs}|table_valeur{dates_articles}} + +
+ <:beespip:beespip_dates_breves:>
+ #SET{erreurs,#ENV**{erreurs}|table_valeur{dates_breves}} + +
+

+

<:beespip:beespip_auteurs_articles:> + +
+

+

<:beespip:beespip_derniere_date_publication:> + <:beespip:beespip_derniere_date_publication_descr:>
+ #SET{erreurs,#ENV**{erreurs}|table_valeur{derniere_date_publication}} + +
+ + +

+ +

+
+
+
+ + diff --git a/www/plugins/beespip/formulaires/recherche.html b/www/plugins/beespip/formulaires/recherche.html new file mode 100755 index 0000000..98f790f --- /dev/null +++ b/www/plugins/beespip/formulaires/recherche.html @@ -0,0 +1,9 @@ +
+
+ [(#ENV{action}|form_hidden)] + [] + + + +
+
diff --git a/www/plugins/beespip/head/page-agenda.html b/www/plugins/beespip/head/page-agenda.html new file mode 100755 index 0000000..38efc17 --- /dev/null +++ b/www/plugins/beespip/head/page-agenda.html @@ -0,0 +1,6 @@ + +<:icone_agenda:> - [(#NOM_SITE_SPIP|textebrut)] + + + + diff --git a/www/plugins/beespip/images/article_une0.png b/www/plugins/beespip/images/article_une0.png new file mode 100755 index 0000000..ba55fa4 Binary files /dev/null and b/www/plugins/beespip/images/article_une0.png differ diff --git a/www/plugins/beespip/images/article_une1.png b/www/plugins/beespip/images/article_une1.png new file mode 100755 index 0000000..ca76135 Binary files /dev/null and b/www/plugins/beespip/images/article_une1.png differ diff --git a/www/plugins/beespip/images/article_une2.png b/www/plugins/beespip/images/article_une2.png new file mode 100755 index 0000000..714bc54 Binary files /dev/null and b/www/plugins/beespip/images/article_une2.png differ diff --git a/www/plugins/beespip/images/article_une3.png b/www/plugins/beespip/images/article_une3.png new file mode 100755 index 0000000..943b1bc Binary files /dev/null and b/www/plugins/beespip/images/article_une3.png differ diff --git a/www/plugins/beespip/images/article_une4.png b/www/plugins/beespip/images/article_une4.png new file mode 100755 index 0000000..d7f7f23 Binary files /dev/null and b/www/plugins/beespip/images/article_une4.png differ diff --git a/www/plugins/beespip/images/bg_sous_menu.png b/www/plugins/beespip/images/bg_sous_menu.png new file mode 100755 index 0000000..c846d6a Binary files /dev/null and b/www/plugins/beespip/images/bg_sous_menu.png differ diff --git a/www/plugins/beespip/images/blocune_accroche.png b/www/plugins/beespip/images/blocune_accroche.png new file mode 100755 index 0000000..479eaa0 Binary files /dev/null and b/www/plugins/beespip/images/blocune_accroche.png differ diff --git a/www/plugins/beespip/images/blocune_accroche_ie.png b/www/plugins/beespip/images/blocune_accroche_ie.png new file mode 100755 index 0000000..698b5f9 Binary files /dev/null and b/www/plugins/beespip/images/blocune_accroche_ie.png differ diff --git a/www/plugins/beespip/images/entete.png b/www/plugins/beespip/images/entete.png new file mode 100755 index 0000000..e9d20c5 Binary files /dev/null and b/www/plugins/beespip/images/entete.png differ diff --git a/www/plugins/beespip/images/fond_pour_puce_niv1.png b/www/plugins/beespip/images/fond_pour_puce_niv1.png new file mode 100755 index 0000000..94b48b2 Binary files /dev/null and b/www/plugins/beespip/images/fond_pour_puce_niv1.png differ diff --git a/www/plugins/beespip/images/fond_pour_puce_niv2.png b/www/plugins/beespip/images/fond_pour_puce_niv2.png new file mode 100755 index 0000000..b1384da Binary files /dev/null and b/www/plugins/beespip/images/fond_pour_puce_niv2.png differ diff --git a/www/plugins/beespip/images/fond_pour_puce_niv3.png b/www/plugins/beespip/images/fond_pour_puce_niv3.png new file mode 100755 index 0000000..fe7e258 Binary files /dev/null and b/www/plugins/beespip/images/fond_pour_puce_niv3.png differ diff --git a/www/plugins/beespip/images/fond_pour_puce_niv4.png b/www/plugins/beespip/images/fond_pour_puce_niv4.png new file mode 100755 index 0000000..230f552 Binary files /dev/null and b/www/plugins/beespip/images/fond_pour_puce_niv4.png differ diff --git a/www/plugins/beespip/images/fond_vide_pour_puce.gif b/www/plugins/beespip/images/fond_vide_pour_puce.gif new file mode 100755 index 0000000..b9f1859 Binary files /dev/null and b/www/plugins/beespip/images/fond_vide_pour_puce.gif differ diff --git a/www/plugins/beespip/images/gravatar.jpg b/www/plugins/beespip/images/gravatar.jpg new file mode 100755 index 0000000..626e5a1 Binary files /dev/null and b/www/plugins/beespip/images/gravatar.jpg differ diff --git a/www/plugins/beespip/images/liste1_niv1.png b/www/plugins/beespip/images/liste1_niv1.png new file mode 100755 index 0000000..3f11bb8 Binary files /dev/null and b/www/plugins/beespip/images/liste1_niv1.png differ diff --git a/www/plugins/beespip/images/liste1_niv2.png b/www/plugins/beespip/images/liste1_niv2.png new file mode 100755 index 0000000..c373ab1 Binary files /dev/null and b/www/plugins/beespip/images/liste1_niv2.png differ diff --git a/www/plugins/beespip/images/liste1_niv3.png b/www/plugins/beespip/images/liste1_niv3.png new file mode 100755 index 0000000..2e95824 Binary files /dev/null and b/www/plugins/beespip/images/liste1_niv3.png differ diff --git a/www/plugins/beespip/images/liste1_niv4.png b/www/plugins/beespip/images/liste1_niv4.png new file mode 100755 index 0000000..2e95824 Binary files /dev/null and b/www/plugins/beespip/images/liste1_niv4.png differ diff --git a/www/plugins/beespip/images/recherche.gif b/www/plugins/beespip/images/recherche.gif new file mode 100755 index 0000000..e6f888a Binary files /dev/null and b/www/plugins/beespip/images/recherche.gif differ diff --git a/www/plugins/beespip/images/recherche.png b/www/plugins/beespip/images/recherche.png new file mode 100755 index 0000000..28d1cbe Binary files /dev/null and b/www/plugins/beespip/images/recherche.png differ diff --git a/www/plugins/beespip/images/transp.gif b/www/plugins/beespip/images/transp.gif new file mode 100755 index 0000000..673cf38 Binary files /dev/null and b/www/plugins/beespip/images/transp.gif differ diff --git a/www/plugins/beespip/inclure/agenda.html b/www/plugins/beespip/inclure/agenda.html new file mode 100755 index 0000000..a2d92c2 --- /dev/null +++ b/www/plugins/beespip/inclure/agenda.html @@ -0,0 +1,15 @@ +[(#PLUGIN{calendriermini}|oui)#CALENDRIER_MINI{#ENV{date},'date',#URL_PAGE{agenda}, #URL_PAGE{calendrier_mini_event.json}}] +[(#PLUGIN{calendriermini}|non)#CALENDRIER_MINI{#ENV{date},'date',#SELF}] +calendriermini +[(#SET{date,#ENV{date}})] +[(#REM) On teste si la date à afficher est la date du mois en cours, si c'est le cas, on fixe la date au jour précis] +[(#ENV{date}|=={[(#VAL{Y-m}|date)]-01}|oui)[(#SET{date,#VAL{Y-m-d}|date})]] +
 
+ +
    + +
  • [(#DATE_DEBUT|agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE,'hcal'})] +

    #TITRE

  • + +
+
diff --git a/www/plugins/beespip/inclure/articles_liste.html b/www/plugins/beespip/inclure/articles_liste.html new file mode 100755 index 0000000..5276ce5 --- /dev/null +++ b/www/plugins/beespip/inclure/articles_liste.html @@ -0,0 +1,17 @@ + +[(#ENV{bloc}|=={pagination}|non)#ANCRE_PAGINATION +[(#CONFIG{BeeSpip/affichage/libelle_rubrique_article}|=={'oui'}|oui)

<:articles:>

]] + + [(#ENV{bloc}|=={pagination}|?{

,

})][(#TITRE|supprimer_numero)][(#ENV{bloc}|=={sommaire}|?{

,})] + [(#INCLURE{fond=inclure/infos_auteurs_dates}{id_article})] +

[(#LOGO_ARTICLE_RUBRIQUE||image_reduire{120,120}|inserer_attribut{class,float-left})][(#INTRODUCTION|PtoBR|image_reduire{#ENV{largeur,200},0})]

+

+ Lire la suite + [(#TOTAL_BOUCLE|oui) + | [(#TOTAL_BOUCLE|=={1}|?{<:zpip:commentaire:>,<:zpip:commentaires:>})] ([(#TOTAL_BOUCLE)]) + ] + +

+ +[(#ENV{bloc}|=={pagination}|non)[]] +
diff --git a/www/plugins/beespip/inclure/articles_populaires.html b/www/plugins/beespip/inclure/articles_populaires.html new file mode 100755 index 0000000..2ed9ecb --- /dev/null +++ b/www/plugins/beespip/inclure/articles_populaires.html @@ -0,0 +1,10 @@ + +
+

Articles populaires

+ +
+
diff --git a/www/plugins/beespip/inclure/articles_une_colonne_droite.html b/www/plugins/beespip/inclure/articles_une_colonne_droite.html new file mode 100755 index 0000000..ffd70a8 --- /dev/null +++ b/www/plugins/beespip/inclure/articles_une_colonne_droite.html @@ -0,0 +1,14 @@ + +

[(#TITRE|supprimer_numero)]

+ [(#INCLURE{fond=inclure/infos_auteurs_dates}{id_article}{affichage=court})] + [
(#LOGO_ARTICLE_RUBRIQUE||image_reduire{190,120}|inserer_attribut{alt,#TITRE|texte_backend})
][(#DESCRIPTIF|sinon{

[(#INTRODUCTION|couper{150}|PtoBR)]

}|image_reduire{190,120})] +

Lire la suite

+ + +

[(#TITRE|supprimer_numero)]

+ [(#INCLURE{fond=inclure/infos_auteurs_dates}{id_article}{affichage=court})] + [
(#LOGO_ARTICLE_RUBRIQUE||image_reduire{190,120}|inserer_attribut{alt,#TITRE|texte_backend})
][(#DESCRIPTIF|sinon{

[(#INTRODUCTION|couper{150}|PtoBR)]

}|image_reduire{190,120})] +

Lire la suite

+ + + diff --git a/www/plugins/beespip/inclure/articles_une_recents.html b/www/plugins/beespip/inclure/articles_une_recents.html new file mode 100755 index 0000000..f19655c --- /dev/null +++ b/www/plugins/beespip/inclure/articles_une_recents.html @@ -0,0 +1,25 @@ +[(#REM) On exclu les articles affichés en colonne de droite] + + + +#SET{affiche_article,#ARRAY} + +#ANCRE_PAGINATION +#SET{compteur_boucle,0} +
+ #SET{affiche_article, #GET{affiche_article}|push{#ID_ARTICLE}} + + + [(#REM) Si le nombre d'articles de la rubrique est inférieur à 10, on calcule la valeur pour répartir les articles en 2 colonnes] + #SET{rupture,#TOTAL_BOUCLE|div{2}|ceil} + #SET{col2,#GET{rupture}|plus{1}} + + + #SET{compteur_boucle,#GET{compteur_boucle}|plus{1}} + [(#GET{compteur_boucle}|=={#GET{col2}}|oui)
] +
[(#TITRE|texte_backend)]
+ [(#INCLURE{fond=inclure/infos_auteurs_dates}{id_article}{affichage=court})] + +
 
[] +
+
diff --git a/www/plugins/beespip/inclure/articles_une_slide.html b/www/plugins/beespip/inclure/articles_une_slide.html new file mode 100755 index 0000000..cb59f58 --- /dev/null +++ b/www/plugins/beespip/inclure/articles_une_slide.html @@ -0,0 +1,19 @@ + +
  • + #SET{img,#ENV{nb_articles_une_encours}|modulo{5}} + [(#CONFIG{BeeSpip/configuration/page_accueil}|=={'slide'}|oui) + [(#LOGO_ARTICLE||image_reduire{680,0}|image_recadre{682,432,center}|inserer_attribut{alt,#TITRE|attribut_html})] + [(#LOGO_ARTICLE|=={''}|oui)[(#TITRE|attribut_html)]] + ][(#CONFIG{BeeSpip/configuration/page_accueil}|=={'slide2'}|oui) + [(#LOGO_ARTICLE||image_reduire{440,0}|image_recadre{442,302,center}|inserer_attribut{alt,#TITRE|attribut_html})] + [(#LOGO_ARTICLE|=={''}|oui)[(#TITRE|attribut_html)]] + ] +
    +

    [(#TITRE|texte_backend)]

    + [(#INCLURE{fond=inclure/infos_auteurs_dates}{id_article}{affichage=court})] + [(#CONFIG{BeeSpip/configuration/page_accueil}|=={'slide'}|oui) +

    [(#INTRODUCTION|supprimer_tags|texte_backend)]

    + ][(#CONFIG{BeeSpip/configuration/page_accueil}|=={'slide2'}|oui) +

    [(#INTRODUCTION|supprimer_tags|texte_backend|couper{280})]

    + ]
  • + diff --git a/www/plugins/beespip/inclure/documents.html b/www/plugins/beespip/inclure/documents.html new file mode 100755 index 0000000..e67fea1 --- /dev/null +++ b/www/plugins/beespip/inclure/documents.html @@ -0,0 +1,32 @@ +[(#REM) Portfolio : album d'images ] + + + + + +[(#REM) + Liste des autres documents joints +] + +
    +

    <:titre_documents_joints:>

    + [ +
    [(#LOGO_DOCUMENT|#URL_DOCUMENT||image_reduire{200,100})
    ] + [(#TITRE|sinon{<:info_document:>})] +
    (#TYPE_DOCUMENT[ – (#TAILLE|taille_en_octets)]) + #DESCRIPTIF + ]
    [(#COMPTEUR_BOUCLE|modulo{#ENV{compteur,3}}|=={0}|oui)
     
    ] + +
     
    +
    diff --git a/www/plugins/beespip/inclure/entete.html b/www/plugins/beespip/inclure/entete.html new file mode 100755 index 0000000..b2b8d0e --- /dev/null +++ b/www/plugins/beespip/inclure/entete.html @@ -0,0 +1,26 @@ +#SET{hauteur_entete,#CONFIG{BeeSpip/affichage/hauteur_entete}} +#SET{hauteur_menu,#CONFIG{BeeSpip/affichage/hauteur_menu}} +[(#REM)On vérifie si la position du menu est possible, sinon on la fixe en bas de l'entete] +#SET{hauteur_menu_max,#GET{hauteur_entete}|moins{45}} +[(#GET{hauteur_menu}|>{#GET{hauteur_menu_max}}|oui)#SET{hauteur_menu,#GET{hauteur_menu_max}}] +
    + + [(#REM) Faut-il afficher le nom du site et le slogan] + [(#CONFIG{BeeSpip/affichage/nom_site}|=={'oui'}|oui) +
    + [(#REM)On essai de définir l'emplacement du texte si il doit d'afficher en fonction de la position du menu] + [(#GET{hauteur_menu}|>{#GET{hauteur_entete}|div{2}}|oui)#SET{position_nom_site,20}] +

    #NOM_SITE_SPIP

    + [

    (#SLOGAN_SITE_SPIP|PtoBR)

    ] +
    ] + [(#REM) Sinon on affiche une image cliquable] + [(#CONFIG{BeeSpip/affichage/nom_site}|=={'oui'}|non) +
    + Logo du site +
    ] + + +
    diff --git a/www/plugins/beespip/inclure/evenements.html b/www/plugins/beespip/inclure/evenements.html new file mode 100755 index 0000000..f144159 --- /dev/null +++ b/www/plugins/beespip/inclure/evenements.html @@ -0,0 +1,15 @@ + +
    +

    Evènements associés

    +
      + +
    • [(#DATE_DEBUT|agenda_affdate_debut_fin{#DATE_FIN,#HORAIRE,'hcal'})] #TITRE + [

      (#DESCRIPTIF)

      ] + [

      (#LIEU)[(#ADRESSE|PtoBR)]

      ] +

      #TITRE

      + [
      (#FORMULAIRE_PARTICIPER_EVENEMENT{#ID_EVENEMENT})
      ] +
    • + +
    +
    +
    diff --git a/www/plugins/beespip/inclure/forum.html b/www/plugins/beespip/inclure/forum.html new file mode 100755 index 0000000..3798e2b --- /dev/null +++ b/www/plugins/beespip/inclure/forum.html @@ -0,0 +1,84 @@ +[(#REM) Cette balise (invisible) provoque le recalcul du forum +la premiere fois qu'un message est poste (cf. inc/invalideur). ] +[(#PARAMETRES_FORUM|?{''})] + +
    + [(#REM) Nombre total de messages ] + [

    (#TOTAL_BOUCLE|>{0}|?{#TOTAL_BOUCLE,''}) + [(#TOTAL_BOUCLE|=={1}|?{<:message:>,<:messages_forum:>})]

    ] + + [(#REM) Messages du forum ] + + + +
      +
    • +
      +
      + + [(#LOGO_AUTEUR|image_reduire{40,0}|image_recadre{40,40,center}|sinon{})]#TITRE + [, <:par_auteur:> (#NOM)
      ] + [(#DATE|oui) + [(#SET{date,[(#DATE|affdate_jourcourt)]})] + [(#SET{heure,[(#DATE|heures)][:(#DATE|minutes)]})] + <:zpip:date_forum{date=#GET{date},heure=#GET{heure}}:>] +
      +
      + + [
      (#TEXTE|lignes_longues)
      ] + [
      (#NOTES|safehtml|lignes_longues)
      ] + [] + + [(#EXTENSION|match{'^(gif|jpg|png)$'}|?{ + [(#EMBED_DOCUMENT|image_reduire{300})] + , + [(#LOGO_DOCUMENT|#URL_DOCUMENT)] + })] + + +
      +
      +
    • + + + + +
    • +
      +
      + + [(#LOGO_AUTEUR|image_reduire{40,0}|image_recadre{40,40,center}|sinon{})]#TITRE + [, <:par_auteur:> (#NOM)
      ] + [(#DATE|oui) + [(#SET{date,[(#DATE|affdate_jourcourt)]})] + [(#SET{heure,[(#DATE|heures)][:(#DATE|minutes)]})] + <:zpip:date_forum{date=#GET{date},heure=#GET{heure}}:>] +
      +
      + [
      (#TEXTE|lignes_longues)
      ] + [
      (#NOTES|safehtml|lignes_longues)
      ] + [] + + + [(#EXTENSION|match{'^(gif|jpg|png)$'}|?{ + [(#EMBED_DOCUMENT|image_reduire{300})] + , + [(#LOGO_DOCUMENT|#URL_DOCUMENT)] + })] + + +
      +
      +
    • + + + + + +
      +
    + [

    <:beespip:repondre_message:>

    ] + + +
    +
    diff --git a/www/plugins/beespip/inclure/head.html b/www/plugins/beespip/inclure/head.html new file mode 100755 index 0000000..fbea725 --- /dev/null +++ b/www/plugins/beespip/inclure/head.html @@ -0,0 +1,103 @@ +[(#REM) + Head standard de toutes les pages ; les elements specifiques + (title, description) figurent dans le squelette article.html +] +[(#REM) Preciser le charset ] + + +[(#REM) Fierement fabrique avec SPIP ] + + +[(#REM) Lien vers le flux RSS du site ] +[] + +[(#REM) Feuille de style Beespip] +[] +[] +[] +[] +[] + +[(#REM) Feuille de style par defaut pour le code genere par SPIP +[]] + +[(#REM) Feuille de style par defaut pour les formulaires de SPIP +[]] + +[(#REM) Balise permettant aux plugins d'inserer des fichiers CSS ] +#INSERT_HEAD_CSS + +[(#REM) Feuille de style CSS pour l'impression ] +[] + +[(#CHEMIN{inc-theme-head.html}|oui) +#INCLURE{fond=inc-theme-head,env} +] + +[(#REM) Balise permettant aux plugins d'inserer des appels javascript ou css ; + C'est ici que SPIP va inserer l'appel de la librairie jQuery + Et appeler a la fin compacte_head pour agreger et compacter tout le head dans des fichiers statiques + si l'option est cochee dans Configuration +] +#INSERT_HEAD + + + + + +[(#CONFIG{BeeSpip/configuration/page_accueil}|match{'slide'}|oui) + + + [(#CONFIG{BeeSpip/configuration/page_accueil}|=={'slide'}|oui)] + [(#CONFIG{BeeSpip/configuration/page_accueil}|=={'slide2'}|oui)] +] + +[(#CONFIG{BeeSpip/couleur/typo_titre_lien})][ +(#REM) Feuille de style personnalisee pour surcharger les precedentes + A noter par defaut cette css n'existe pas +][(#CHEMIN{css/perso.css.html}|oui)[ +]] diff --git a/www/plugins/beespip/inclure/infos_auteurs_dates.html b/www/plugins/beespip/inclure/infos_auteurs_dates.html new file mode 100755 index 0000000..4be9a53 --- /dev/null +++ b/www/plugins/beespip/inclure/infos_auteurs_dates.html @@ -0,0 +1,24 @@ + + [(#REM) Il y a soit l'affichage des dates, soit l'affichage des auteurs, soit les 2 + L'affichage court est utilisé sur le sommaire + ] + [(#CONFIG{BeeSpip/affichage/dates_articles}|ou{#CONFIG{BeeSpip/affichage/auteurs_articles}}) + + ] + diff --git a/www/plugins/beespip/inclure/liens_evitement.html b/www/plugins/beespip/inclure/liens_evitement.html new file mode 100755 index 0000000..1eef855 --- /dev/null +++ b/www/plugins/beespip/inclure/liens_evitement.html @@ -0,0 +1,3 @@ +

    <:beespip:evitement_contenu:> +<:beespip:evitement_navigation:> +<:beespip:evitement_recherche:>

    diff --git a/www/plugins/beespip/inclure/menu.html b/www/plugins/beespip/inclure/menu.html new file mode 100755 index 0000000..9450e19 --- /dev/null +++ b/www/plugins/beespip/inclure/menu.html @@ -0,0 +1,21 @@ +#SET{englobant,non} + + [(#MENUS_AFFICHER_ENTREE|trim|oui)#SET{englobant,oui}] + + [(#GET{englobant}|=={'oui'}|oui)] + + + diff --git a/www/plugins/beespip/inclure/menu_rubrique.html b/www/plugins/beespip/inclure/menu_rubrique.html new file mode 100755 index 0000000..3275384 --- /dev/null +++ b/www/plugins/beespip/inclure/menu_rubrique.html @@ -0,0 +1,8 @@ + + + diff --git a/www/plugins/beespip/inclure/menu_standard.html b/www/plugins/beespip/inclure/menu_standard.html new file mode 100755 index 0000000..464b245 --- /dev/null +++ b/www/plugins/beespip/inclure/menu_standard.html @@ -0,0 +1,32 @@ + +[(#REM) On mémorise le nombre d'item à afficher] +#SET{reste_a_afficher,#CONFIG{BeeSpip/affichage/nb_items_menu}} + + + diff --git a/www/plugins/beespip/inclure/mot_breves.html b/www/plugins/beespip/inclure/mot_breves.html new file mode 100755 index 0000000..115a44d --- /dev/null +++ b/www/plugins/beespip/inclure/mot_breves.html @@ -0,0 +1,9 @@ + + diff --git a/www/plugins/beespip/inclure/mot_rubriques.html b/www/plugins/beespip/inclure/mot_rubriques.html new file mode 100755 index 0000000..c902d52 --- /dev/null +++ b/www/plugins/beespip/inclure/mot_rubriques.html @@ -0,0 +1,9 @@ + + diff --git a/www/plugins/beespip/inclure/mot_sites.html b/www/plugins/beespip/inclure/mot_sites.html new file mode 100755 index 0000000..f6996ba --- /dev/null +++ b/www/plugins/beespip/inclure/mot_sites.html @@ -0,0 +1,9 @@ + + diff --git a/www/plugins/beespip/inclure/page_lessites.html b/www/plugins/beespip/inclure/page_lessites.html new file mode 100755 index 0000000..01c99f9 --- /dev/null +++ b/www/plugins/beespip/inclure/page_lessites.html @@ -0,0 +1,7 @@ +#ANCRE_PAGINATION<:beespip:les_derniers_articles:>
    + +

    #PUCE [(#TITRE*|supprimer_numero)] +
    + [
    (#DESCRIPTIF)]

    +[]
    diff --git a/www/plugins/beespip/inclure/petition.html b/www/plugins/beespip/inclure/petition.html new file mode 100755 index 0000000..c8a7460 --- /dev/null +++ b/www/plugins/beespip/inclure/petition.html @@ -0,0 +1,45 @@ +[(#REM) Signer la petition ] +#FORMULAIRE_SIGNATURE + +[(#REM) Signatures de la petition ] + +
    + [

    (#PAGINATION{#CONFIG{BeeSpip/affichage/modele_pagination}})

    ] + + + + + + + [(#REM) Afficher la colonne des messages si autorises ] + + + + + + + + + + + [(#REM) Afficher la colonne des messages si autorises ] + + + + + + +

    #GRAND_TOTAL <:signatures_petition:>

    <:date:><:nom:><:message:>
    [(#DATE|affdate_jourcourt)]#NOM[ ][(#MESSAGE|PtoBR)]
    + [

    (#PAGINATION{#CONFIG{BeeSpip/affichage/modele_pagination}})

    ] + + [(#REM) Afficher un moteur de recherche si plus de 30 signatures + ou s'il etait deja present au coup d'avant] + [(#ENV{recherche_signatures}|?{31,#_signatures:GRAND_TOTAL}|>{3}|oui) +
    +
    [(#SELF|form_hidden)] + +
    +
    + ] +
    +
    diff --git a/www/plugins/beespip/inclure/pied.html b/www/plugins/beespip/inclure/pied.html new file mode 100755 index 0000000..8718ecf --- /dev/null +++ b/www/plugins/beespip/inclure/pied.html @@ -0,0 +1,28 @@ +
    + [(#REM) on teste si le menu "pied" du plugin "Menu" existe + Sinon on appelle le menu par défaut] + + #INCLURE{fond=inclure/menu, env, identifiant=pied} + + + + +

    + SPIP #SPIP_VERSION | + <:beespip:squelette_beespip:> <:beespip:version:>[(#VAL{beespip}|beespip_info_version)] + +

    + =0}{!par date}{0,1}>[(#CONFIG{BeeSpip/affichage/derniere_date_publication}|=={'oui'}|oui)
    <:beespip:mis_a_jour:> [(#DATE|nom_jour)] [(#DATE|affdate)]
    ] +
    diff --git a/www/plugins/beespip/js/easySlider1.7.js b/www/plugins/beespip/js/easySlider1.7.js new file mode 100755 index 0000000..f63223f --- /dev/null +++ b/www/plugins/beespip/js/easySlider1.7.js @@ -0,0 +1,237 @@ +/* + * Easy Slider 1.7 - jQuery plugin + * written by Alen Grakalic + * http://cssglobe.com/post/4004/easy-slider-15-the-easiest-jquery-plugin-for-sliding + * + * Copyright (c) 2009 Alen Grakalic (http://cssglobe.com) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * Built for jQuery library + * http://jquery.com + * + */ + +/* + * markup example for $("#slider").easySlider(); + * + *
    + *
      + *
    • + *
    • + *
    • + *
    • + *
    • + *
    + *
    + * + */ + +(function($) { + + $.fn.easySlider = function(options){ + + // default configuration properties + var defaults = { + prevId: 'prevBtn', + prevText: 'Previous', + nextId: 'nextBtn', + nextText: 'Next', + controlsShow: true, + controlsBefore: '', + controlsAfter: '', + controlsFade: true, + firstId: 'firstBtn', + firstText: 'First', + firstShow: false, + lastId: 'lastBtn', + lastText: 'Last', + lastShow: false, + vertical: false, + speed: 800, + auto: false, + pause: 2000, + continuous: false, + numeric: false, + numericId: 'controls' + }; + + var options = $.extend(defaults, options); + + this.each(function() { + var obj = $(this); + var s = $("li", obj).length; + var w = $("li", obj).width(); + var h = $("li", obj).height(); + var clickable = true; + obj.width(w); + obj.height(h); + obj.css("overflow","hidden"); + var ts = s-1; + var t = 0; + $("ul", obj).css('width',s*w); + + if(options.continuous){ + $("ul", obj).prepend($("ul li:last-child", obj).clone().css("margin-left","-"+ w +"px")); + $("ul", obj).append($("ul li:nth-child(2)", obj).clone()); + $("ul", obj).css('width',(s+1)*w); + }; + + if(!options.vertical) $("li", obj).css('float','left'); + + if(options.controlsShow){ + var html = options.controlsBefore; + if(options.numeric){ + html += '
      '; + } else { + if(options.firstShow) html += ''+ options.firstText +''; + html += ' '+ options.prevText +''; + html += ' '+ options.nextText +''; + if(options.lastShow) html += ' '+ options.lastText +''; + }; + + html += options.controlsAfter; + $(obj).after(html); + }; + + if(options.numeric){ + for(var i=0;i'+ (i+1) +'') + .html(''+ (i+1) +'') + .appendTo($("#"+ options.numericId)) + .click(function(){ + animate($("a",$(this)).attr('rel'),true); + }); + }; + } else { + $("a","#"+options.nextId).click(function(){ + animate("next",true); + }); + $("a","#"+options.prevId).click(function(){ + animate("prev",true); + }); + $("a","#"+options.firstId).click(function(){ + animate("first",true); + }); + $("a","#"+options.lastId).click(function(){ + animate("last",true); + }); + }; + + function setCurrent(i){ + i = parseInt(i)+1; + $("li", "#" + options.numericId).removeClass("current"); + $("li#" + options.numericId + i).addClass("current"); + }; + + function adjust(){ + if(t>ts) t=0; + if(t<0) t=ts; + if(!options.vertical) { + $("ul",obj).css("margin-left",(t*w*-1)); + } else { + $("ul",obj).css("margin-left",(t*h*-1)); + } + clickable = true; + if(options.numeric) setCurrent(t); + }; + + function animate(dir,clicked){ + if (clickable){ + clickable = false; + var ot = t; + switch(dir){ + case "next": + t = (ot>=ts) ? (options.continuous ? t+1 : ts) : t+1; + break; + case "prev": + t = (t<=0) ? (options.continuous ? t-1 : 0) : t-1; + break; + case "first": + t = 0; + break; + case "last": + t = ts; + break; + default: + t = dir; + break; + }; + var diff = Math.abs(ot-t); + var speed = diff*options.speed; + if(!options.vertical) { + p = (t*w*-1); + $("ul",obj).animate( + { marginLeft: p }, + { queue:false, duration:speed, complete:adjust } + ); + } else { + p = (t*h*-1); + $("ul",obj).animate( + { marginTop: p }, + { queue:false, duration:speed, complete:adjust } + ); + }; + + if(!options.continuous && options.controlsFade){ + if(t==ts){ + $("a","#"+options.nextId).hide(); + $("a","#"+options.lastId).hide(); + } else { + $("a","#"+options.nextId).show(); + $("a","#"+options.lastId).show(); + }; + if(t==0){ + $("a","#"+options.prevId).hide(); + $("a","#"+options.firstId).hide(); + } else { + $("a","#"+options.prevId).show(); + $("a","#"+options.firstId).show(); + }; + }; + + if(clicked) clearTimeout(timeout); + if(options.auto && dir=="next" && !clicked){; + timeout = setTimeout(function(){ + animate("next",false); + },diff*options.speed+options.pause); + }; + + }; + + }; + // init + var timeout; + if(options.auto){; + timeout = setTimeout(function(){ + animate("next",false); + },options.pause); + }; + + if(options.numeric) setCurrent(0); + + if(!options.continuous && options.controlsFade){ + $("a","#"+options.prevId).hide(); + $("a","#"+options.firstId).hide(); + }; + + }); + + }; + +})(jQuery); + + + diff --git a/www/plugins/beespip/js/mColorPicker.min.js b/www/plugins/beespip/js/mColorPicker.min.js new file mode 100755 index 0000000..e9e052c --- /dev/null +++ b/www/plugins/beespip/js/mColorPicker.min.js @@ -0,0 +1,12 @@ +/* + mColorPicker + Version: 1.0 r38 + + Copyright (c) 2010 Meta100 LLC. + http://www.meta100.com/ + + Licensed under the MIT license + http://www.opensource.org/licenses/mit-license.php +*/ + +(function($){var b,e,g,j,i=$(document),h=$("
      "),n=$("
      "),o=$("
      "),p=$(""),q=/^rgb[a]?\((\d+),\s*(\d+),\s*(\d+)(,\s*(\d+\.\d+)*)?\)/,r=/([a-f0-9])([a-f0-9])([a-f0-9])/,s=/#[a-f0-9]{3}/,t=/#[a-f0-9]{6}/;$.fn.mColorPicker=function(a){var c=$.fn.mColorPicker.getCookie("swatches");b=$.extend($.fn.mColorPicker.defaults,a);$.fn.mColorPicker.defaults.swatches.concat(b.swatches).slice(-10);if(e.enhancedSwatches&&c)b.swatches=c.split("||").concat(b.swatches).slice(0,10)||b.swatches;$("div#mColorPicker").length||$.fn.mColorPicker.drawPicker();$("#css_disabled_color_picker").length||$("head").prepend('');$("meta[data-remove-me=true]").remove();this.each($.fn.mColorPicker.drawPickerTriggers);return this};$.fn.mColorPicker.init={replace:"[type=color]",index:0,enhancedSwatches:true,allowTransparency:true,slogan:"Meta100 - Designing Fun",showLogo:true};$.fn.mColorPicker.defaults={currentId:false,currentInput:false,currentColor:false,changeColor:false,color:false,imageFolder:"images/",swatches:"#ffffff,#ffff00,#00ff00,#00ffff,#0000ff,#ff00ff,#ff0000,#4c2b11,#3b3b3b,#000000".split(",")};$.fn.mColorPicker.start=function(){$('input[data-mcolorpicker!="true"]').filter(function(){return e.replace=="[type=color]"?this.getAttribute("type")=="color":$(this).is(e.replace)}).mColorPicker()};$.fn.mColorPicker.events=function(){$("#mColorPickerBg").live("click",$.fn.mColorPicker.closePicker);$(".mColorPicker").live("keyup",function(){try{$(this).css({"background-color":$(this).val()}).css({color:$.fn.mColorPicker.textColor($(this).css("background-color"))}).trigger("change")}catch(a){}});$(".mColorPickerTrigger").live("click",$.fn.mColorPicker.colorShow);$(".mColor, .mPastColor").live("mousemove",function(a){if(!b.changeColor)return false;var c=$(this),f=c.offset(),d=b.currentInput,d=d.attr("data-hex")||d.attr("hex");b.color=c.css("background-color");if(c.hasClass("mPastColor"))b.color=$.fn.mColorPicker.setColor(b.color,d);else if(c.hasClass("mColorTransparent"))b.color="transparent";else if(!c.hasClass("mPastColor"))b.color=$.fn.mColorPicker.whichColor(a.pageX-f.left,a.pageY-f.top,d);b.currentInput.mSetInputColor(b.color)}).live("click",$.fn.mColorPicker.colorPicked);$("#mColorPickerInput").live("keyup",function(a){try{b.color=$(this).val(),b.currentInput.mSetInputColor(b.color),a.which==13&&$.fn.mColorPicker.colorPicked()}catch(c){}}).live("blur",function(){b.currentInput.mSetInputColor(b.color)});$("#mColorPickerWrapper").live("mouseleave",function(){if(!b.changeColor)return false;b.currentInput.mSetInputColor(b.currentColor)})};$.fn.mColorPicker.drawPickerTriggers=function(){var a=$(this),c=a.attr("id")||"color_"+e.index++,f=a.attr("text")=="hidden"||a.attr("data-text")=="hidden"?true:false,d=$.fn.mColorPicker.setColor(a.val(),a.attr("data-hex")||a.attr("hex")),k=a.width(),g=a.height(),h=a.css("float"),l=$(""),m=$(""),i="";l.attr({id:"color_work_area","class":"mColorPickerInput"}).appendTo(j);m.attr({id:"mcp_"+c,"class":"mColorPickerTrigger"}).css({display:"inline-block",cursor:"pointer"}).insertAfter(a);$("").attr({src:b.imageFolder+"color.png"}).css({border:0,margin:"0 0 0 3px","vertical-align":"text-bottom"}).appendTo(m);l.append(a);i=l.html().replace(/type="color"/gi,'type="'+(f?"hidden":"text")+'"');l.html("").remove();a=$(i).attr("id",c).addClass("mColorPicker").val(d).insertBefore(m);f&&m.css({border:"1px solid black","float":h,width:k,height:g}).addClass(a.attr("class")).html(" ");a.mSetInputColor(d);return a};$.fn.mColorPicker.drawPicker=function(){var a=$("
      "),c=$(""),f=$("
      "),d=$("
      ");n.attr({id:"mColorPickerBg"}).css({display:"none",background:"black",opacity:0.01,position:"absolute",top:0,right:0,bottom:0,left:0}).appendTo(j);h.attr({id:"mColorPicker","data-mcolorpicker":true}).css({position:"absolute",border:"1px solid #ccc",color:"#fff",width:"194px",height:"184px","font-size":"12px","font-family":"times",display:"none"}).appendTo(j);o.attr({id:"mColorPickerTest"}).css({display:"none"}).appendTo(j);d.attr({id:"mColorPickerWrapper"}).css({position:"relative",border:"solid 1px gray"}).appendTo(h);$("
      ").attr({id:"mColorPickerImg","class":"mColor"}).css({height:"136px",width:"192px",border:0,cursor:"crosshair","background-image":"url("+b.imageFolder+"picker.png)"}).appendTo(d);a.attr({id:"mColorPickerSwatches"}).css({"border-right":"1px solid #000"}).appendTo(d);$("
      ").addClass("mClear").css({clear:"both"}).appendTo(a);for(g=9;g>-1;g--)$("
      ").attr({id:"cell"+g,"class":"mPastColor"+(g>0?" mNoLeftBorder":"")}).css({"background-color":b.swatches[g].toLowerCase(),height:"18px",width:"18px",border:"1px solid #000","float":"left"}).html(" ").prependTo(a);f.attr({id:"mColorPickerFooter"}).css({"background-image":"url("+b.imageFolder+"grid.gif)",position:"relative",height:"26px"}).appendTo(d);p.attr({id:"mColorPickerInput",type:"text"}).css({border:"solid 1px gray","font-size":"10pt",margin:"3px",width:"80px"}).appendTo(f);e.allowTransparency&&$("").attr({id:"mColorPickerTransparent","class":"mColor mColorTransparent"}).css({"font-size":"16px",color:"#000","padding-right":"30px","padding-top":"3px",cursor:"pointer",overflow:"hidden","float":"right"}).text("transparent").appendTo(f);e.showLogo&&c.attr({href:"http://meta100.com/",title:e.slogan,alt:e.slogan,target:"_blank"}).css({"float":"right"}).appendTo(f);$("").attr({src:b.imageFolder+"meta100.png",title:e.slogan,alt:e.slogan}).css({border:0,"border-left":"1px solid #aaa",right:0,position:"absolute"}).appendTo(c);$(".mNoLeftBorder").css({"border-left":0})};$.fn.mColorPicker.closePicker=function(){n.hide();h.fadeOut()};$.fn.mColorPicker.colorShow=function(){var a=$(this),c=a.attr("id").replace("mcp_",""),f=a.offset(),d=$("#"+c),k=f.top+a.outerHeight(),e=f.left;if(d.attr("disabled"))return false;b.currentColor=d.css("background-color");b.changeColor=true;b.currentInput=d;b.currentId=c;k+h.height()>i.height()&&(k=f.top-h.height());e+h.width()>i.width()&&(e=f.left-h.width()+a.outerWidth());h.css({top:k+"px",left:e+"px"}).fadeIn("fast");n.show();b.color=$("#"+c).attr("data-text")?a.css("background-color"):d.css("background-color");b.color=$.fn.mColorPicker.setColor(b.color,d.attr("data-hex")||d.attr("hex"));p.val(b.color)};$.fn.mColorPicker.setInputColor=function(a,c){$("#"+a).mSetInputColor(c)};$.fn.mSetInputColor=function(a){var c=$(this),f={"background-color":a,"background-image":a=="transparent"?"url('"+b.imageFolder+"grid.gif')":"",color:$.fn.mColorPicker.textColor(a)};(c.attr("data-text")||c.attr("text"))&&c.next().css(f);c.val(a).css(f).trigger("change");p.val(a)};$.fn.mColorPicker.textColor=function(a){a=$.fn.mColorPicker.RGBtoHex(a);return typeof a=="undefined"||a=="transparent"?"black":parseInt(a.substr(1,2),16)+parseInt(a.substr(3,2),16)+parseInt(a.substr(5,2),16)<400?"white":"black"};$.fn.mColorPicker.setCookie=function(a,c,b){a=a+"="+escape(c);c=new Date;c.setDate(c.getDate()+b);a+="; expires="+c.toGMTString();document.cookie=a};$.fn.mColorPicker.getCookie=function(a){return(a=document.cookie.match("(^|;) ?"+a+"=([^;]*)(;|$)"))?unescape(a[2]):null};$.fn.mColorPicker.colorPicked=function(){b.changeColor=false;$.fn.mColorPicker.closePicker();$.fn.mColorPicker.addToSwatch();b.currentInput.trigger("colorpicked")};$.fn.mColorPicker.addToSwatch=function(a){if(!e.enhancedSwatches)return false;var c=[];g=0;if(typeof a=="string")b.color=a.toLowerCase();b.color!="transparent"&&(c[0]=b.color.toLowerCase());$(".mPastColor").each(function(){var a=$(this);b.color=a.css("background-color").toLowerCase();if(b.color!=c[0]&&$.fn.mColorPicker.RGBtoHex(b.color)!=c[0]&&$.fn.mColorPicker.hexToRGB(b.color)!=c[0]&&c.length<10)c[c.length]=b.color;$(this).css("background-color",c[g++])});e.enhancedSwatches&&$.fn.mColorPicker.setCookie("swatches",c.join("||"),365)};$.fn.mColorPicker.whichColor=function(a,c,b){var d=[255,255,255];a<32?(d[1]=a*8,d[2]=0):a<64?(d[0]=256-(a-32)*8,d[2]=0):a<96?(d[0]=0,d[2]=(a-64)*8):a<128?(d[0]=0,d[1]=256-(a-96)*8):a<160?(d[0]=(a-128)*8,d[1]=0):(d[1]=0,d[2]=256-(a-160)*8);for(var e=0;e<3;e++)c<64?d[e]+=(256-d[e])*(64-c)/64:c<=128?d[e]-=d[e]*(c-64)/64:c>128&&(d[e]=256-a/192*256),d[e]=Math.round(Math.min(d[e],255)),b=="true"&&(d[e]=$.fn.mColorPicker.decToHex(d[e]));return b=="true"?"#"+d.join(""):"rgb("+d.join(", ")+")"};$.fn.mColorPicker.setColor=function(a,c){return c=="true"?$.fn.mColorPicker.RGBtoHex(a):$.fn.mColorPicker.hexToRGB(a)};$.fn.mColorPicker.colorTest=function(a){o.css("background-color",a);return o.css("background-color")};$.fn.mColorPicker.decToHex=function(a){a=parseInt(a);return String("0123456789ABCDEF".charAt(Math.floor(a/16)))+String("0123456789ABCDEF".charAt(a-Math.floor(a/16)*16))};$.fn.mColorPicker.RGBtoHex=function(a){var c="#",b,a=a?a.toLowerCase():false;if(!a)return"";if(t.test(a))return a.substr(0,7);if(s.test(a))return a.replace(r,"$1$1$2$2$3$3").substr(0,7);if(b=a.match(q)){for(a=1;a<4;a++)c+=$.fn.mColorPicker.decToHex(b[a]);return c}return $.fn.mColorPicker.colorTest(a)};$.fn.mColorPicker.hexToRGB=function(a){a=a?a.toLowerCase():false;if(!a)return"";if(q.test(a))return a;return s.test(a)?(t.test(a)||(a=a.replace(r,"$1$1$2$2$3$3")),"rgb("+parseInt(a.substr(1,2),16)+", "+parseInt(a.substr(3,2),16)+", "+parseInt(a.substr(5,2),16)+")"):$.fn.mColorPicker.colorTest(a)};e=$.fn.mColorPicker.init;i.ready(function(){j=$("body");$.fn.mColorPicker.events();e.replace&&($.fn.mColorPicker.start(),typeof $.fn.livequery=="function"?$(e.replace).livequery($.fn.mColorPicker.start):$(document).live("ajaxSuccess.mColorPicker",$.fn.mColorPicker.start))})})(jQuery); \ No newline at end of file diff --git a/www/plugins/beespip/js/superfish.js b/www/plugins/beespip/js/superfish.js new file mode 100755 index 0000000..c6a9c7d --- /dev/null +++ b/www/plugins/beespip/js/superfish.js @@ -0,0 +1,121 @@ + +/* + * Superfish v1.4.8 - jQuery menu widget + * Copyright (c) 2008 Joel Birch + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt + */ + +;(function($){ + $.fn.superfish = function(op){ + + var sf = $.fn.superfish, + c = sf.c, + $arrow = $([' »'].join('')), + over = function(){ + var $$ = $(this), menu = getMenu($$); + clearTimeout(menu.sfTimer); + $$.showSuperfishUl().siblings().hideSuperfishUl(); + }, + out = function(){ + var $$ = $(this), menu = getMenu($$), o = sf.op; + clearTimeout(menu.sfTimer); + menu.sfTimer=setTimeout(function(){ + o.retainPath=($.inArray($$[0],o.$path)>-1); + $$.hideSuperfishUl(); + if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);} + },o.delay); + }, + getMenu = function($menu){ + var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0]; + sf.op = sf.o[menu.serial]; + return menu; + }, + addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); }; + + return this.each(function() { + var s = this.serial = sf.o.length; + var o = $.extend({},sf.defaults,op); + o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){ + $(this).addClass([o.hoverClass,c.bcClass].join(' ')) + .filter('li:has(ul)').removeClass(o.pathClass); + }); + sf.o[s] = sf.op = o; + + $('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() { + if (o.autoArrows) addArrow( $('>a:first-child',this) ); + }) + .not('.'+c.bcClass) + .hideSuperfishUl(); + + var $a = $('a',this); + $a.each(function(i){ + var $li = $a.eq(i).parents('li'); + $a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);}); + }); + o.onInit.call(this); + + }).each(function() { + var menuClasses = [c.menuClass]; + if (sf.op.dropShadows && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass); + $(this).addClass(menuClasses.join(' ')); + }); + }; + + var sf = $.fn.superfish; + sf.o = []; + sf.op = {}; + sf.IE7fix = function(){ + var o = sf.op; + if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined) + this.toggleClass(sf.c.shadowClass+'-off'); + }; + sf.c = { + bcClass : 'sf-breadcrumb', + menuClass : 'sf-js-enabled', + anchorClass : 'sf-with-ul', + arrowClass : 'sf-sub-indicator', + shadowClass : 'sf-shadow' + }; + sf.defaults = { + hoverClass : 'sfHover', + pathClass : 'overideThisToUse', + pathLevels : 1, + delay : 800, + animation : {opacity:'show'}, + speed : 'normal', + autoArrows : true, + dropShadows : true, + disableHI : false, // true disables hoverIntent detection + onInit : function(){}, // callback functions + onBeforeShow: function(){}, + onShow : function(){}, + onHide : function(){} + }; + $.fn.extend({ + hideSuperfishUl : function(){ + var o = sf.op, + not = (o.retainPath===true) ? o.$path : ''; + o.retainPath = false; + var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass) + .find('>ul').hide().css('visibility','hidden'); + o.onHide.call($ul); + return this; + }, + showSuperfishUl : function(){ + var o = sf.op, + sh = sf.c.shadowClass+'-off', + $ul = this.addClass(o.hoverClass) + .find('>ul:hidden').css('visibility','visible'); + sf.IE7fix.call($ul); + o.onBeforeShow.call($ul); + $ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); }); + return this; + } + }); + +})(jQuery); diff --git a/www/plugins/beespip/lang/beespip_de.php b/www/plugins/beespip/lang/beespip_de.php new file mode 100755 index 0000000..abed917 --- /dev/null +++ b/www/plugins/beespip/lang/beespip_de.php @@ -0,0 +1,120 @@ + 'Dieser Teil hat eingeschränkten Zugang', +'accueil' => 'Startseite', +'actualites' => 'Aktuelles', +'afficher_breves' => 'Zeigen Sie Kurzmeldungen', +'afficher_sites' => 'Zeigen Sie Seiten', +'article_pdf' => 'Artikel im PDF-Format', +'article_min' => 'Artikel', +'articles_min' => 'Artikel', +'articles2' => '(mehrere) Artikel', +'aucun_article' => 'Kein Artikel', +'aucun_message' => 'Keine Mitteilung', + + +// C +'ce_lien_rss' => 'Mit diesem Link können Sie über eine Informationsleitung (rss-Leitung) Ihre Webseite und die dem Theme korrespondierenden Artikel bekanntmachen', +'commentaire' => 'Kommentar', +'commentaires' => 'Kommentare', +'consulter_detail_auteur' => 'Die Angaben zu diesem Autoren einsehen', +'consulter_detail_syndic' => 'Die Details dieser Seite einsehen', +'consulter_syndic' => 'Die Organisationsdateien einsehen', +'contributions_forums' => 'Diese Seite umfasst alle Beiträge zu den Foren über die Artikel und Meldungen der Webseite und verweist auf die letzten eingegangenen Mitteilungen. Die Titel der Artikel und Meldungen, auf die sich die Beiträge beziehen, ermöglichen es, zum Nachlesen die Seiten zu öffnen.', + + +// D +'meme_rubrique' => 'In der gleichen Rubrik', +'dernieres_publi' => 'Letzte Veröffentlichung am', +'derniers_messages' => 'Letzte Mitteilungen', + + +// E +'elle_contient' => 'Sie enthält', +'erreur' => 'Fehler', +'erreur404' => 'Die gewünschte Seite existiert nicht.', +'espace_prive' => 'Redaktionsbereich', +'evitement_contenu' => 'Zum Inhalt', +'evitement_navigation' => 'Zum Menü', +'evitement_recherche' => 'Zur Suche', + +// F +'fermer_fenetre' => 'Schließen Sie das Fenster', +'forums' => 'Foren', + + +// I +'il_y_a' => 'Dazu gibt es', +'index' => 'Index', + + +// L +'lactu_en_bref' => 'Aktualität in Kürze', +'lactu_web' => 'Aktualität im Internet', +'lactu_web_descriptif' => 'Diese Seite umfasst alle Links zu den kürzlich auf den von Ihnen abonnierten Webseiten unter der Verbindung ("fils rss") veröffentlichten Artikeln', +'les_derniers_articles' => 'Die letzten Artikel der Webseite:', +'les_auteurs' => 'Die Autoren', +'les_autres_articles' => 'Die anderen Artikel dieser Rubrik:', +'elements_similaires' => 'Elemente, die ähnliche Themen berühren:', +'lire_la_breve' => 'Die Kurzmeldung lesen', +'lire_l_article' => 'Den Artikel lesen', +'liste_sites_par' => 'Komplette Liste der Seiten von', +'login' => 'Login', + + +// M +'masquer_breves' => 'Die Kurzmeldungen verdecken', +'masquer_sites' => 'Die Seiten verdecken', +'messages_forums' => 'Mitteilungem in den Foren', +'messages_forum' => 'Mitteilung des Forums', +'mis_a_jour' => 'Auf den neuesten Stand gebracht', +'mot_clef' => 'Schlüsselwort', + + +// N +'newsletter' => 'Newsletter', + + +// O +'ordre_alphabetique' => 'Alphabetische Reihenfolge', +'ordre_alphabetique2' => 'Alphabetische Reihenfolge', + + +// P +'page_reservee' => 'Dieser Teil ist nur beschränkt zugänglich', +'portfolio' => 'Mappe', +'presentation_des' => 'Vorstellung der', +'publie_le' => 'Veröffentlicht am', + + +// R +'recherche' => 'Suche', +'recherche_mots' => 'Suche nach Schlüsselwörter', +'repondre_article' => 'Auf diesen Artikel antworten', +'repondre_breve' => 'Auf diese Meldung antworten', + + +// S +'se_connecter' => 'Verbinden', +'se_deconnecter' => 'Ausschalten', +'selection_des' => 'Auswahl von', +'sites_associes' => 'Mit dem Schlüsslwort verbundene Seiten:', +'sites_par' => 'Seiten nach:', +'sites_references' => 'Referenzseiten', +'squelette_beespip' => 'BeeSpip-Seitengestaltung', +'syndic' => 'Syndikation/Organisieren', + + +// V +'version' => 'Version', +'voir_article_syndic' => 'Den gesamten Artikel konsultieren' +); + + +?> diff --git a/www/plugins/beespip/lang/beespip_en.php b/www/plugins/beespip/lang/beespip_en.php new file mode 100755 index 0000000..7aba806 --- /dev/null +++ b/www/plugins/beespip/lang/beespip_en.php @@ -0,0 +1,119 @@ + 'This area is in restricted access', +'accueil' => 'Home', +'actualites' => 'News', +'afficher_breves' => 'Show news items', +'afficher_sites' => 'Show sites', +'article_pdf' => 'Article in PDF format', +'article_min' => 'article', +'articles_min' => 'articles', +'articles2' => 'Article(s)', +'aucun_article' => 'No article', +'aucun_message' => 'No message', + + +// C +'ce_lien_rss' => 'This link enables you to announce on your site, the articles relating to the topic corresponding, through information feed (rss feed)', +'commentaire' => 'comment', +'commentaires' => 'comments', +'consulter_detail_auteur' => 'Show the author details', +'consulter_detail_syndic' => 'Show the site details', +'consulter_syndic' => 'Show the syndication\'s files', +'contributions_forums' => 'This page gathers all the contributions to the forums of the articles and news items of the site and indicates the lastest posted messages. The titles of the articles and news items to which the contributions are referred to, are links to the contents pages.', + + +// D +'dernieres_publi' => 'Date of latest publication', +'derniers_messages' => 'Lastest messages', + + +// E +'elle_contient' => 'it contains', +'erreur' => 'Error', +'erreur404' => 'The requested page doesn\'t exists', +'espace_prive' => 'Editors area', +'evitement_contenu' => 'Skip to content', +'evitement_navigation' => 'Skip to menu', +'evitement_recherche' => 'Skip to search', + +// F +'fermer_fenetre' => 'Close the window', +'forums' => 'Forums', + + +// I +'il_y_a' => 'There is', +'index' => 'Index', + + +// L +'lactu_en_bref' => 'News in short', +'lactu_web' => 'What\'s new on the Web', +'lactu_web_descriptif' => 'This page gathers links towards articles published recently in information feed ("rss feed") resulting from sites to which the site that you consult is subscribed.', +'les_derniers_articles' => 'Latest articles :', +'les_auteurs' => 'The authors', +'les_autres_articles' => 'The others articles in the same section :', +'elements_similaires' => 'Elements treating of similar subjects :', +'lire_la_breve' => 'Read this news item', +'lire_l_article' => 'Read this article', +'liste_sites_par' => 'Complete site list presented by', +'login' => 'Login', + + +// M +'masquer_breves' => 'Hide news items', +'masquer_sites' => 'Hide sites', +'messages_forums' => 'Forum messages', +'messages_forum' => 'Forum messages', +'mis_a_jour' => 'Update', +'mot_clef' => 'Key word', + + +// N +'newsletter' => 'Newsletter', + + +// O +'ordre_alphabetique' => 'alphabetical order', +'ordre_alphabetique2' => 'Alphabetical order', + + +// P +'page_reservee' => 'This area is in restricted access', +'portfolio' => 'Portfolio', +'presentation_des' => 'presentation of', +'publie_le' => 'Published on', + + +// R +'recherche' => 'Search', +'recherche_mots' => 'Search by key words', +'repondre_article' => 'Reply to this article', +'repondre_breve' => 'Reply to this news item', + + +// S +'se_connecter' => 'Login', +'se_deconnecter' => 'Logout', +'selection_des' => 'Selection of', +'sites_associes' => 'sites associated to key word :', +'sites_par' => 'sites by :', +'sites_references' => 'referenced sites', +'squelette_beespip' => 'Template BeeSpip', +'syndic' => 'Syndication', + + +// V +'version' => 'v.', +'voir_article_syndic' => 'Read the complete article' +); + + +?> diff --git a/www/plugins/beespip/lang/beespip_fr.php b/www/plugins/beespip/lang/beespip_fr.php new file mode 100755 index 0000000..7294ab7 --- /dev/null +++ b/www/plugins/beespip/lang/beespip_fr.php @@ -0,0 +1,232 @@ + 'Cette partie est en accès restreint', +'accueil' => 'Accueil', +'actualites' => 'Actualités', +'afficher_breves' => 'Afficher les brèves', +'afficher_sites' => 'Afficher les sites', +'annuaire' => 'Annuaire', +'annuaire_adresse' => 'Adresse', +'annuaire_adresse1' => 'Adresse ligne 1', +'annuaire_adresse2' => 'Adresse ligne 2', +'annuaire_affectations' => 'Affectations', +'annuaire_aucune' => 'Aucune', +'annuaire_details' => 'Détails', +'annuaire_categorie' => 'Catégorie', +'annuaire_categories' => 'Catégories', +'annuaire_civilite' => 'Civilité', +'annuaire_commentaire' => 'Commentaires', +'annuaire_cp' => 'Code postal', +'annuaire_creer_categorie' => 'Créer une catégorie', +'annuaire_creer_individu' => 'Créer un individu', +'annuaire_creer_organisation' => 'Créer une organisation', +'annuaire_date_debut' => 'Date de début', +'annuaire_date_fin' => 'Date de fin', +'annuaire_dependant_de' => 'Dépendant de', +'annuaire_fax' => 'Fax', +'annuaire_fonction' => 'Fonction', +'annuaire_individu' => 'Individu', +'annuaire_individus' => 'Individus', +'annuaire_mail' => 'Courriel', +'annuaire_nb_entrees' => 'Nombre d\'entrées', +'annuaire_nom' => 'Nom', +'annuaire_organisation' => 'Organisation', +'annuaire_organisations' => 'Organisations', +'annuaire_portable' => 'Portable', +'annuaire_prenom' => 'Prénom', +'annuaire_sigle' => 'Sigle', +'annuaire_tel' => 'Téléphone', +'annuaire_tel_dom' => 'Téléphone dom.', +'annuaire_tel_pro' => 'Téléphone pro.', +'annuaire_tout' => 'Tout', +'annuaire_txt_explication_categorie_racine' => 'Cette catégorie contient des sous catégories. Elle ne peut donc pas devenir sous-catégorie.', +'annuaire_url' => 'Adresse internet', +'annuaire_ville' => 'Ville', +'article_pdf' => 'Article au format PDF', +'article_min' => 'article', +'articles_min' => 'articles', +'articles2' => 'Article(s)', +'aucun_article' => 'Aucun article', +'aucun_message' => 'Aucun message', + + +// B +'beespip_affichage_des_menus' => 'Affichage des menus', +'beespip_affichage_portfolio_menug' => 'Au dessous du menu gauche', +'beespip_affichage_portfolio_services' => 'A la place du cartouche Services
      (Si celui-ci est n\'est pas affiché)', +'beespip_articles_pdf' => 'Convertir les articles au format "Acrobat PDF"', +'beespip_auteurs_articles' => 'Afficher les auteurs des articles', +'beespip_calendrier_public' => 'Utiliser le calendrier public', +'beespip_cartouche_services' => 'Cartouche services.', +'beespip_cartouche_services_descr' => 'Afficher le cartouche "Services" dans l\'entête.', +'beespip_chemin_acces_logo' => 'Chemin d\'accès au logo', +'beespip_choix_page_accueil' => 'Choix de la page d\'accueil du site', +'beespip_config' => 'Configuration', +'beespip_couleur' => 'Gestion des couleurs', +'beespip_dates' =>'Date de publication/modification', +'beespip_dates_articles' => 'Afficher les dates de publication et modification des articles', +'beespip_dates_breves' => 'Afficher les dates de publication et modification des brèves', +'beespip_derniere_date_publication' => 'Afficher la date de dernière publication.', +'beespip_derniere_date_publication_descr' => 'Afficher en pied de page la date de dernière publication sur le site', +'beespip_emplacement_date' => 'Emplacement de la date', +'beespip_emplacement_date_menug' => 'Au dessus du menu gauche', +'beespip_emplacement_date_entete' => 'Au dessus du cartouche Services
      (Si celui-ci est affiché)', +'beespip_emplacement_recherche' => 'Emplacement de la recherche', +'beespip_emplacement_recherche_bas' => 'Au dessous du menu gauche', +'beespip_emplacement_recherche_haut' => 'Au dessus du menu gauche', +'beespip_espace_discussion' => 'Utiliser l\'espace de discussion de type phpBB', +'beespip_fils_rss' => 'Fils RSS thématiques', +'beespip_fils_rss_descr' => 'Afficher les liens vers les fils RSS générés à partir des mots clés sur la page "Recherche par mots-clés" et un lien en pied de page permettant l\'accès.
      Pour pouvoir utiliser la syndication sélective, vous devez avoir un dossier "backend" à la racine de votre site (au même niveau que "ecrire" ou "IMG") et autoriser l\'accès en écriture de ce dossier.', +'beespip_fond_entete' => 'Valeur par défaut : "pixel_couleur1.gif"
      Vous pouvez modifier cette valeur en la remplacant par une image qui sera affichée en fond et sur toute la largeur de la page. L\'image doit se trouver dans le dossier "themes/nom_du_theme/images-interface" du plugin beespip.', +'beespip_gestion_entete' => 'Gestion de l\'entête du site.', +'beespip_gestion_menu' => 'Gestion des menus', +'beespip_hauteur_largeur_logo' => 'Hauteur et largeur du logo en pixels', +'beespip_hauteur_largeur_logo_descr' => 'Hauteur maximum de 135px à ne pas dépasser pour respecter la mise en page du site, et largeur maximum de 600px pour rester compatible 800x600.', +'beespip_hauteur_logo' => 'Hauteur ', +'beespip_image_fond' => 'Image de fond.', +'beespip_index_mots_cles' => 'Afficher le lien vers la page "Recherche par mots-clés"', +'beespip_index_mots_cles_descr' => 'Cette page affiche les différents groupes et mots clés définis sauf ceux précédés par le sigle ~', +'beespip_intranet' => 'Intranet', +'beespip_intranet_descr' => 'Permet de restreindre l\'accès au site aux seuls auteurs référencés.', +'beespip_largeur_logo' => 'Largeur ', +'beespip_liens_des_menus' => 'Liens dans le bloc sous le menu gauche', +'beespip_liens_des_menus_descr' => 'Pour modifier les intitulés, il faut éditer le fichier de langue se trouvant dans le dossier "plugins/beespip/lang".
      Par exemple le fichier français se nomme "beespipmenu_fr.php".', +'beespip_lien_actu_web' => 'Afficher le lien vers la page "L\'actualité sur le web"', +'beespip_lien_agenda' => 'Afficher le lien vers la page "Agenda"', +'beespip_lien_affichebloc' => 'Afficher le cartouche des liens vers les pages supplémentaires', +'beespip_lien_annuaire' => 'Afficher le lien vers l\'annuaire', +'beespip_lien_espace_redacteur' => 'Afficher le lien vers l\'"Espace rédacteur"', +'beespip_lien_plan' => 'Afficher le lien vers la page "Plan du site"', +'beespip_lien_newsletter' => 'Afficher le lien vers la page d\'inscription aux newsletters', +'beespip_lien_portfolio' => 'Afficher le lien vers la page regroupant les portfolios', +'beespip_lien_reactions' => 'Afficher le lien vers la page "Réactions aux articles"', +'beespip_lien_usagers' => 'Afficher le lien vers la page "Usagers et auteurs"', +'beespip_logo' => 'Si vous affichez une image en fond sur toute la largeur c.f. ci-dessus, utilisez pour le logo la valeur : "transp.gif".', +'beespip_menu_articles' => 'Afficher les articles dans chaque rubrique du menu de gauche', +'beespip_menu_horizontal' => 'Afficher le menu horizontal', +'beespip_menu_liens_deplier_replier' => 'Afficher des liens "Tout deplier" "Tout replier"', +'beespip_menu_vertical' => 'Afficher le menu vertical', +'beespip_motscles_plugin' => 'Mots clés du plugin', +'beespip_non' => 'Non', +'beespip_options_affichage' => 'Options d\'affichage', +'beespip_oui' => 'Oui', +'beespip_reglages' => 'Réglages', +'beespip_site_ombre' => 'Site ombré.', +'beespip_site_ombre_descr' => 'Afficher le site centré entouré d\'une ombre portée', +'beespip_themes' => 'Choix du schéma de couleur du site', +'beespip_themes_alternates' => 'Alternates', +'beespip_themes_classiques' => 'Classiques', +'beespip_themes_inspiration' => 'Inspirations', +'beespip_themes_perso' => 'Personnalisations', +'beespip_themes_variantes' => 'Variantes', +'beespip_vignette_portfolio' => 'Affichage d\'une vignette issue du portfolio', +'beespip_vignette_portfolio_descr' => 'Afficher aléatoirement une image du dernier article ayant le mot clé "portfolio_vignette".', + + +// C +'ce_lien_rss' => 'Ce lien vous permet d\'annoncer sur votre site, les articles relatifs au thème correspondant, via un fil d\'information (fil rss)', +'commentaire' => 'commentaire', +'commentaires' => 'commentaires', +'consulter_detail_auteur' => 'Consulter la fiche de cet auteur', +'consulter_detail_syndic' => 'Consulter les détails de ce site', +'consulter_syndic' => 'Consulter les fichiers de syndication', +'contributions_forums' => 'Cette page regroupe toutes les contributions aux forums des articles et brèves du site et indique les derniers messages postés. Les titres des articles et brèves auxquels se rapportent les contributions permettent d\'en afficher les pages pour en relire le contenu.', + + +// D +'dernieres_publi' => 'Dernière publication le', +'derniers_messages' => 'Derniers messages', + + +// E +'elle_contient' => 'Elle contient', +'erreur' => 'Erreur', +'erreur404' => 'La page demandée n\'existe pas.', +'espace_prive' => 'Espace rédacteurs', +'evitement_contenu' => 'Aller au contenu', +'evitement_navigation' => 'Aller au menu', +'evitement_recherche' => 'Aller à la recherche', + +// F +'fermer_fenetre' => 'Fermer la fenêtre', +'forums' => 'Forums', + + +// I +'il_y_a' => 'Il y a', +'index' => 'Index', + + +// L +'lactu_en_bref' => 'L\'actualité en bref', +'lactu_web' => 'L\'actualité sur le web', +'lactu_web_descriptif' => 'Cette page regroupe des liens vers des articles publiés récemment dans des fils d\'informations ("fils rss") issus de sites auxquels le site que vous consultez s\'est abonné.', +'les_derniers_articles' => 'Les derniers articles du site :', +'les_auteurs' => 'Les auteurs', +'les_autres_articles' => 'Les autres articles de cette rubrique :', +'elements_similaires' => 'Les éléments traitant de sujets similaires :', +'lire_la_breve' => 'Lire la brève', +'lire_l_article' => 'Lire l\'article', +'liste_sites_par' => 'Liste complète des sites présentée par', +'liste_afficher_triant_par' => 'Afficher la liste en sélectionnant et en triant les sites par :', +'login' => 'Login', + + +// M +'masquer_breves' => 'Masquer les brèves', +'masquer_sites' => 'Masquer les sites', +'messages_forums' => 'messages dans les forums', +'messages_forum' => 'Messages du forum', +'mis_a_jour' => 'Mis à jour le', +'mot_clef' => 'Mot-clé', + + +// N +'newsletter' => 'Newsletter', + + +// O +'ordre_alphabetique' => 'ordre alphabétique', +'ordre_alphabetique2' => 'Ordre alphabétique', + + +// P +'page_reservee' => 'Cette partie est en accès restreint', +'portfolio' => 'Portfolio', +'presentation_des' => 'Présentation des', +'publie_le' => 'Publié le', + + +// R +'recherche' => 'Recherche', +'recherche_mots' => 'Recherche par mots-clés', +'repondre_article' => 'Réagir à cet article', +'repondre_breve' => 'Réagir à cette brève', +'repondre_message' => 'Répondre à ce message', + + +// S +'se_connecter' => 'Se connecter', +'se_deconnecter' => 'Se déconnecter', +'selection_des' => 'Sélection des', +'sites_associes' => 'sites associés au mot clé :', +'sites_par' => 'sites par :', +'sites_references' => 'sites référencés', +'squelette_beespip' => 'Squelette BeeSpip', +'supprimer' => 'Supprimer', +'syndic' => 'Syndication', + + +// V +'version' => 'v.', +'voir_article_syndic' => 'Consulter l\'article intégral', +); + + +?> diff --git a/www/plugins/beespip/lang/beespip_it.php b/www/plugins/beespip/lang/beespip_it.php new file mode 100755 index 0000000..d98f3d2 --- /dev/null +++ b/www/plugins/beespip/lang/beespip_it.php @@ -0,0 +1 @@ + 'Questa parte è in accesso ristretto', 'accueil' => 'Homepage', 'actualites' => 'Notizie;', 'afficher_breves' => 'Visualizzare il notiziario', 'afficher_sites' => 'Visualizzare i siti', 'article_pdf' => 'Articolo in formato PDF', 'article_min' => 'articolo', 'articles_min' => 'articoli', 'articles2' => 'Articolo(i)', 'aucun_article' => 'Nessun articolo', 'aucun_message' => 'Nessun messaggio', // C 'ce_lien_rss' => 'Questo link le permette di annunciare sul suo sito, le notizie relative al tema corrispondente via informazioni in continuo (feed rss)', 'commentaire' => 'commento', 'commentaires' => 'commenti', 'consulter_detail_auteur' => 'Consultare la scheda di quest\'autore', 'consulter_detail_syndic' => 'Consultare i dettagli di questo sito', 'consulter_syndic' => 'Consultare i files di syndication', 'contributions_forums' => 'Questa pagine raggruppa tutte le contribuzioni ai forum degli articoli e notiziari del sito e indicare gli ultimi messaggi inviati. I titoli degli articoli e notiziari ai quali si rimandano le contribuzioni permettono di visualizzarne le pagine per rilegerne il contenuto', // D 'dernieres_publi' => 'Ultime pubblicazioni il', 'derniers_messages' => 'Ultimi messaggi', // E 'elle_contient' => 'Contiene', 'erreur' => 'Errore', 'erreur404' => 'La pagina chiesta non esiste.', 'espace_prive' => 'Spazi redattori', 'evitement_contenu' => 'Vai ai messaggi', 'evitement_navigation' => 'Vai al menu', 'evitement_recherche' => 'Vai a ricerca', // F 'fermer_fenetre' => 'Chiudere la finestra', 'forums' => 'Forum', // I 'il_y_a' => 'C\'è', 'index' => 'Indice', // L 'lactu_en_bref' => 'Le notizie in breve', 'lactu_web' => 'Le notizie sul web', 'lactu_web_descriptif' => 'Questa pagina raggruppa degli links che portano a degli articoli pubblicati recentement nei feed rss tratti da siti ai quali il sito che consulta si è abbonato.', 'les_derniers_articles' => 'Gli ultimi articoli del sito :', 'les_auteurs' => 'Gli autori', 'les_autres_articles' => 'Gli altri articoli di questa rubrica :', 'elements_similaires' => 'Gli elementi che portano su soggetti simili :', 'lire_la_breve' => 'Legere il notiziario', 'lire_l_article' => 'Leggere l\'articolo', 'liste_sites_par' => 'Elenco completo dei siti presentati da', 'login' => 'Login', // M 'masquer_breves' => 'Nascondere il notiziario', 'masquer_sites' => 'Nascondere i siti', 'messages_forums' => 'messaggi nei forum', 'messages_forum' => 'Messaggi del forum', 'mis_a_jour' => 'Aggiornato il', 'mot_clef' => 'Parola chiave', // N 'newsletter' => 'Newsletter', // O 'ordre_alphabetique' => 'ordine alfabetico', 'ordre_alphabetique2' => 'Ordine alfabetico', // P 'page_reservee' => 'Questa parte è in acesso ristretto', 'portfolio' => 'Portfolio', 'presentation_des' => 'Presentazione di', 'publie_le' => 'Pubblicato il', // R 'recherche' => 'Ricerca', 'recherche_mots' => 'Ricerca con parole chiave', 'repondre_article' => 'Reagire a quest\'articolo', 'repondre_breve' => 'Reagire a questa notizia', // S 'se_connecter' => 'Entrare', 'se_deconnecter' => 'Uscire', 'selection_des' => 'Selezione di', 'sites_associes' => 'siti associati a parole chiave :', 'sites_par' => 'siti da :', 'sites_references' => 'siti acclusi', 'squelette_beespip' => 'Squelettro BeeSpip', 'syndic' => 'Syndication', // V 'version' => 'v.', 'voir_article_syndic' => 'Consultare l\'articolo integrale', ); ?> \ No newline at end of file diff --git a/www/plugins/beespip/lang/paquet-beespip_fr.php b/www/plugins/beespip/lang/paquet-beespip_fr.php new file mode 100755 index 0000000..cad7c03 --- /dev/null +++ b/www/plugins/beespip/lang/paquet-beespip_fr.php @@ -0,0 +1,21 @@ + 'Ce plugin active ou désactive le squelette BeeSpip. Fonctionne avec Spip 3 et Spip 2.1. +_ Ce plugin nécessite l\'activation du plugin Zpip version 1.7.10 ou plus. +_ Les plugins suivants sont gérés par les squelettes +- Accès restreint 3.6.0 +- Agenda 3.6.0 +- Article PDF 0.4.5 +- Crayons 1.13.8 +- Compositions 3.1.0 +- Menus 0.9.2.', + 'beespip_nom' => 'Squelette Beespip', + 'beespip_slogan' => 'Ce plugin active ou désactive le squelette BeeSpip. Fonctionne avec Spip 3 et Spip 2.1' +); +?> diff --git a/www/plugins/beespip/modeles/image.html b/www/plugins/beespip/modeles/image.html new file mode 100755 index 0000000..992e0fe --- /dev/null +++ b/www/plugins/beespip/modeles/image.html @@ -0,0 +1,47 @@ +[ + +(#REM) Cas : equivalent a pour une image en mode image + +][(#INCLUS|=={image}|et{#ENV{emb,''}|non}|oui) +[ +
      ][(#TITRE|attribut_html)][(#ENV{lien}|?{})] +][ + +(#REM) Cas : on est appele ici avec emb=' ' : on veut la legende +equivalent a un pour une image en mode image + +][(#INCLUS|=={image}|et{#ENV{emb,''}|oui}|oui) +#SET{fichier,#URL_DOCUMENT} +#SET{width,#LARGEUR} +#SET{height,#HAUTEUR} +#SET{url,#ENV{lien}} +
      +
      []#TYPE_DOCUMENT - [(#TAILLE|taille_en_octets|texte_backend)][(#GET{url}|?{})]
      [ +
      (#TITRE)
      ][ +
      (#DESCRIPTIF|PtoBR)[(#NOTES|PtoBR)]
      ] +
      +][ + +(#REM) Cas des images qu'il faut embed (svg) +][ +(#INCLUS|=={embed}|oui) +
      + + + [(#ID_DOCUMENT|appliquer_filtre{#MIME_TYPE})] +[ +
      (#TITRE)
      +][ +
      (#DESCRIPTIF|PtoBR)[(#NOTES|PtoBR)]
      +]
      ] + diff --git a/www/plugins/beespip/modeles/img.html b/www/plugins/beespip/modeles/img.html new file mode 100755 index 0000000..fd770d7 --- /dev/null +++ b/www/plugins/beespip/modeles/img.html @@ -0,0 +1,34 @@ + +[(#REM) + + Modele pour + + Si on est en mode "image" ou "vignette", ou appele avec embed=oui, + on affiche l'image complete ; sinon le logo + + Si un lien est passe #ENV{lien} on ajoute le a href + ou on truque le #URL_DOCUMENT + +] +[(#SET{ + image, + #MODE|match{'image|vignette'} + |sinon{#ENV{embed}} + |?{' '} +})][ + + (#REM) image complete ? + +][(#GET{image}|oui) + +[][(#TITRE|texte_backend)][(#ENV{lien}|?{})] +][ + + (#REM) sinon logo document + lien + alt + title etc + +][(#GET{image}|non) + [(#SET{fichier,[(#LOGO_DOCUMENT|extraire_attribut{src})]})] + [(#SET{width,[(#LOGO_DOCUMENT|extraire_attribut{width})]})] + [(#SET{height,[(#LOGO_DOCUMENT|extraire_attribut{height})]})] +[(#TITRE|strlen|?{#TITRE {#TYPE_DOCUMENT},#TYPE_DOCUMENT}|attribut_html)] +] diff --git a/www/plugins/beespip/modeles/lessites.html b/www/plugins/beespip/modeles/lessites.html new file mode 100755 index 0000000..2a5eb5e --- /dev/null +++ b/www/plugins/beespip/modeles/lessites.html @@ -0,0 +1,11 @@ +[(#REM) Modele permettant l'affichage des sites avec syndication] + + + +

      #NOM_SITE

      + [
      (#DESCRIPTIF)
      ] +
      + +
       
      +
      + diff --git a/www/plugins/beespip/paquet.xml b/www/plugins/beespip/paquet.xml new file mode 100755 index 0000000..83575f7 --- /dev/null +++ b/www/plugins/beespip/paquet.xml @@ -0,0 +1,32 @@ + + + Squelette Beespip + + + Christophe Gindro - Contingences + + 2004-2012 + + GPL + + + + + + + + + + + + + diff --git a/www/plugins/beespip/plugin.xml b/www/plugins/beespip/plugin.xml new file mode 100755 index 0000000..1980e0d --- /dev/null +++ b/www/plugins/beespip/plugin.xml @@ -0,0 +1,64 @@ + + Squelette Beespip + Christophe Gindro - Contingences - Distribué sous licence GNU/GPL + GNU/GLP + 3.1.0 + stable + prive/themes/spip/images/beespip-32.png + + Ce plugin active ou désactive le squelette BeeSpip. Fonctionne avec Spip 3 et Spip 2.1. +_ {{Ce plugin nécessite l'activation du plugin Zpip version 1.7 ou plus et du plugin CFG version 1.16.0 ou plus}} +_ Les plugins suivants sont gérés par les squelettes +- Accès restreint 3.3 +- Agenda 2.3.0 +- Article PDF 0.4.5 +- Crayons 1.13.1 +- Compositions 2.1.6 +- Menus 0.9 + + beespip_options.php + beespip + 0.50 + beespip_administrations.php + + + header_prive + header_prive + beespip_headline.php + + + prive/themes/spip/images/images/beespip_config-24.png + Configurer BeeSpip + cfg + cfg=beespip_config + + + + + + + + + + + + + + diff --git a/www/plugins/beespip/prive/squelettes/contenu/configurer_beespip.html b/www/plugins/beespip/prive/squelettes/contenu/configurer_beespip.html new file mode 100755 index 0000000..abb9e21 --- /dev/null +++ b/www/plugins/beespip/prive/squelettes/contenu/configurer_beespip.html @@ -0,0 +1,7 @@ +

      Configurer Beespip

      +
      + [(#ENV{mode}|=={options_affichage}|oui)#FORMULAIRE_CONFIGURER_BEESPIP_OPTIONS_AFFICHAGE] + [(#ENV{mode}|=={couleur}|oui)#FORMULAIRE_CONFIGURER_BEESPIP_COULEUR] + [(#ENV{mode}|=={''}|oui)#FORMULAIRE_CONFIGURER_BEESPIP] +
      + diff --git a/www/plugins/beespip/prive/squelettes/navigation/configurer_beespip.html b/www/plugins/beespip/prive/squelettes/navigation/configurer_beespip.html new file mode 100755 index 0000000..fae4cfb --- /dev/null +++ b/www/plugins/beespip/prive/squelettes/navigation/configurer_beespip.html @@ -0,0 +1,11 @@ +#BOITE_OUVRIR{'','raccourcis'} +

      Configuration du plugin Beespip.

      +<:beespip:version:>[(#VAL{beespip}|beespip_info_version)] + +#BOITE_FERMER + +#BOITE_OUVRIR{'','raccourcis'} + +#BOITE_FERMER diff --git a/www/plugins/beespip/prive/themes/spip/images/beespip-16.png b/www/plugins/beespip/prive/themes/spip/images/beespip-16.png new file mode 100755 index 0000000..05408f9 Binary files /dev/null and b/www/plugins/beespip/prive/themes/spip/images/beespip-16.png differ diff --git a/www/plugins/beespip/prive/themes/spip/images/beespip-24.png b/www/plugins/beespip/prive/themes/spip/images/beespip-24.png new file mode 100755 index 0000000..5d58f02 Binary files /dev/null and b/www/plugins/beespip/prive/themes/spip/images/beespip-24.png differ diff --git a/www/plugins/beespip/prive/themes/spip/images/beespip-32.png b/www/plugins/beespip/prive/themes/spip/images/beespip-32.png new file mode 100755 index 0000000..33c7b55 Binary files /dev/null and b/www/plugins/beespip/prive/themes/spip/images/beespip-32.png differ diff --git a/www/plugins/beespip/prive/themes/spip/images/beespip-64.png b/www/plugins/beespip/prive/themes/spip/images/beespip-64.png new file mode 100755 index 0000000..727c0d6 Binary files /dev/null and b/www/plugins/beespip/prive/themes/spip/images/beespip-64.png differ diff --git a/www/plugins/beespip/prive/themes/spip/images/beespip_config-16.png b/www/plugins/beespip/prive/themes/spip/images/beespip_config-16.png new file mode 100755 index 0000000..6e5975d Binary files /dev/null and b/www/plugins/beespip/prive/themes/spip/images/beespip_config-16.png differ diff --git a/www/plugins/beespip/prive/themes/spip/images/beespip_config-24.png b/www/plugins/beespip/prive/themes/spip/images/beespip_config-24.png new file mode 100755 index 0000000..67a26b3 Binary files /dev/null and b/www/plugins/beespip/prive/themes/spip/images/beespip_config-24.png differ diff --git a/www/plugins/beespip/prive/themes/spip/images/beespip_config-32.png b/www/plugins/beespip/prive/themes/spip/images/beespip_config-32.png new file mode 100755 index 0000000..054088d Binary files /dev/null and b/www/plugins/beespip/prive/themes/spip/images/beespip_config-32.png differ diff --git a/www/plugins/beespip/prive/themes/spip/images/beespip_config-64.png b/www/plugins/beespip/prive/themes/spip/images/beespip_config-64.png new file mode 100755 index 0000000..67fa6d0 Binary files /dev/null and b/www/plugins/beespip/prive/themes/spip/images/beespip_config-64.png differ diff --git a/www/plugins/beespip/prive/themes/spip/images/color.png b/www/plugins/beespip/prive/themes/spip/images/color.png new file mode 100755 index 0000000..809fb00 Binary files /dev/null and b/www/plugins/beespip/prive/themes/spip/images/color.png differ diff --git a/www/plugins/beespip/prive/themes/spip/images/couleur.png b/www/plugins/beespip/prive/themes/spip/images/couleur.png new file mode 100755 index 0000000..2784c56 Binary files /dev/null and b/www/plugins/beespip/prive/themes/spip/images/couleur.png differ diff --git a/www/plugins/beespip/prive/themes/spip/images/entete.png b/www/plugins/beespip/prive/themes/spip/images/entete.png new file mode 100755 index 0000000..4815f62 Binary files /dev/null and b/www/plugins/beespip/prive/themes/spip/images/entete.png differ diff --git a/www/plugins/beespip/prive/themes/spip/images/grid.gif b/www/plugins/beespip/prive/themes/spip/images/grid.gif new file mode 100755 index 0000000..78b54c0 Binary files /dev/null and b/www/plugins/beespip/prive/themes/spip/images/grid.gif differ diff --git a/www/plugins/beespip/prive/themes/spip/images/meta100.png b/www/plugins/beespip/prive/themes/spip/images/meta100.png new file mode 100755 index 0000000..72bea40 Binary files /dev/null and b/www/plugins/beespip/prive/themes/spip/images/meta100.png differ diff --git a/www/plugins/beespip/prive/themes/spip/images/options.png b/www/plugins/beespip/prive/themes/spip/images/options.png new file mode 100755 index 0000000..62af41a Binary files /dev/null and b/www/plugins/beespip/prive/themes/spip/images/options.png differ diff --git a/www/plugins/beespip/prive/themes/spip/images/page_accueil.png b/www/plugins/beespip/prive/themes/spip/images/page_accueil.png new file mode 100755 index 0000000..973b409 Binary files /dev/null and b/www/plugins/beespip/prive/themes/spip/images/page_accueil.png differ diff --git a/www/plugins/beespip/prive/themes/spip/images/picker.png b/www/plugins/beespip/prive/themes/spip/images/picker.png new file mode 100755 index 0000000..de0127b Binary files /dev/null and b/www/plugins/beespip/prive/themes/spip/images/picker.png differ diff --git a/www/plugins/beespip/structure.html b/www/plugins/beespip/structure.html new file mode 100755 index 0000000..82352d9 --- /dev/null +++ b/www/plugins/beespip/structure.html @@ -0,0 +1,20 @@ +#SET{intranet,non}#SET{intranet,oui}[ + + + + + + +[(#SESSION{id_auteur}|oui|ou{#GET{intranet}|=={'non'}|oui})] +[(#SESSION{id_auteur}|non|et{#GET{intranet}|=={'oui'}|oui}) + [(#ENV{composition}|=={'spip_pass'}|oui)] + [(#ENV{composition}|=={'spip_pass'}|non)[(#INCLURE{fond=body,env}{type=page}{composition=login}{url=#SELF}{acces=reserve})]] +] + +#SPIP_CRON + + +(#EVAL{#VAL{var_zajax}|_request}|non)][ + +(#EVAL{#VAL{var_zajax}|_request}|oui)] + diff --git a/www/plugins/calendrier_mini-2.0/balise/calendrier_mini.php b/www/plugins/calendrier_mini-2.0/balise/calendrier_mini.php new file mode 100644 index 0000000..36fff63 --- /dev/null +++ b/www/plugins/calendrier_mini-2.0/balise/calendrier_mini.php @@ -0,0 +1,102 @@ + $date?$date:date('Y-m'), + 'var_date' => $var_date, + 'self' => $url?$url:self(), + ); + + // si pas de url_json explicite, la renseigner et peupler automatiquement les + if (is_null($url_json)){ + $url_json = generer_url_public("calendrier_mini.json"); + if (!is_null($id_rubrique)) + $args['id_rubrique'] = $id_rubrique; + if (!is_null($id_article)) + $args['id_article'] = $id_article; + if (!is_null($id_mot)) + $args['id_mot'] = $id_mot; + } + + if (defined('_VAR_MODE') and _VAR_MODE == "recalcul") + $url_json = parametre_url($url_json,'var_mode','recalcul'); + + $args['urljson'] = $url_json; + + /* tenir compte de la langue, c'est pas de la tarte */ + return array('formulaires/calendrier_mini', 3600, $args); +} + +?> diff --git a/www/plugins/calendrier_mini-2.0/calendrier_mini.json.html b/www/plugins/calendrier_mini-2.0/calendrier_mini.json.html new file mode 100644 index 0000000..f41a5f7 --- /dev/null +++ b/www/plugins/calendrier_mini-2.0/calendrier_mini.json.html @@ -0,0 +1,6 @@ +#HTTP_HEADER{Content-type:text/javascript;} +[ +[(#ARRAY{id,#ID_ARTICLE,title,[(#TITRE|html2unicode|unicode2charset|textebrut)],allDay,#EVAL{false},start,#DATE,end,#DATE,url,#URL_ARTICLE,className,calendrier-couleur6,description,[(#INTRODUCTION|html2unicode|unicode2charset)]}|json_encode)]] \ No newline at end of file diff --git a/www/plugins/calendrier_mini-2.0/calendrier_mini.json_fonctions.php b/www/plugins/calendrier_mini-2.0/calendrier_mini.json_fonctions.php new file mode 100644 index 0000000..de9fe80 --- /dev/null +++ b/www/plugins/calendrier_mini-2.0/calendrier_mini.json_fonctions.php @@ -0,0 +1,19 @@ + diff --git a/www/plugins/calendrier_mini-2.0/calendriermini_fonctions.php b/www/plugins/calendrier_mini-2.0/calendriermini_fonctions.php new file mode 100644 index 0000000..1cff092 --- /dev/null +++ b/www/plugins/calendrier_mini-2.0/calendriermini_fonctions.php @@ -0,0 +1,57 @@ +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); +} +?> diff --git a/www/plugins/calendrier_mini-2.0/css/img/month_next.png b/www/plugins/calendrier_mini-2.0/css/img/month_next.png new file mode 100644 index 0000000..75a8d7a Binary files /dev/null and b/www/plugins/calendrier_mini-2.0/css/img/month_next.png differ diff --git a/www/plugins/calendrier_mini-2.0/css/img/month_prev.png b/www/plugins/calendrier_mini-2.0/css/img/month_prev.png new file mode 100644 index 0000000..4ee1fb4 Binary files /dev/null and b/www/plugins/calendrier_mini-2.0/css/img/month_prev.png differ diff --git a/www/plugins/calendrier_mini-2.0/css/img/month_prev_next-32x16.png b/www/plugins/calendrier_mini-2.0/css/img/month_prev_next-32x16.png new file mode 100644 index 0000000..03837b9 Binary files /dev/null and b/www/plugins/calendrier_mini-2.0/css/img/month_prev_next-32x16.png differ diff --git a/www/plugins/calendrier_mini-2.0/css/minical.css b/www/plugins/calendrier_mini-2.0/css/minical.css new file mode 100644 index 0000000..16d1972 --- /dev/null +++ b/www/plugins/calendrier_mini-2.0/css/minical.css @@ -0,0 +1,56 @@ +/* CSS Document */ +.calendriermini{margin-bottom:1em;} +.calendriermini .calendar-container {height: 17em;position: relative;} +.calendriermini .calendar-container .image_loading {position: absolute;top:0;right:0;} + +.js .calendriermini .calendar-container .alt {display: none;} + +.calendriermini table{width: 100%;font-size: 0.8em;text-align: center;margin: 0 auto;border-collapse: collapse;} +.calendriermini table caption{margin: 0 auto; padding:0;} +.calendriermini table th{padding:0;} +.calendriermini table td {width: 14%;line-height: 2em;padding:0;} +.calendriermini table td a{display: block;background: #fff;border: 1px solid #EEE;font-weight: bold;text-decoration: none;color:inherit;} +.calendriermini .ui-datepicker-other-month {opacity: .5; filter:Alpha(Opacity=50);} +.calendriermini .ui-datepicker-other-month a {font-weight: normal;background:#eee;} +.calendriermini .ui-state-highlight a {background: #EAEA98;border-color: #EAEA98;} +.calendriermini .ui-datepicker-today a {border-color:#bbbb99;} + +.calendriermini table .ui-state-highlight a:hover{background: #DBB8DC;color: #636;border-color:#DBB8DC;} +.calendriermini table .ui-state-highlight.ui-datepicker-today a:hover{border-color:#636;} +.calendriermini span{} + +.calendriermini .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } +.calendriermini .ui-icon { width: 16px; height: 16px; background-repeat:no-repeat;background-position: center; } +.calendriermini .ui-datepicker-header { position:relative; padding:.2em 0; } +.calendriermini .ui-datepicker-prev, .calendriermini .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } +.calendriermini .ui-datepicker-prev-hover, .calendriermini .ui-datepicker-next-hover { top: 1px; } +.calendriermini .ui-datepicker-prev { left:2px; } +.calendriermini .ui-datepicker-next { right:2px; } +.calendriermini .ui-datepicker-prev .ui-icon {background-position: top left;} +.calendriermini .ui-datepicker-next .ui-icon {background-position: top right;} +.calendriermini .ui-datepicker-prev-hover { left:1px; } +.calendriermini .ui-datepicker-next-hover { right:1px; } +.calendriermini .ui-datepicker-prev span, .calendriermini .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } +.calendriermini .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } +.calendriermini .ui-datepicker-title select { font-size:1em; margin:1px 0; } +.calendriermini select.ui-datepicker-month-year {width: 100%;} +.calendriermini select.ui-datepicker-month, +.calendriermini select.ui-datepicker-year { width: 49%;} +.calendriermini .ui-datepicker-buttonpane { background-image: none; margin: 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; font-size: 0.8em;} +.calendriermini .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } + + +/* RTL support */ +/* +.ui-datepicker-rtl { direction: rtl; } +.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } +.ui-datepicker-rtl .ui-datepicker-group { float:right; } +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } +*/ \ No newline at end of file diff --git a/www/plugins/calendrier_mini-2.0/demos/minical_demo.html b/www/plugins/calendrier_mini-2.0/demos/minical_demo.html new file mode 100644 index 0000000..024daf4 --- /dev/null +++ b/www/plugins/calendrier_mini-2.0/demos/minical_demo.html @@ -0,0 +1,91 @@ +#CACHE{7200} + +[(#REM) Cf.: http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ +] + + + + + + + Exemple #[(#REM)]CALENDRIER_MINI + + + + + +
      + + + +
      + [(#REM) Contenu principal : contenu de l'article ] +
      +
      + + [(#REM) Les deux derniers articles ] + +
      + [(#ANCRE_PAGINATION)] + [(#ENV{debut_articles_recents}|?{'',' '})] +
        + +
      • + [(#LOGO_ARTICLE_RUBRIQUE|#URL_ARTICLE|image_reduire{150,100})] + [

        (#SURTITRE)

        ] +

        #TITRE

        + [

        (#SOUSTITRE)

        ] + [(#DATE|affdate)][, <:par_auteur:> (#LESAUTEURS)] + [
        (#INTRODUCTION)
        ] +
        +
      • + +
      + [

      (#PAGINATION)

      ] +
      +
      [ +

      Rien pour (#DATE_ARCHIVES|affdate)[ (#ENV{id_rubrique}?{dans ce secteur})]

      + ] + +
      + +
      +
      + + [(#REM) Menu de navigation laterale ] +
      + #CALENDRIER_MINI + +
      + +
        + [ +
      • [(#EXPOSE{})] + #TITRE + [(#EXPOSE{})]
      • + ] +
      +
      +
      + + [(#MODELE{archives_mensuelles,id_rubrique,archives,self=#SELF,lang})] + + [(#MODELE{select_archives_mensuelles,id_rubrique,archives,self=#SELF,lang})] + + [
      (#MENU_LANG)(toutes les langues)
      ] + + +
      +
      + + + +
      + + \ No newline at end of file diff --git a/www/plugins/calendrier_mini-2.0/formulaires/calendrier_mini.html b/www/plugins/calendrier_mini-2.0/formulaires/calendrier_mini.html new file mode 100644 index 0000000..2bda6db --- /dev/null +++ b/www/plugins/calendrier_mini-2.0/formulaires/calendrier_mini.html @@ -0,0 +1,57 @@ +[(#SET{urljson,[(#ENV{urljson} + |parametre_url{id_rubrique,#ENV{id_rubrique,#ENV{urljson}|parametre_url{id_rubrique}}} + |parametre_url{id_article,#ENV{id_article,#ENV{urljson}|parametre_url{id_article}}} + |parametre_url{id_mot,#ENV{id_mot,#ENV{urljson}|parametre_url{id_mot}}} + |parametre_url{lang,#ENV{lang,#ENV{urljson}|parametre_url{lang}}} + )]}) +]
      + +
      [(#REM) + + Contenu alternatif statique pour les Bot et les utilisateurs sans JS + ]
      + #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} + [(#ENV{date}|affdate_mois_annee)] : + + + +

      <:minical:aucune_date:>

      + +

      + #SET{prev,#VAL{Y-m-01}|date{#GET{start}|moins{172800}}} + #SET{next,#VAL{Y-m-01}|date{#GET{end}}} + [(#GET{prev}|affdate_mois_annee)] + | [(#GET{next}|affdate_mois_annee)] +

      +
      +
      +
      [ +(#REM) -------------------------------------------------------------------------------------------------- + +Chargement du javascript du mini-calendrier + +][ +(#REM) -------------------------------------------------------------------------------------------------- + +Chargement de la css que l'on importe inline pour eviter un hit (performance) ++ fixer la css de background pour les boutons precedent/suivant + +] \ No newline at end of file diff --git a/www/plugins/calendrier_mini-2.0/formulaires/configurer_calendriermini.html b/www/plugins/calendrier_mini-2.0/formulaires/configurer_calendriermini.html new file mode 100644 index 0000000..f5a1ca9 --- /dev/null +++ b/www/plugins/calendrier_mini-2.0/formulaires/configurer_calendriermini.html @@ -0,0 +1,79 @@ +
      +

      <:minical:config_titre_calendriermini:>

      + +[

      (#ENV*{message_ok})

      ] +[

      (#ENV*{message_erreur})

      ] + +
      + #ACTION_FORMULAIRE{#ENV{action}} +
        + #SET{fl,minical} + #SET{name,jour1}#SET{obli,''}#SET{defaut,1}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
      • + [ + (#GET{erreurs}) + ] +
      • + #SET{name,format_jour}#SET{defaut,1}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
      • + [ + (#GET{erreurs}) + ] + #SET{val,initiale} +
        + + +
        + #SET{val,abbr} +
        + + +
        +
      • + #SET{name,affichage_hors_mois}#SET{defaut,1}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
      • + [ + (#GET{erreurs}) + ] + #SET{val,1} +
        + + +
        + #SET{val,0} +
        + + +
        +
      • + #SET{name,changement_rapide}#SET{defaut,1}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}} +
      • + [ + (#GET{erreurs}) + ] + #SET{val,1} +
        + + +
        + #SET{val,0} +
        + + +
        +
      • + + +
      + +

        +

      +
      +
      \ No newline at end of file diff --git a/www/plugins/calendrier_mini-2.0/javascript/calendrier_mini.js.html b/www/plugins/calendrier_mini-2.0/javascript/calendrier_mini.js.html new file mode 100644 index 0000000..84c1db9 --- /dev/null +++ b/www/plugins/calendrier_mini-2.0/javascript/calendrier_mini.js.html @@ -0,0 +1,208 @@ +#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} +} +if (!jQuery.fn.multiDatesPicker){ +#INCLURE{javascript/jquery-ui.multidatespicker.js} +} +[(#REM) \ No newline at end of file diff --git a/www/plugins/menus_1/formulaires/editer_menu.php b/www/plugins/menus_1/formulaires/editer_menu.php new file mode 100644 index 0000000..66e43b7 --- /dev/null +++ b/www/plugins/menus_1/formulaires/editer_menu.php @@ -0,0 +1,122 @@ +$id_menu)); + } + } + elseif (!$nouveau){ + $contexte['editable'] = false; + $contexte['message_erreur'] = _T('menus:erreur_parametres'); + } + + // Si on peut bien éditer le menu, on déclare ce qu'il faut + if ($contexte['editable']){ + $contexte['id_menu'] = $id_menu; + $contexte['nouveau'] = $nouveau; + + // Les champs du menu principal + $contexte['titre'] = ''; + $contexte['identifiant'] = ''; + $contexte['css'] = ''; + $contexte['import'] = ''; + + $valeurs = formulaires_editer_objet_charger('menu',$id_menu,0,0,'', '', '', ''); + + $contexte = array_merge($contexte, $valeurs); + + // Déclarer l'action pour SPIP 2.0 + $contexte['_action'] = array('editer_menu', $id_menu); + // On sait toujours si on est sur un menu déjà créé ou pas + $contexte['_hidden'] .= ''; + } + } + else{ + $contexte['editable'] = false; + $contexte['message_erreur'] = _T('menus:erreur_autorisation'); + } + + return $contexte; +} + +function formulaires_editer_menu_verifier($id_menu, $nouveau){ + include_spip('base/abstract_sql'); + $erreurs = array(); + + $oblis = array('titre','identifiant'); + $erreurs = formulaires_editer_objet_verifier('menu',$id_menu,$oblis); + + $identifiant = _request('identifiant'); + + // On vérifie que l'identifiant est bon + if (!$erreurs['identifiant'] and !preg_match('/^[\w]+$/', $identifiant)) + $erreurs['identifiant'] = _T('menus:erreur_identifiant_forme'); + // On vérifie que l'identifiant n'est pas déjà utilisé + if (!$erreurs['identifiant']){ + $deja = sql_getfetsel( + 'id_menu', + 'spip_menus', + array( + 'identifiant = '.sql_quote($identifiant), + 'id_menu > 0', + 'id_menu !='.intval(_request('id_menu')) + ) + ); + if ($deja) + $erreurs['identifiant'] = _T('menus:erreur_identifiant_deja'); + } + + return $erreurs; +} + +function formulaires_editer_menu_traiter($id_menu, $nouveau){ + $res = formulaires_editer_objet_traiter('menu', $id_menu, 0, 0, '', '', '', ''); + + // Si ça va pas on errorise + if (!$res['id_menu']){ + $res['message_erreur'] = _T('menus:erreur_mise_a_jour'); + } + else{ + // Si on est dans l'espace privé on force la redirection + if (_request('exec') == 'menus_editer') + $res['redirect'] = generer_url_ecrire('menus_editer', "id_menu=".$res['id_menu']); + } + // Dans tous les cas le formulaire est toujours éditable + $res['editable'] = true; + + return $res; +} + +?> diff --git a/www/plugins/menus_1/formulaires/editer_menus_entree.html b/www/plugins/menus_1/formulaires/editer_menus_entree.html new file mode 100644 index 0000000..5c5b3a1 --- /dev/null +++ b/www/plugins/menus_1/formulaires/editer_menus_entree.html @@ -0,0 +1,40 @@ +
      + [

      (#ENV*{message_ok})

      ] + [

      (#ENV*{message_erreur})

      ] + + [(#ENV{editable}) + +
      + [(#REM) declarer les hidden qui declencheront le service du formulaire + parametre : url d'action ] + #ACTION_FORMULAIRE{#ENV{action}} + +
        +
      • +
        +

        <:menus:formulaire_partie_construction:>

        + + + #INCLURE{fond=formulaires/inc-menus_entrees, env} +
        +
      • +
      +
      + + ] +
      + + \ No newline at end of file diff --git a/www/plugins/menus_1/formulaires/editer_menus_entree.php b/www/plugins/menus_1/formulaires/editer_menus_entree.php new file mode 100644 index 0000000..474976c --- /dev/null +++ b/www/plugins/menus_1/formulaires/editer_menus_entree.php @@ -0,0 +1,252 @@ +'; + + return $valeurs; +} + +function formulaires_editer_menus_entree_verifier($id_menu,$id_menus_entree='new'){ + $erreurs = formulaires_editer_objet_verifier('menus_entree',$id_menus_entree,array()); + + // Si on demande une nouvelle entree pour un menu -------------------------- + + if ($id_menu = intval(_request('demander_nouvelle_entree'))){ + // S'il n'y a pas encore de type d'entree de choisi + if (!($type_entree = _request('type_entree'))){ + include_spip('inc/config'); + $erreurs['id_menu_nouvelle_entree'] = $id_menu; + // On charge les différents types d'entrées disponibles + $masque = array_flip(lire_config('menus/entrees_masquees', array())); + $erreurs['entrees'] = array_diff_key(menus_lister_disponibles(), $masque); + if (_request('suivant')) + $erreurs['type'] = _T('menus:erreur_type_menu'); + } + // Si on a choisi un type d'entree + else{ + $erreurs['id_menu_nouvelle_entree'] = $id_menu; + $erreurs['type_entree'] = $type_entree; + // On charge les infos du type choisi + $entrees = menus_lister_disponibles(); + $erreurs['infos_'.$type_entree] = $entrees[$type_entree]; + } + } + + // Si on veut modifier une entrée ------------------------------------------ + + if ($id_menus_entree = intval(_request('modifier_entree'))){ + // On va chercher l'existant de cette entrée + $entree = sql_fetsel( + 'type_entree, parametres', + 'spip_menus_entrees', + 'id_menus_entree = '.$id_menus_entree + ); + $type_entree = $entree['type_entree']; + $parametres = unserialize($entree['parametres']); + + $erreurs = array_merge($erreurs, $parametres); + $erreurs['id_menus_entree'] = $id_menus_entree; + $erreurs['type_entree'] = $type_entree; + // On charge les infos du type choisi + $entrees = menus_lister_disponibles(); + $erreurs['infos_'.$type_entree] = $entrees[$type_entree]; + } + + // Si on valide une entree pour un menu ------------------------------------ + + if (($id_menu = intval(_request('id_menu_nouvelle_entree')) or $id_menus_entree = intval(_request('id_menus_entree'))) and _request('enregistrer')){ + $type_entree = _request('type_entree'); + $parametres_envoyes = _request('parametres'); + $entrees = menus_lister_disponibles(); + $infos = $entrees[$type_entree]; + // On teste que chaque paramètre obligatoire est bien renseigné + foreach ($infos['parametres'] as $nom=>$parametre){ + if ($parametre['obligatoire']){ + if (!$parametres_envoyes[$nom]){ + if ($id_menu) + $erreurs['id_menu_nouvelle_entree'] = $id_menu; + if ($id_menus_entree) + $erreurs['id_menus_entree'] = $id_menus_entree; + $erreurs['type_entree'] = $type_entree; + $erreurs['infos_'.$type_entree] = $infos; + $erreurs['parametres'][$nom] = _T('info_obligatoire'); + } + } + } + } + + return $erreurs; +} + +function formulaires_editer_menus_entree_traiter($id_menu,$id_menus_entree='new'){ + $retours = array(); + + // Si on valide une entree pour un menu ------------------------------------ + + if (($id_menu = intval(_request('id_menu_nouvelle_entree')) or $id_menus_entree = intval(_request('id_menus_entree'))) and _request('enregistrer')){ + $res = formulaires_editer_objet_traiter('menus_entree', $id_menus_entree, 0, 0, '', '', '', ''); + if (!$res['id_menus_entree']) + $retours['message_erreur'] = _T('menus:erreur_mise_a_jour'); + } + + // Si on demande la supression d'une entrée -------------------------------- + + if ($id_menus_entree = intval(_request('supprimer_entree'))){ + $ok = menus_supprimer_entree($id_menus_entree); + if (!$ok) + $retours['message_erreur'] = _T('menus:erreur_mise_a_jour'); + } + + // Si on demande à déplacer une entrée ------------------------------------- + + if ($params = _request('deplacer_entree')){ + preg_match('/^([\d]+)-(bas|haut)$/', $params, $params); + array_shift($params); + list($id_menus_entree, $sens) = $params; + $id_menus_entree = intval($id_menus_entree); + + // On récupère des infos sur le placement actuel + $entree = sql_fetsel( + 'id_menu, rang', + 'spip_menus_entrees', + 'id_menus_entree = '.$id_menus_entree + ); + $id_menu = intval($entree['id_menu']); + $rang_actuel = intval($entree['rang']); + + // On teste si ya une entrée suivante + $dernier_rang = intval(sql_getfetsel( + 'rang', + 'spip_menus_entrees', + 'id_menu = '.$id_menu, + '', + 'rang desc', + '0,1' + )); + + // Tant qu'on ne veut pas faire de tour complet + if (!($sens == 'bas' and $rang_actuel == $dernier_rang) and !($sens == 'haut' and $rang_actuel == 1)){ + // Alors on ne fait qu'échanger deux entrées + $rang_echange = ($sens == 'bas') ? ($rang_actuel + 1) : ($rang_actuel - 1); + $ok = sql_updateq( + 'spip_menus_entrees', + array( + 'rang' => $rang_actuel + ), + 'id_menu = '.$id_menu.' and rang = '.$rang_echange + ); + if ($ok) + $ok = sql_updateq( + 'spip_menus_entrees', + array( + 'rang' => $rang_echange + ), + 'id_menus_entree = '.$id_menus_entree + ); + } + // Sinon on fait un tour complet en déplaçant tout + else{ + if ($sens == 'bas'){ + // Tout le monde descend d'un rang + $ok = sql_update( + 'spip_menus_entrees', + array( + 'rang' => 'rang + 1' + ), + 'id_menu = '.$id_menu + ); + // L'entrée passe tout en haut + if ($ok) + $ok = sql_updateq( + 'spip_menus_entrees', + array( + 'rang' => 1 + ), + 'id_menus_entree = '.$id_menus_entree + ); + } + else{ + // Tout le monde monte d'un rang + $ok = sql_update( + 'spip_menus_entrees', + array( + 'rang' => 'rang - 1' + ), + 'id_menu = '.$id_menu + ); + // L'entrée passe tout en bas + if ($ok) + $ok = sql_updateq( + 'spip_menus_entrees', + array( + 'rang' => $dernier_rang + ), + 'id_menus_entree = '.$id_menus_entree + ); + } + } + if (!$ok) $retours['message_erreur'] = _T('menus:erreur_mise_a_jour'); + } + + // Si on veut faire un sous-menu ------------------------------------------- + + if ($id_menus_entree = intval(_request('demander_sous_menu'))){ + $id_menu = sql_insertq( + 'spip_menus', + array( + 'id_menus_entree' => $id_menus_entree + ) + ); + if (!$id_menu) $retours['message_erreur'] = _T('menus:erreur_mise_a_jour'); + } + + // Si on veut supprimer un menu -------------------------------------------- + + if ($id_menu = intval(_request('supprimer_menu'))){ + // Est-ce un menu ou un sous-menu ? + $sous_menu = intval(sql_getfetsel( + 'id_menus_entree', + 'spip_menus', + 'id_menu = '.$id_menu + )); + $ok = menus_supprimer_menu($id_menu); + if (!$ok) $retours['message_erreur'] = _T('menus:erreur_mise_a_jour'); + if ($ok and !$sous_menu) $retours['redirect'] = generer_url_ecrire('menus_tous'); + } + + $retours['editable'] = true; + + return $retours; +} + +?> diff --git a/www/plugins/menus_1/formulaires/inc-menus_entrees.html b/www/plugins/menus_1/formulaires/inc-menus_entrees.html new file mode 100644 index 0000000..c1a4008 --- /dev/null +++ b/www/plugins/menus_1/formulaires/inc-menus_entrees.html @@ -0,0 +1,83 @@ +#SET{rang_suivant,1} + diff --git a/www/plugins/menus_1/formulaires/inc-menus_entrees_inexistantes.html b/www/plugins/menus_1/formulaires/inc-menus_entrees_inexistantes.html new file mode 100644 index 0000000..a3aeac3 --- /dev/null +++ b/www/plugins/menus_1/formulaires/inc-menus_entrees_inexistantes.html @@ -0,0 +1,11 @@ +[(#SET{titre, <:menus:formulaire_supprimer_entree:>})] +[(#ENV{titre}|oui) + #SET{titre, #ENV*{titre}|typo} +] + +[(#ENV{appel_formulaire}|oui) +
      +
      #GET{titre}
      +
      <:menus:erreur_type_menu_inexistant:>
      +
      +] diff --git a/www/plugins/menus_1/formulaires/inc-nouvelle_entree-1.html b/www/plugins/menus_1/formulaires/inc-nouvelle_entree-1.html new file mode 100644 index 0000000..5e47a9f --- /dev/null +++ b/www/plugins/menus_1/formulaires/inc-nouvelle_entree-1.html @@ -0,0 +1,23 @@ + +
        +
      • + + [(#ENV**{erreurs}|table_valeur{type})] + + + + <:menus:erreur_aucun_type:> + +
      • +
      + +

      + + + + +

      diff --git a/www/plugins/menus_1/formulaires/inc-nouvelle_entree-2.html b/www/plugins/menus_1/formulaires/inc-nouvelle_entree-2.html new file mode 100644 index 0000000..5c20913 --- /dev/null +++ b/www/plugins/menus_1/formulaires/inc-nouvelle_entree-2.html @@ -0,0 +1,38 @@ + +#SET{type_entree, (#ENV{erreurs}|table_valeur{type_entree})} +#SET{infos, (#ENV{erreurs}|table_valeur{infos_#GET{type_entree}})} +
      + + [(#ENV{id_menus_entree}|non) + [(#GET{infos}|table_valeur{icone}|image_reduire{24})] + ] + [(#GET{infos}|table_valeur{nom})] + +
      [(#GET{infos}|table_valeur{description})]
      + +
        + + #SET{erreurs,(#ENV**{erreurs}|table_valeur{parametres}|table_valeur{#CLE})} +
      • + + [(#GET{erreurs})] + +
      • + +
      +
      + +

      + + [(#ENV{id_menu_nouvelle_entree}|oui) + + + ] + [(#ENV{id_menus_entree}|oui) + + ] + + + +

      +
      diff --git a/www/plugins/menus_1/images/export.png b/www/plugins/menus_1/images/export.png new file mode 100644 index 0000000..22b6ae3 Binary files /dev/null and b/www/plugins/menus_1/images/export.png differ diff --git a/www/plugins/menus_1/images/menus-16.png b/www/plugins/menus_1/images/menus-16.png new file mode 100644 index 0000000..5ead8f7 Binary files /dev/null and b/www/plugins/menus_1/images/menus-16.png differ diff --git a/www/plugins/menus_1/images/menus-24.png b/www/plugins/menus_1/images/menus-24.png new file mode 100644 index 0000000..563d388 Binary files /dev/null and b/www/plugins/menus_1/images/menus-24.png differ diff --git a/www/plugins/menus_1/images/menus-48.png b/www/plugins/menus_1/images/menus-48.png new file mode 100644 index 0000000..a1bc9f9 Binary files /dev/null and b/www/plugins/menus_1/images/menus-48.png differ diff --git a/www/plugins/menus_1/images/menus-nouveau-24.png b/www/plugins/menus_1/images/menus-nouveau-24.png new file mode 100644 index 0000000..544f450 Binary files /dev/null and b/www/plugins/menus_1/images/menus-nouveau-24.png differ diff --git a/www/plugins/menus_1/images/menus-nouveau-48.png b/www/plugins/menus_1/images/menus-nouveau-48.png new file mode 100644 index 0000000..45cae0b Binary files /dev/null and b/www/plugins/menus_1/images/menus-nouveau-48.png differ diff --git a/www/plugins/menus_1/images/menus_accueil.png b/www/plugins/menus_1/images/menus_accueil.png new file mode 100644 index 0000000..a2ecb16 Binary files /dev/null and b/www/plugins/menus_1/images/menus_accueil.png differ diff --git a/www/plugins/menus_1/images/menus_action_ajouter.png b/www/plugins/menus_1/images/menus_action_ajouter.png new file mode 100644 index 0000000..8aef295 Binary files /dev/null and b/www/plugins/menus_1/images/menus_action_ajouter.png differ diff --git a/www/plugins/menus_1/images/menus_action_bas.png b/www/plugins/menus_1/images/menus_action_bas.png new file mode 100644 index 0000000..d6df4f6 Binary files /dev/null and b/www/plugins/menus_1/images/menus_action_bas.png differ diff --git a/www/plugins/menus_1/images/menus_action_haut.png b/www/plugins/menus_1/images/menus_action_haut.png new file mode 100644 index 0000000..cff387d Binary files /dev/null and b/www/plugins/menus_1/images/menus_action_haut.png differ diff --git a/www/plugins/menus_1/images/menus_action_modifier.png b/www/plugins/menus_1/images/menus_action_modifier.png new file mode 100644 index 0000000..a3bbd76 Binary files /dev/null and b/www/plugins/menus_1/images/menus_action_modifier.png differ diff --git a/www/plugins/menus_1/images/menus_action_supprimer.png b/www/plugins/menus_1/images/menus_action_supprimer.png new file mode 100644 index 0000000..cd92b1d Binary files /dev/null and b/www/plugins/menus_1/images/menus_action_supprimer.png differ diff --git a/www/plugins/menus_1/images/menus_articles_rubrique.png b/www/plugins/menus_1/images/menus_articles_rubrique.png new file mode 100644 index 0000000..c131e9b Binary files /dev/null and b/www/plugins/menus_1/images/menus_articles_rubrique.png differ diff --git a/www/plugins/menus_1/images/menus_groupes_mots.png b/www/plugins/menus_1/images/menus_groupes_mots.png new file mode 100644 index 0000000..f5388cc Binary files /dev/null and b/www/plugins/menus_1/images/menus_groupes_mots.png differ diff --git a/www/plugins/menus_1/images/menus_lien.png b/www/plugins/menus_1/images/menus_lien.png new file mode 100755 index 0000000..60d0d02 Binary files /dev/null and b/www/plugins/menus_1/images/menus_lien.png differ diff --git a/www/plugins/menus_1/images/menus_logout.png b/www/plugins/menus_1/images/menus_logout.png new file mode 100644 index 0000000..4ee9cff Binary files /dev/null and b/www/plugins/menus_1/images/menus_logout.png differ diff --git a/www/plugins/menus_1/images/menus_mapage.png b/www/plugins/menus_1/images/menus_mapage.png new file mode 100644 index 0000000..5d836e6 Binary files /dev/null and b/www/plugins/menus_1/images/menus_mapage.png differ diff --git a/www/plugins/menus_1/images/menus_mots.png b/www/plugins/menus_1/images/menus_mots.png new file mode 100644 index 0000000..f7988df Binary files /dev/null and b/www/plugins/menus_1/images/menus_mots.png differ diff --git a/www/plugins/menus_1/images/menus_objet.png b/www/plugins/menus_1/images/menus_objet.png new file mode 100644 index 0000000..8b1f432 Binary files /dev/null and b/www/plugins/menus_1/images/menus_objet.png differ diff --git a/www/plugins/menus_1/images/menus_page_speciale.png b/www/plugins/menus_1/images/menus_page_speciale.png new file mode 100644 index 0000000..74b109b Binary files /dev/null and b/www/plugins/menus_1/images/menus_page_speciale.png differ diff --git a/www/plugins/menus_1/images/menus_rubriques.png b/www/plugins/menus_1/images/menus_rubriques.png new file mode 100644 index 0000000..3033e6e Binary files /dev/null and b/www/plugins/menus_1/images/menus_rubriques.png differ diff --git a/www/plugins/menus_1/images/menus_secteurlangue.png b/www/plugins/menus_1/images/menus_secteurlangue.png new file mode 100644 index 0000000..90d1d85 Binary files /dev/null and b/www/plugins/menus_1/images/menus_secteurlangue.png differ diff --git a/www/plugins/menus_1/images/menus_texte_libre.png b/www/plugins/menus_1/images/menus_texte_libre.png new file mode 100644 index 0000000..59e60f7 Binary files /dev/null and b/www/plugins/menus_1/images/menus_texte_libre.png differ diff --git a/www/plugins/menus_1/inc/menus.php b/www/plugins/menus_1/inc/menus.php new file mode 100644 index 0000000..ac7e6ad --- /dev/null +++ b/www/plugins/menus_1/inc/menus.php @@ -0,0 +1,184 @@ +$chemin) { + $type = preg_replace(',[.]html$,i', '', $squelette); + $dossier = str_replace($squelette, '', $chemin); + // On ne garde que les squelettes ayant un XML de config + if (file_exists("$dossier$type.xml") + AND ( + $entree = !$informer OR ($entree = menus_charger_infos($dossier.$type)) + )){ + //on ne garde que les menus repondants aux necessites + $necessite = true; + if (! empty($entree['necessites']['plugin'])) { + /* la globale $plugins liste tout en majuscule */ + $entree['necessites']['plugin'] = array_map("strtoupper", $entree['necessites']['plugin']); + foreach($entree['necessites']['plugin'] as $plugin) { + if ( ! array_key_exists($plugin,$plugins_actifs) ) + $necessite = false; + } + } + if ($necessite) + $resultats[$informer][$type] = $entree; + } + } + } + $resultats[$informer] = pipeline('menus_lister_disponibles',array( + 'args' => array(), + 'data' => $resultats[$informer] + ) + ); + } + return $resultats[$informer]; +} + +/** + * Decrire un type de menu + * + * @staticvar array $infos + * @param string $type + * @return array + */ +function menus_informer($type){ + static $infos = array(); + if (!isset($infos[$type])){ + $fichier = find_in_path("menus/$type.html"); + $infos[$type] = menus_charger_infos($fichier); + } + return $infos[$type]; +} + +/** + * Charger les informations contenues dans le xml d'une entrée de menu + * + * @param string $type + * @param string $info + * @return array + */ +function menus_charger_infos($type, $info=""){ + // on peut appeler avec le nom du squelette + $fichier = preg_replace(',[.]html$,i','',$type).".xml"; + include_spip('inc/xml'); + include_spip('inc/texte'); + $entree = array(); + if ($xml = spip_xml_load($fichier, false)){ + if (count($xml['entree'])){ + $xml = reset($xml['entree']); + $entree['nom'] = _T_ou_typo(spip_xml_aplatit($xml['nom'])); + $entree['rang'] = intval(trim(spip_xml_aplatit($xml['rang']))); + $entree['rang'] = ($entree['rang'] ? $entree['rang'] : 1000); + $entree['description'] = isset($xml['description']) ? _T_ou_typo(spip_xml_aplatit($xml['description'])) : ''; + $entree['icone'] = isset($xml['icone']) ? find_in_path(reset($xml['icone'])) : ''; + $entree['refuser_sous_menu'] = isset($xml['refuser_sous_menu']); + // Décomposition des paramètres + $entree['parametres'] = array(); + if (spip_xml_match_nodes(',^parametre,', $xml, $parametres)){ + foreach (array_keys($parametres) as $parametre){ + list($balise, $attributs) = spip_xml_decompose_tag($parametre); + $entree['parametres'][$attributs['nom']] = array( + 'label' => (isset($attributs['label']) && $attributs['label']) ? _T($attributs['label']) : $attributs['nom'], + 'obligatoire' => (isset($attributs['obligatoire']) && $attributs['obligatoire'] == 'oui') ? true : false, + 'class' => (isset($attributs['class']) && $attributs['class']) ? $attributs['class'] : '' + ); + } + } + //Décomposition des necessites + if (spip_xml_match_nodes(',^necessite,', $xml, $necessites)){ + $entree['necessites']['plugin'] = array(); + foreach (array_keys($necessites) as $necessite){ + list($balise, $attributs) = spip_xml_decompose_tag($necessite); + array_push($entree['necessites'][$attributs['type']] , $attributs['nom']); + } + } + + } + } + if (!$info) + return $entree; + else + return isset($entree[$info]) ? $entree[$info] : ""; +} + +// Suprrimer une entrée (et les éventuels sous-menus en cascade) +function menus_supprimer_entree($id_menus_entree){ + include_spip('base/abstract_sql'); + $id_menus_entree = intval($id_menus_entree); + + // On regarde d'abord s'il y a un sous-menu + $id_menu = intval(sql_getfetsel( + 'id_menu', + 'spip_menus', + 'id_menus_entree = '.$id_menus_entree + )); + + // Dans ce cas on le supprime d'abord + $ok = true; + if ($id_menu) + $ok = menus_supprimer_menu($id_menu); + + // Si c'est bon, on peut alors supprimer l'entrée + if ($ok) + $ok = sql_delete( + 'spip_menus_entrees', + 'id_menus_entree = '.$id_menus_entree + ); + + return $ok; +} + +// Supprimer un menu (et donc toutes ses entrées aussi) +function menus_supprimer_menu($id_menu){ + include_spip('base/abstract_sql'); + $id_menu = intval($id_menu); + + // On récupère toutes les entrées + $entrees = sql_allfetsel( + 'id_menus_entree', + 'spip_menus_entrees', + 'id_menu = '.$id_menu + ); + if (is_array($entrees)) + $entrees = array_map('reset', $entrees); + + // On les supprime + $ok = true; + if (is_array($entrees)) + foreach ($entrees as $id_menus_entree){ + if ($ok) + $ok = menus_supprimer_entree($id_menus_entree); + } + + // Si tout s'est bien passé on peut enfin supprimer le menu + if ($ok) + $ok = sql_delete( + 'spip_menus', + 'id_menu = '.$id_menu + ); + + return $ok; +} + +?> diff --git a/www/plugins/menus_1/inc/menus_autoriser.php b/www/plugins/menus_1/inc/menus_autoriser.php new file mode 100644 index 0000000..93afbdd --- /dev/null +++ b/www/plugins/menus_1/inc/menus_autoriser.php @@ -0,0 +1,19 @@ + diff --git a/www/plugins/menus_1/inclure/barre-nav.html b/www/plugins/menus_1/inclure/barre-nav.html new file mode 100644 index 0000000..b1d83ab --- /dev/null +++ b/www/plugins/menus_1/inclure/barre-nav.html @@ -0,0 +1,7 @@ +[(#REM) + + ZPIP 1.x + +] diff --git a/www/plugins/menus_1/inclure/menu.html b/www/plugins/menus_1/inclure/menu.html new file mode 100644 index 0000000..47c755f --- /dev/null +++ b/www/plugins/menus_1/inclure/menu.html @@ -0,0 +1,21 @@ + + + + + + + + diff --git a/www/plugins/menus_1/inclure/nav.html b/www/plugins/menus_1/inclure/nav.html new file mode 100644 index 0000000..6d39144 --- /dev/null +++ b/www/plugins/menus_1/inclure/nav.html @@ -0,0 +1,7 @@ +[(#REM) + + ZPIP 2.x + +] diff --git a/www/plugins/menus_1/lang/menus.xml b/www/plugins/menus_1/lang/menus.xml new file mode 100644 index 0000000..a497978 --- /dev/null +++ b/www/plugins/menus_1/lang/menus.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/www/plugins/menus_1/lang/menus_ar.php b/www/plugins/menus_1/lang/menus_ar.php new file mode 100644 index 0000000..c278df2 --- /dev/null +++ b/www/plugins/menus_1/lang/menus_ar.php @@ -0,0 +1,174 @@ + 'هل تريد فعلاً حذف هذا البند؟', + + // D + 'description_menu_accueil' => 'رابط الى الصفحة الأساسية في الموقع.', + 'description_menu_articles_rubrique' => 'عرض لائحة المقالات في قسم.', + 'description_menu_deconnecter' => 'اذا كان هناك زائر متصل، يضيف بنداً يعرض عليه الخروج.', + 'description_menu_espace_prive' => 'Lien permettant de se connecter au site si on ne l\'est pas déjà, puis d\'aller dans l\'espace privé si l\'on y est autorisé.', # NEW + 'description_menu_groupes_mots' => 'Affiche automatiquement un menu listant les mots du groupe et les articles liés. Par défaut, affiche la liste des groupes de mots et les mots liés. Si un squelette groupes_mots.html existe, le lien vers le groupe est utilisé.', # NEW + 'description_menu_lien' => 'Ajoute un lien arbitraire, en interne (URL relative) ou externe (http://...).', # NEW + 'description_menu_mapage' => 'Si le visiteur est connecté, ajoute un lien vers sa page auteur.', # NEW + 'description_menu_mots' => 'Affiche automatiquement un menu listant les articles liés au mot clé.', # NEW + 'description_menu_objet' => 'Crée un lien vers un objet de SPIP : article, rubrique ou autre. Par défaut, l\'entrée aura le titre de l\'objet.', # NEW + 'description_menu_page_speciale' => 'Ajoute un lien vers un squelette page accessible par une url du type spip.php?page=nom¶m1=xx¶m2=yyy... Ces pages sont souvent fournies par des plugins.', # NEW + 'description_menu_page_speciale_zajax' => 'Ajoute un lien vers un bloc d\'une page accessible par une url du type spip.php?page=nom¶m1=xx¶m2=yyy... Ceci nécéssite une squelette de type Z et le plugin médiabox.', # NEW + 'description_menu_rubriques_articles' => 'Affiche une liste de rubriques et, si on veut, les sous-rubriques et les articles sur plusieurs niveaux. Par défaut, affiche toutes les rubriques depuis la racine, triées par titre (numériquement puis alphabétiquement). Les articles sont placés systématiquement après les rubriques.', # NEW + 'description_menu_rubriques_completes' => 'Affiche une liste de rubriques et, si on veut, les sous-rubriques sur plusieurs niveaux. Par défaut, affiche toutes les rubriques depuis la racine, triées par titre (numériquement puis alphabétiquement).', # NEW + 'description_menu_secteurlangue' => 'Cette entrée est spécifique aux sites utilisant un secteur par langue. Elle affiche automatiquement un menu listant les rubriques du secteur correspondant à la langue de la page et, si on veut, les sous-rubriques sur plusieurs niveaux. Par défaut, affiche toutes les rubriques depuis la racine, triées par titre (numériquement puis alphabétiquement).', # NEW + 'description_menu_texte_libre' => 'Simplement le texte que vous souhaitez, ou un code de langue SPIP (<:...:>)', # NEW + + // E + 'editer_menus_editer' => 'تعديل هذه القائمة', + 'editer_menus_explication' => 'إنشاء قوائم الموقع وإعدادها.', + 'editer_menus_exporter' => 'نقل هذه القائمة', + 'editer_menus_nouveau' => 'إنشاء قائمة جديدة', + 'editer_menus_titre' => 'قوائم الموقع', + 'entree_afficher_articles' => 'Inclure les articles dans le menu ? (mettre "oui" pour cela)', # NEW + 'entree_afficher_item_suite' => 'Inclure les articles dans le menu ? (mettre "oui" pour cela)', # NEW + 'entree_articles_max' => 'Si oui, afficher les articles seulement si la rubrique contient au maximum xx articles ? (mettre le nombre maximum d\'articles, laissez vide pour afficher tous les articles)', # NEW + 'entree_articles_max_affiches' => 'Si oui, limiter le nombre d\'articles listés à xx maximum (suivis d\'un item "... Tous les articles" comportant un lien vers la rubrique parente) ? (indiquer le nombre maximum d\'articles, laissez vide pour afficher tous les articles)', # NEW + 'entree_aucun' => 'بدون', + 'entree_bloc' => 'كتلة Zpip', + 'entree_choisir' => 'اختر نوع البند الذي تريد إضافته:', + 'entree_classe_parent' => 'Classe des liens des éléments parents. Cette classe sera rajoutée aux li>a ayant une suite ul/li. Par exemple, si vous saisissez "daddy", cela vous permet d\'utiliser le plugin menu deroulant 2 pour la mise en forme du menu.', # NEW + 'entree_connexion_objet' => 'Obliger à être connecté (mettre "session") ou déconnecté (mettre "nosession") pour voir l\'objet', # NEW + 'entree_contenu' => 'المحتوى', + 'entree_css' => 'Classes CSS de l\'entrée (du conteneur)', # NEW + 'entree_css_lien' => 'Classes CSS du lien', # NEW + 'entree_id_groupe' => 'رقم مجموعة المفاتيح', + 'entree_id_mot' => 'رقم المفتاح', + 'entree_id_objet' => 'رقم', + 'entree_id_rubrique' => 'رقم القسم الحاوي', + 'entree_id_rubrique_ou_courante' => 'Numéro de la rubrique parente ou "courante" si la rubrique parente est la rubrique courante du contexte', # NEW + 'entree_id_rubriques_exclues' => 'Numéros des rubriques à exclure, séparés par des virgules', # NEW + 'entree_id_secteur_exclus' => 'Numéros des secteurs à exclure, séparés par des virgules', # NEW + 'entree_infini' => 'الى ما لا نهاية', + 'entree_mapage' => 'صفحتي الشخصية', + 'entree_masquer_articles_uniques' => 'Si oui et si une rubrique contient un seul article, le masquer ? (mettre "oui" pour cela)', # NEW + 'entree_niveau' => 'مستوى القوائم الفرعية', + 'entree_nombre_articles' => 'العدد الأقصى للمقالات (صفر افتراضياً)', + 'entree_page' => 'اسم الصفحة', + 'entree_parametres' => 'لائحة المتغيرات', + 'entree_rubriques_max_affichees' => 'Si oui, limiter le nombre de rubriques listés à xx maximum (suivis d\'un item "... Toutes les rubriques" comportant un lien vers la rubrique parente) ? (indiquer le nombre maximum de rubriques, laissez vide pour afficher toutes les rubriques)', # NEW + 'entree_sousrub_cond' => 'N\'afficher que les sous-rubriques de la rubrique en cours (mettre "oui", sinon laisser vide)', # NEW + 'entree_suivant_connexion' => 'Restreindre cette entrée suivant la connexion (mettre "connecte" pour afficher seulement si le visiteur est connecté, "deconnecte" pour le cas contraire, ou laisser vide pour toujours afficher)', # NEW + 'entree_suivant_connexion_connecte' => 'اذا متصل فقط', + 'entree_suivant_connexion_deconnecte' => 'اذا غير متصل فقط', + 'entree_sur_n_articles' => '@n@ مقال معروض', + 'entree_sur_n_mots' => '@n@ مفتاح معروض', + 'entree_sur_n_niveaux' => 'على @n@ مستوى', + 'entree_titre' => 'العنوان', + 'entree_titre_connecter' => 'العنوان للوصول الى استمارة التعريف', + 'entree_titre_prive' => 'العنوان للدخول الى المجال الخاص', + 'entree_traduction_articles_rubriques' => 'Dans la mesure du possible, afficher les articles de la rubrique dans la langue du contexte (mettre "trad" pour cela)', # NEW + 'entree_traduction_objet' => 'Dans le cas d\'un article, choisir la traduction en fonction du contexte (mettre "trad" pour cela)', # NEW + 'entree_tri_alpha' => 'Critère de tri des rubriques (alphabétique). Si vous saisissez "date", le critère ajouté sera {par date} et les rubriques seront triées par date', # NEW + 'entree_tri_alpha_articles' => 'Critère de tri des articles (alphabétique). Si vous saisissez "date", le critère ajouté sera {par date} et les articles seront triés par date', # NEW + 'entree_tri_alpha_articles_inverse' => 'Inverser le critère de tri alphabétique ? (mettre "oui" pour cela)', # NEW + 'entree_tri_alpha_inverse' => 'Inverser le critère de tri alphabétique ? (mettre "oui" pour cela)', # NEW + 'entree_tri_num' => 'Critère de tri des rubriques (numérique). Si vous saisissez "titre", le critère ajouté sera {par num titre} et les rubriques seront triées par numéro de titre', # NEW + 'entree_tri_num_articles' => 'Critère de tri des articles (numérique). Si vous saisissez "titre", le critère ajouté sera {par num titre} et les articles seront triés par numéro de titre', # NEW + 'entree_tri_num_articles_inverse' => 'Inverser le critère de tri numérique ? (mettre "oui" pour cela)', # NEW + 'entree_tri_num_inverse' => 'Inverser le critère de tri numérique ? (mettre "oui" pour cela)', # NEW + 'entree_type_objet' => 'نوع العنصر', + 'entree_url' => 'العنوان', + 'entree_url_public' => 'Adresse de retour après la connexion', # NEW + 'erreur_aucun_type' => 'لم يتم العثور على اي نوع بنود.', + 'erreur_autorisation' => 'غير مسموح لك تعديل القوائم.', + 'erreur_identifiant_deja' => 'Cet identifiant est déjà utilisé par un menu.', # NEW + 'erreur_identifiant_forme' => 'L\'identifiant ne doit contenir que des lettres, des chiffres ou le caractère souligné.', # NEW + 'erreur_menu_inexistant' => 'لا وجود للقائمة رقم @id@ المطلوبة.', + 'erreur_mise_a_jour' => 'Une erreur s\'est produite pendant la mise à jour de la base de donnée.', # NEW + 'erreur_parametres' => 'Il y a une erreur dans les paramètres de la page', # NEW + 'erreur_type_menu' => 'يجب اختيار نوع قوائم', + 'erreur_type_menu_inexistant' => 'Ce type de menu n\'est pas/plus disponible', # NEW + + // F + 'formulaire_ajouter_entree' => 'إضافة بند', + 'formulaire_ajouter_sous_menu' => 'إنشاء قائمة فرعية', + 'formulaire_css' => 'Classes CSS', # NEW + 'formulaire_css_explication' => 'Vous pouvez ajouter au menu d\'éventuelles classes CSS supplémentaires.', # NEW + 'formulaire_deplacer_bas' => 'نقل الى الأسفل', + 'formulaire_deplacer_haut' => 'نقل الى الأعلى', + 'formulaire_facultatif' => 'اختياري', + 'formulaire_identifiant' => 'المعرف', + 'formulaire_identifiant_explication' => 'Donnez un mot-clé unique qui vous permettra d\'appeler votre menu facilement.', # NEW + 'formulaire_ieconfig_choisir_menus_a_importer' => 'Choisissez quel(s) menu(s) vous souhaitez importer.', # NEW + 'formulaire_ieconfig_importer' => 'جلب', + 'formulaire_ieconfig_menu_meme_identifiant' => 'ATTENTION : un menu avec le même identifiant existe déjà sur votre votre site !', # NEW + 'formulaire_ieconfig_menus_a_exporter' => 'قوائم للنقل:', + 'formulaire_ieconfig_ne_pas_importer' => 'عدم الجلب', + 'formulaire_ieconfig_remplacer' => 'Remplacer le menu actuel par le menu importé', # NEW + 'formulaire_ieconfig_renommer' => 'إعادة تسمية هذه القائمة قبل جلبها', + 'formulaire_importer' => 'جلب قائمة', + 'formulaire_importer_explication' => 'Si vous avez exporté un menu dans un fichier, vous pouvez l\'importer maintenant.', # NEW + 'formulaire_modifier_entree' => 'تعديل هذا البند', + 'formulaire_modifier_menu' => 'تعديل القائمة', + 'formulaire_nouveau' => 'قائمة جديدة', + 'formulaire_partie_construction' => 'بناء قائمة', + 'formulaire_partie_identification' => 'تعريف القائمة', + 'formulaire_supprimer_entree' => 'حذف هذا البند', + 'formulaire_supprimer_menu' => 'حذف القائمة', + 'formulaire_supprimer_sous_menu' => 'حذف هذه القائمة الفرعية', + 'formulaire_titre' => 'العنوان', + + // I + 'info_afficher_articles' => 'Les articles seront inclus dans le menu.', # NEW + 'info_articles_max' => 'Seulement si la rubrique contient au plus @max@ articles', # NEW + 'info_articles_max_affiches' => 'Affichage limité à @max@ articles', # NEW + 'info_classe_parent' => 'Classe des éléments parents : ', # NEW + 'info_connexion_obligatoire' => 'Connexion obligatoire', # NEW + 'info_deconnexion_obligatoire' => 'Uniquement déconnecté', # NEW + 'info_masquer_articles_uniques' => 'Articles uniques masqués', # NEW + 'info_numero_menu' => 'قائمة رقم:', + 'info_page_speciale' => 'Lien vers la page « @page@ »', # NEW + 'info_page_speciale_zajax' => 'Modalbox de la page « @page@ » pour le bloc « @bloc@ »', # NEW + 'info_rubrique_courante' => 'القسم الحالي', + 'info_rubriques_exclues' => ' / sauf rubrique(s) @id_rubriques@', # NEW + 'info_rubriques_max_affichees' => 'Affichage limité à @max@ rubriques', # NEW + 'info_secteur_exclus' => ' / sauf secteur(s) @id_secteur@', # NEW + 'info_sousrub_cond' => 'Seules les sous-rubriques de la rubriques en cours sont affichées.', # NEW + 'info_tous_groupes_mots' => 'Tous les groupes de mots', # NEW + 'info_traduction_recuperee' => 'Le contexte décidera de la traduction choisie', # NEW + 'info_tri' => 'فرز الأقسام:', + 'info_tri_alpha' => '(أبجدي)', + 'info_tri_articles' => 'فرز المقالات:', + 'info_tri_num' => '(رقمي)', + + // N + 'noisette_description' => 'Insère un menu défini avec le plugin Menus.', # NEW + 'noisette_label_afficher_titre_menu' => 'عرض عنوان القائمة؟', + 'noisette_label_identifiant' => 'Menu à afficher :', # NEW + 'noisette_nom_noisette' => 'القائمة', + 'nom_menu_accueil' => 'Accueil', # NEW + 'nom_menu_articles_rubrique' => 'مقالات قسم', + 'nom_menu_deconnecter' => 'خروج', + 'nom_menu_espace_prive' => 'Se connecter / lien vers espace privé', # NEW + 'nom_menu_groupes_mots' => 'Mots-clés et Articles d\'un Groupes de mots', # NEW + 'nom_menu_lien' => 'رابط اعتباطي', + 'nom_menu_mapage' => 'صفحتي', + 'nom_menu_mots' => 'مقالات مفتاح', + 'nom_menu_objet' => 'مقال، قسم او أحد عناصر SPIP الأخرى ', + 'nom_menu_page_speciale' => 'رابط الى صفحة نموذجية', + 'nom_menu_page_speciale_zajax' => 'Un bloc d\'une page Zpip', # NEW + 'nom_menu_rubriques_completes' => 'Liste ou arborescence de rubriques et d\'articles (avec beaucoup d\'options)', # NEW + 'nom_menu_rubriques_evenements' => 'Événements de rubriques', # NEW + 'nom_menu_secteurlangue' => 'أقسام اللغات', + 'nom_menu_texte_libre' => 'نص حرّ', + + // T + 'tous_les_articles' => 'كل المقالات', + 'toutes_les_rubriques' => 'كل الأقسام' +); + +?> diff --git a/www/plugins/menus_1/lang/menus_ca.php b/www/plugins/menus_1/lang/menus_ca.php new file mode 100644 index 0000000..53f4403 --- /dev/null +++ b/www/plugins/menus_1/lang/menus_ca.php @@ -0,0 +1,174 @@ + 'Voulez-vous vraiment supprimer cette entrée ?', # NEW + + // D + 'description_menu_accueil' => 'Enllaç cap a la pàgina d\'inici del lloc.', + 'description_menu_articles_rubrique' => 'Mostra la llista d\'articles d\'una secció.', + 'description_menu_deconnecter' => 'Si el visitant està connectat, afegeix una entrada proposant-li la desconnexió.', + 'description_menu_espace_prive' => 'Enllaç que permet connectar-se al lloc, si encara no ho estem, i després anar a l\'espai privat sempre i quan estiguem autoritzats a fer-ho.', + 'description_menu_groupes_mots' => 'Mostra automàticament un menú que llista les paraules del grup i els articles lligats. Per defecte, mostra la llista dels grups de paraules i les paraules lligades. Si un esquelet grups_paraules.html existeix, s\'utilitzarà l\'enllaç cap al grup.', + 'description_menu_lien' => 'Afegeix un enllaç arbitrari, intern (URL relativa) o extern (http://...).', + 'description_menu_mapage' => 'Si el visitant està connectat, afegeix un enllaç cap a la pàgina de l\'autor.', + 'description_menu_mots' => 'Mostra automàticament un menú que llista els articles lligats a la paraula clau.', + 'description_menu_objet' => 'Crea un enllaç cap a un objecte d\'SPIP: article, secció o un altre. Per defecte, l\'entrada tindrà el títol de l\'objecte.', + 'description_menu_page_speciale' => 'Afegeix un enllaç cap a un esquelet accessible per un URL del tipus spip.php?page=nom¶m1=xx¶m2=yyy... Aquestes pàgines sovint són subministrades per connectors.', + 'description_menu_page_speciale_zajax' => 'Ajoute un lien vers un bloc d\'une page accessible par une url du type spip.php?page=nom¶m1=xx¶m2=yyy... Ceci nécéssite une squelette de type Z et le plugin médiabox.', # NEW + 'description_menu_rubriques_articles' => 'Affiche une liste de rubriques et, si on veut, les sous-rubriques et les articles sur plusieurs niveaux. Par défaut, affiche toutes les rubriques depuis la racine, triées par titre (numériquement puis alphabétiquement). Les articles sont placés systématiquement après les rubriques.', # NEW + 'description_menu_rubriques_completes' => 'Affiche une liste de rubriques et, si on veut, les sous-rubriques sur plusieurs niveaux. Par défaut, affiche toutes les rubriques depuis la racine, triées par titre (numériquement puis alphabétiquement).', # NEW + 'description_menu_secteurlangue' => 'Aquesta entrada és específica pels llocs que utilitzen un sector per llengua. Mostra automàticament un menú que llista les seccions del sector corresponent a la llengua de la pàgina i, si es vol, les subseccions a diferents nivells. Per defecte, mostra totes les seccions des de l\'arrel, ordenades per títol (numèricament i després alfabèticament).', + 'description_menu_texte_libre' => 'Simplement le texte que vous souhaitez, ou un code de langue SPIP (<:...:>)', # NEW + + // E + 'editer_menus_editer' => 'Modificar aquest menú', + 'editer_menus_explication' => 'Creeu i configureu els menús del vostre lloc.', + 'editer_menus_exporter' => 'Exportar aquest menú', + 'editer_menus_nouveau' => 'Creeu un nou menú', + 'editer_menus_titre' => 'Menús del lloc', + 'entree_afficher_articles' => 'Inclure les articles dans le menu ? (mettre "oui" pour cela)', # NEW + 'entree_afficher_item_suite' => 'Inclure les articles dans le menu ? (mettre "oui" pour cela)', # NEW + 'entree_articles_max' => 'Si oui, afficher les articles seulement si la rubrique contient au maximum xx articles ? (mettre le nombre maximum d\'articles, laissez vide pour afficher tous les articles)', # NEW + 'entree_articles_max_affiches' => 'Si oui, limiter le nombre d\'articles listés à xx maximum (suivis d\'un item "... Tous les articles" comportant un lien vers la rubrique parente) ? (indiquer le nombre maximum d\'articles, laissez vide pour afficher tous les articles)', # NEW + 'entree_aucun' => 'Cap', + 'entree_bloc' => 'Bloc Zpip', # NEW + 'entree_choisir' => 'Escolliu el tipus d\'entrada que voleu afegir:', + 'entree_classe_parent' => 'Classe des liens des éléments parents. Cette classe sera rajoutée aux li>a ayant une suite ul/li. Par exemple, si vous saisissez "daddy", cela vous permet d\'utiliser le plugin menu deroulant 2 pour la mise en forme du menu.', # NEW + 'entree_connexion_objet' => 'Obliger à être connecté (mettre "session") ou déconnecté (mettre "nosession") pour voir l\'objet', # NEW + 'entree_contenu' => 'Contenu', # NEW + 'entree_css' => 'Classes CSS de l\'entrada', # MODIF + 'entree_css_lien' => 'Classes CSS du lien', # NEW + 'entree_id_groupe' => 'Número del grup de paraula clau', + 'entree_id_mot' => 'Número de la paraula clau', + 'entree_id_objet' => 'Número', + 'entree_id_rubrique' => 'Número de la secció pare', + 'entree_id_rubrique_ou_courante' => 'Numéro de la rubrique parente ou "courante" si la rubrique parente est la rubrique courante du contexte', # NEW + 'entree_id_rubriques_exclues' => 'Numéros des rubriques à exclure, séparés par des virgules', # NEW + 'entree_id_secteur_exclus' => 'Numéros des secteurs à exclure, séparés par des virgules', # NEW + 'entree_infini' => 'Fins l\'infinit', + 'entree_mapage' => 'La meva pàgina personal', + 'entree_masquer_articles_uniques' => 'Si oui et si une rubrique contient un seul article, le masquer ? (mettre "oui" pour cela)', # NEW + 'entree_niveau' => 'Nivell de les subseccions', + 'entree_nombre_articles' => 'Número d\'articles com a màxim (0 per defecte)', + 'entree_page' => 'Nom de la pàgina', + 'entree_parametres' => 'Llista dels paràmetres', + 'entree_rubriques_max_affichees' => 'Si oui, limiter le nombre de rubriques listés à xx maximum (suivis d\'un item "... Toutes les rubriques" comportant un lien vers la rubrique parente) ? (indiquer le nombre maximum de rubriques, laissez vide pour afficher toutes les rubriques)', # NEW + 'entree_sousrub_cond' => 'N\'afficher que les sous-rubriques de la rubrique en cours (mettre "oui", sinon laisser vide)', # NEW + 'entree_suivant_connexion' => 'Restreindre cette entrée suivant la connexion (mettre "connecte" pour afficher seulement si le visiteur est connecté, "deconnecte" pour le cas contraire, ou laisser vide pour toujours afficher)', # NEW + 'entree_suivant_connexion_connecte' => 'seulement si connecté', # NEW + 'entree_suivant_connexion_deconnecte' => 'seulement si déconnecté', # NEW + 'entree_sur_n_articles' => '@n@ articles mostrat(s)', + 'entree_sur_n_mots' => '@n@ paraules mostrada(es)', + 'entree_sur_n_niveaux' => 'A @n@ nivell(s)', + 'entree_titre' => 'Títol', + 'entree_titre_connecter' => 'Títol per l\'accés al formulari d\'identificació', + 'entree_titre_prive' => 'Títol per accedir a l\'espai privat', + 'entree_traduction_articles_rubriques' => 'Dans la mesure du possible, afficher les articles de la rubrique dans la langue du contexte (mettre "trad" pour cela)', # NEW + 'entree_traduction_objet' => 'Dans le cas d\'un article, choisir la traduction en fonction du contexte (mettre "trad" pour cela)', # NEW + 'entree_tri_alpha' => 'Criteri d\'ordenació (alfabètic)', # MODIF + 'entree_tri_alpha_articles' => 'Critère de tri des articles (alphabétique). Si vous saisissez "date", le critère ajouté sera {par date} et les articles seront triés par date', # NEW + 'entree_tri_alpha_articles_inverse' => 'Inverser le critère de tri alphabétique ? (mettre "oui" pour cela)', # NEW + 'entree_tri_alpha_inverse' => 'Inverser le critère de tri alphabétique ? (mettre "oui" pour cela)', # NEW + 'entree_tri_num' => 'Criteri d\'ordenació (numèric)', # MODIF + 'entree_tri_num_articles' => 'Critère de tri des articles (numérique). Si vous saisissez "titre", le critère ajouté sera {par num titre} et les articles seront triés par numéro de titre', # NEW + 'entree_tri_num_articles_inverse' => 'Inverser le critère de tri numérique ? (mettre "oui" pour cela)', # NEW + 'entree_tri_num_inverse' => 'Inverser le critère de tri numérique ? (mettre "oui" pour cela)', # NEW + 'entree_type_objet' => 'Tipus d\'objecte', + 'entree_url' => 'Adreça', + 'entree_url_public' => 'Adresse de retour après la connexion', # NEW + 'erreur_aucun_type' => 'No s\'ha trobat cap entrada.', + 'erreur_autorisation' => 'No estàs autoritzat per modificar els menús.', + 'erreur_identifiant_deja' => 'Aquest identificador ja es utilitzat per un menú.', + 'erreur_identifiant_forme' => 'L\'identificador només pot contenir lletres, xifres o el caràcter subratllat.', + 'erreur_menu_inexistant' => 'El menú demanat número @id@ no existeix.', + 'erreur_mise_a_jour' => 'S\'ha produït un error durant l\'actualització de la base de dades .', + 'erreur_parametres' => 'Hi ha un error en els paràmetres de la pàgina', + 'erreur_type_menu' => 'Has d\'escollir un tipus de menú', + 'erreur_type_menu_inexistant' => 'Ce type de menu n\'est pas/plus disponible', # NEW + + // F + 'formulaire_ajouter_entree' => 'Afegir una entrada', + 'formulaire_ajouter_sous_menu' => 'Crear un submenú', + 'formulaire_css' => 'Classes CSS', + 'formulaire_css_explication' => 'Podeu afegir al menú eventuals classes CSS suplementàries.', + 'formulaire_deplacer_bas' => 'Desplaçar avall', + 'formulaire_deplacer_haut' => 'Desplaçar amunt', + 'formulaire_facultatif' => 'Facultatiu', + 'formulaire_identifiant' => 'Identificador', + 'formulaire_identifiant_explication' => 'Doneu una paraula clau única que us permetrà cridar fàcilment el vostre menú.', + 'formulaire_ieconfig_choisir_menus_a_importer' => 'Choisissez quel(s) menu(s) vous souhaitez importer.', # NEW + 'formulaire_ieconfig_importer' => 'Importer', # NEW + 'formulaire_ieconfig_menu_meme_identifiant' => 'ATTENTION : un menu avec le même identifiant existe déjà sur votre votre site !', # NEW + 'formulaire_ieconfig_menus_a_exporter' => 'Menus à exporter :', # NEW + 'formulaire_ieconfig_ne_pas_importer' => 'Ne pas importer', # NEW + 'formulaire_ieconfig_remplacer' => 'Remplacer le menu actuel par le menu importé', # NEW + 'formulaire_ieconfig_renommer' => 'Renommer ce menu avant import', # NEW + 'formulaire_importer' => 'Importar un menú', + 'formulaire_importer_explication' => 'Si heu exportar un menú a dins d\'un fitxer, ara el podreu importar.', + 'formulaire_modifier_entree' => 'Modificar aquesta entrada', + 'formulaire_modifier_menu' => 'Modificar el menú:', + 'formulaire_nouveau' => 'Nou menú', + 'formulaire_partie_construction' => 'Construcció del menú', + 'formulaire_partie_identification' => 'Identificació del menú', + 'formulaire_supprimer_entree' => 'Suprimir aquesta entrada', + 'formulaire_supprimer_menu' => 'Suprimir el menú', + 'formulaire_supprimer_sous_menu' => 'Suprimir aquest submenú', + 'formulaire_titre' => 'Títol', + + // I + 'info_afficher_articles' => 'Les articles seront inclus dans le menu.', # NEW + 'info_articles_max' => 'Seulement si la rubrique contient au plus @max@ articles', # NEW + 'info_articles_max_affiches' => 'Affichage limité à @max@ articles', # NEW + 'info_classe_parent' => 'Classe des éléments parents : ', # NEW + 'info_connexion_obligatoire' => 'Connexion obligatoire', # NEW + 'info_deconnexion_obligatoire' => 'Uniquement déconnecté', # NEW + 'info_masquer_articles_uniques' => 'Articles uniques masqués', # NEW + 'info_numero_menu' => 'MENÚ NÚMERO:', + 'info_page_speciale' => 'Enllaç cap a la pàgina «@page@»', + 'info_page_speciale_zajax' => 'Modalbox de la page « @page@ » pour le bloc « @bloc@ »', # NEW + 'info_rubrique_courante' => 'Rubrique courante', # NEW + 'info_rubriques_exclues' => ' / sauf rubrique(s) @id_rubriques@', # NEW + 'info_rubriques_max_affichees' => 'Affichage limité à @max@ rubriques', # NEW + 'info_secteur_exclus' => ' / sauf secteur(s) @id_secteur@', # NEW + 'info_sousrub_cond' => 'Seules les sous-rubriques de la rubriques en cours sont affichées.', # NEW + 'info_tous_groupes_mots' => 'Tots els grups de paraules', + 'info_traduction_recuperee' => 'Le contexte décidera de la traduction choisie', # NEW + 'info_tri' => 'Ordena:', # MODIF + 'info_tri_alpha' => '(alfabètica)', + 'info_tri_articles' => 'Tri des articles :', # NEW + 'info_tri_num' => '(numèrica)', + + // N + 'noisette_description' => 'Insère un menu défini avec le plugin Menus.', # NEW + 'noisette_label_afficher_titre_menu' => 'Afficher le titre du menu ?', # NEW + 'noisette_label_identifiant' => 'Menu à afficher :', # NEW + 'noisette_nom_noisette' => 'Menu', # NEW + 'nom_menu_accueil' => 'Inici', + 'nom_menu_articles_rubrique' => 'Articles d\'una secció', + 'nom_menu_deconnecter' => 'Desconnectar-se', + 'nom_menu_espace_prive' => 'Connectar-se / enllaç cap a l\'espai privat', + 'nom_menu_groupes_mots' => 'Paraules clau i Articles d\'un Grup de paraules', + 'nom_menu_lien' => 'Enllaç arbitrari', + 'nom_menu_mapage' => 'La meva pàgina', + 'nom_menu_mots' => 'Articles d\'una Paraula clau', + 'nom_menu_objet' => 'Article, secció o un altre objecte SPIP', + 'nom_menu_page_speciale' => 'Enllaç cap a una pàgina esquelet', + 'nom_menu_page_speciale_zajax' => 'Un bloc d\'une page Zpip', # NEW + 'nom_menu_rubriques_completes' => 'Liste ou arborescence de rubriques et d\'articles (avec beaucoup d\'options)', # NEW + 'nom_menu_rubriques_evenements' => 'Esdeveniments de les seccions', + 'nom_menu_secteurlangue' => 'Sectors de llengua', + 'nom_menu_texte_libre' => 'Texte libre', # NEW + + // T + 'tous_les_articles' => '... Tous les articles', # NEW + 'toutes_les_rubriques' => '... Toutes les rubriques' # NEW +); + +?> diff --git a/www/plugins/menus_1/lang/menus_de.php b/www/plugins/menus_1/lang/menus_de.php new file mode 100644 index 0000000..2a21d00 --- /dev/null +++ b/www/plugins/menus_1/lang/menus_de.php @@ -0,0 +1,174 @@ + 'Wollen sie diesen Eintrag wirklich löschen?', + + // D + 'description_menu_accueil' => 'Link zur Startseite.', + 'description_menu_articles_rubrique' => 'Artikelliste einer Rubrik anzeigen', + 'description_menu_deconnecter' => 'Wenn eine Leser angemeldet ist, zeige ihm einen Abmelde-Link.', + 'description_menu_espace_prive' => 'Link zum Login und zum Redaktionssystem', + 'description_menu_groupes_mots' => 'Zeige automatisch ein Menü aus Schlagworten und zugehörigen Artikeln. In der Grundeinstellung werden die Schlagwortgruppen mit ihren Schlagworten angezeigt. Wenn ein Skelett mit der Bezeichnung groupes_mots.html existiert, wird der Link zur Schlagwortguppe verwendet.', + 'description_menu_lien' => 'Fügt eine beliebigen Link hinzu, der entweder intern (rekative URL)oder extern (http://...) sein kann.', + 'description_menu_mapage' => 'Wenn der Besucher angemeldet ist, füge einen Link zu seiner persönlichen Seite hinzu.', + 'description_menu_mots' => 'Zeigt automatisch ein Menü, das die Artikel zum Schlagwort anzeigt.', + 'description_menu_objet' => 'Link zu einem SPIP-Objekt anlegen: Artikel, Rubrik, usw. In der Grundeinstellung trägt der Eintrag den Namen des Objekts.', + 'description_menu_page_speciale' => 'Fügt einen URL zu einer Skelettseite im Format spip.php?page=nom¶m1=xx¶m2=yyy... hinzu. Diese Skelette werden von Plugins bereitgestellt', + 'description_menu_page_speciale_zajax' => 'Fügt einen Link zu einem Block auf einer Seite hinzu, die über einen URL mit der Syntax spip.php?page=nom¶m1=xx¶m2=yyy... erreichbar ist. Dazu sind ein Skelett des Typs Z und das Plugin médiabox Voraussetzung.', + 'description_menu_rubriques_articles' => 'Zeigt einen Liste der Rubriken und auf Wunsch der Unterrubriken und Artikel als Hierarchie an. In der Grundeinstellung werden alle Rubriken von der obersten Ebene an dargestellt. Sie werden nach Titeln (zuerst numerisch und dann alphabetisch) sortiert. Artikel werden immer hinter den Rubriken angezeigt.', + 'description_menu_rubriques_completes' => 'Zeigt eine Liste der Rubriken und, wenn gewünscht, der Unterrubriken auf mehreren Ebenen an. Die Standardeinstellung zeigt alle Rubriken sortiert nach Titel an (mit Ordnungszahl nummerierte zuerst).', + 'description_menu_secteurlangue' => 'Dieser Eintrag bezieht sich aud die Sites, welche pro Sprache ein Hauptrubrik verwenden. Er zeigt ein Menü mit allen Rubriken des Sektors, die mit der Sprache übereinstimmen, wenn erfordelich auf über mehrere Niveaus. In der Grundeinstelung werden alle Rubriken ab der obersten Ebene nach Titel (numerisch und anschließend alphanumerisch) sortiert angezeigt.', + 'description_menu_texte_libre' => 'Ein beliebiger Text oder ein Sprachcode von SPIP im Format <:...:>', + + // E + 'editer_menus_editer' => 'Menü bearbeiten', + 'editer_menus_explication' => 'Gestalten und konfigurieren sie hier die Menüs ihrer Website.', + 'editer_menus_exporter' => 'Menü exportieren', + 'editer_menus_nouveau' => 'Neues Menü anlegen', + 'editer_menus_titre' => 'Menüs der Website', + 'entree_afficher_articles' => 'Artikel in das Menü einbeziehen? ("oui" eintragen wenn gewünscht)', + 'entree_afficher_item_suite' => 'Artikel in das Menü einbeziehen? ("oui" eintragen wenn gewünscht)', + 'entree_articles_max' => 'Wenn ja, Artikel nur anzeigen, wenn die Rubrik maximal xx Artikel enthält. (Obergrenze eintragen, leer lassen um alle anzuzeigen)', + 'entree_articles_max_affiches' => 'Wenn ja, Anzahl der angezeigten Artikel auf xx begrenzen; weitere werden durch den Eintrag "... alle Artikel" ersetzt. (Obergrenze eintragen, leer lassen um alle anzuzeigen)', + 'entree_aucun' => 'Keiner', + 'entree_bloc' => 'ZPIP Block', + 'entree_choisir' => 'Wählen sie die Art EIntrag, die sie hinzufügen wollen:', + 'entree_classe_parent' => 'Klasse der Links zu übergeordneten Objekten. Diese Klasse wird den li>a hinzugefügt, die sich mit ul/li fortsetezn. Wenn Sie z.B. "daddy" erfassen, können Sie das Plugin menu deroulant 2 zur Formatierung des Menüs einsetzen.', + 'entree_connexion_objet' => 'Objekt wird nur angezeigt, wenn man entweder eingelogt ("session" eintragen) oder nicht eingelogt ist ("nosession" eintragen)', + 'entree_contenu' => 'Inhalt', + 'entree_css' => 'CSS-Klassen des Eintrags (des Containers)', + 'entree_css_lien' => 'CSS-Klassen des Links', + 'entree_id_groupe' => 'Nummer der Schlagwortgruppe', + 'entree_id_mot' => 'Nummer des Schlagworts', + 'entree_id_objet' => 'Nummer', + 'entree_id_rubrique' => 'Nummer der übergeordeneten Rubrik', + 'entree_id_rubrique_ou_courante' => 'Nummer der "Elternrubrik" oder der "aktuellen" Rubrik, wenn die Elternrubrik die aktuelle Rubrik des Kontext ist.', + 'entree_id_rubriques_exclues' => 'Nummern der auszuschließenden Rubriken, getrennt durch Semikolons.', + 'entree_id_secteur_exclus' => 'Nummern der auszuschließenden Sektoren, getrennt mit Kommata', + 'entree_infini' => 'Unendlich', + 'entree_mapage' => 'Meine eigene Seite', + 'entree_masquer_articles_uniques' => 'Wenn ja und falls die Rubrik nur einen Artikel enthält wird dieser maskiert ("oui" eintragen wenn gewünscht).', + 'entree_niveau' => 'Tiefe der Unterrubriken', + 'entree_nombre_articles' => 'Maximale Anzahl Artikel (Standardwert 0)', + 'entree_page' => 'Name der Seite', + 'entree_parametres' => 'Parameterliste', + 'entree_rubriques_max_affichees' => 'Wenn definiert, dann wird die Zahl der gelisteten Rubriken auf xx begrenzt und von einem Eintrag "... alle Rubriken" abgeschlossen. Obergrenze eintragen oder leer lassen, wenn alle angezeigt werden sollen.', + 'entree_sousrub_cond' => 'Nur Unterrubriken der aktuellen Rubrik anzeigen ("oui" eintragen, falls nicht gewünscht leer lassen)', + 'entree_suivant_connexion' => 'Verhalten des Eintrags in Abhängigkeit vom Verbindungsstatus: "Verbinden" wird nur angezeigt, wenn der Besucher nicht eingelogt ist, anderenfalls wird "Log-Out" angezeit. Freilassen, um den Eintrag immer anzuzeigen.', # MODIF + 'entree_suivant_connexion_connecte' => 'nur wenn verbunden', + 'entree_suivant_connexion_deconnecte' => 'nur wenn nicht verbunden', + 'entree_sur_n_articles' => '@n@ Artikel angezeigt', + 'entree_sur_n_mots' => '@n@ Worte angezeigt', + 'entree_sur_n_niveaux' => 'Auf @n@ Niveau(s)', + 'entree_titre' => 'Titel', + 'entree_titre_connecter' => 'Titel für den Zugang zum Anmeldeformular', + 'entree_titre_prive' => 'Titel für den Redaktionszugang', + 'entree_traduction_articles_rubriques' => 'Wenn möglich Artikel der Rubrik in der Sprache des Kontext anzeigen ("oui" eintragen wenn gewünscht)', + 'entree_traduction_objet' => 'Übersetzung von Artikeln in Abhängigkeit vom Sprachkontext auswählen (für diese EInstellung "trad" eintragen)', + 'entree_tri_alpha' => 'Sortierung der Rubriken (alphanumerisch). Wenn Sie ein Datum angeben, wird das Kriterium {par date} hinzugefügt. und die Rubriken weden nach Datum sortiert.', + 'entree_tri_alpha_articles' => 'Sortierung der Artikel (alphanumerisch). Wenn Sie ein Datum angeben, wird das Kriterium {par date} hinzugefügt. und die Artikel weden nach Datum sortiert.', + 'entree_tri_alpha_articles_inverse' => 'Aplphabetische Sortierung umkehren (dazu "oui" eingeben) ?', + 'entree_tri_alpha_inverse' => 'Aplphabetische Sortierung umkehren (dazu "oui" eingeben) ?', + 'entree_tri_num' => 'Sortierung der Rubriken (numerisch). Wenn Sie einen Titel angeben, wird das Kriterium {par titre} hinzugefügt und die Rubrieken werden nach Titel sortiert angezeigt.', + 'entree_tri_num_articles' => 'Sortierung der Rubriken (numerisch). Wenn Sie einen Titel angeben, wird das Kriterium {par titre} hinzugefügt und die Rubrieken werden nach Titel sortiert angezeigt.', + 'entree_tri_num_articles_inverse' => 'Numerische Reihenfolge umkehren (dazu "oui" eingeben) ?', + 'entree_tri_num_inverse' => 'Numerische Reihenfolge umkehren (dazu "oui" eingeben) ?', + 'entree_type_objet' => 'Objekttyp', + 'entree_url' => 'Adresse', + 'entree_url_public' => 'Zieladresse nach der Anmeldung', + 'erreur_aucun_type' => 'Kein Eintragstyp gefunden.', + 'erreur_autorisation' => 'Sie dürfen Menüs nicht ändern.', + 'erreur_identifiant_deja' => 'Deise Bezeichnung wird bereits von einem Menü verwendet.', + 'erreur_identifiant_forme' => 'Die Bezeichnung darf nur Buchstaben, Ziffern und den Unterstrich enthalten.', + 'erreur_menu_inexistant' => 'Das angeforderte Menü existiert nicht.', + 'erreur_mise_a_jour' => 'Beim Aktualisieren der Datenbank ist ein Fehler aufgetreten.', + 'erreur_parametres' => 'Fehler in den Seitenparametern', + 'erreur_type_menu' => 'Sie müssen einen Menütyp wählen', + 'erreur_type_menu_inexistant' => 'Dieser Menütyp ist nicht verfügbar.', + + // F + 'formulaire_ajouter_entree' => 'Eintrag hinzufügen', + 'formulaire_ajouter_sous_menu' => 'Untermenü hinzufügen', + 'formulaire_css' => 'CSS-Klassen', + 'formulaire_css_explication' => 'Sie können dem Menü eventuell vorhandene zusätzliche CSS-Klassen zuordnen.', + 'formulaire_deplacer_bas' => 'Nach unten verschieben', + 'formulaire_deplacer_haut' => 'Nach oben verschieben', + 'formulaire_facultatif' => 'Fakultatif', + 'formulaire_identifiant' => 'Bezeichnung', + 'formulaire_identifiant_explication' => 'Vergeben sie ein Schlagwort, mit dem sie das Menü leicht aufrufen können..', + 'formulaire_ieconfig_choisir_menus_a_importer' => 'Wählen Sie die die zu importierenden Menüs', + 'formulaire_ieconfig_importer' => 'Importieren', + 'formulaire_ieconfig_menu_meme_identifiant' => 'ACHTUNG: Ihre Website enthält bereits ein Menü mit der selben ID!', + 'formulaire_ieconfig_menus_a_exporter' => 'Zu exportierende Menüs:', + 'formulaire_ieconfig_ne_pas_importer' => 'Nicht importieren', + 'formulaire_ieconfig_remplacer' => 'Aktuelles Menü durch das zu importierende ersetzen', + 'formulaire_ieconfig_renommer' => 'Menü vor Import umbenennen', + 'formulaire_importer' => 'Menü importieren', + 'formulaire_importer_explication' => 'Wenn sie ein Menü in eine Datei exportiert haben, können sie es jetzt importieren.', + 'formulaire_modifier_entree' => 'Eintrag bearbeiten', + 'formulaire_modifier_menu' => 'Menü bearbeiten:', + 'formulaire_nouveau' => 'Neues Menü', + 'formulaire_partie_construction' => 'Aufbau des Menüs', + 'formulaire_partie_identification' => 'Bezeichnung des Menüs', + 'formulaire_supprimer_entree' => 'Eintrag löschen', + 'formulaire_supprimer_menu' => 'Menü löschen', + 'formulaire_supprimer_sous_menu' => 'Untermenü löschen', + 'formulaire_titre' => 'Titel', + + // I + 'info_afficher_articles' => 'Artikel werden im Menü angezeigt', + 'info_articles_max' => 'Nur wenn die Rubrik maximal @max@ Artikel enthält.', + 'info_articles_max_affiches' => 'Anzeige ist begrenst auf maximal @max@ Artikel.', + 'info_classe_parent' => 'Klasse der übergeordneten Objekte:', + 'info_connexion_obligatoire' => 'Login obligatorisch', + 'info_deconnexion_obligatoire' => 'Nur wenn nicht eingelogt', + 'info_masquer_articles_uniques' => 'Einzelne Artikel maskieren.', + 'info_numero_menu' => 'MENÜ NUMMER:', + 'info_page_speciale' => 'Link zu Seite « @page@ »', + 'info_page_speciale_zajax' => 'Modale Box der Seite « @page@ » für den Block « @bloc@ »', + 'info_rubrique_courante' => 'Aktuelle Rubrik', + 'info_rubriques_exclues' => ' / außer Rubrik(en) @id_rubriques@', + 'info_rubriques_max_affichees' => 'Auf @max@ Rubriken begrenzen', + 'info_secteur_exclus' => ' / außer Sektor(en) @id_secteur@', + 'info_sousrub_cond' => 'Nur die Unterrubriken der aktuellen Rubrik werden angezeigt', + 'info_tous_groupes_mots' => 'Alle Schlagwortgruppen', + 'info_traduction_recuperee' => 'Die angezeigte Übersetzung wird je nach Sprachkontext gewählt.', + 'info_tri' => 'Sortierung der Rubriken:', + 'info_tri_alpha' => '(alphabetisch)', + 'info_tri_articles' => 'Sortierung der Artikel', + 'info_tri_num' => '(numerische)', + + // N + 'noisette_description' => 'Fügt ein mit dem Plugin "Menus" generiertes Menü ein', + 'noisette_label_afficher_titre_menu' => 'Titel des Menüs anzeigen?', + 'noisette_label_identifiant' => 'Dieses Menü anzeigen:', + 'noisette_nom_noisette' => 'Menü', + 'nom_menu_accueil' => 'Startseite', + 'nom_menu_articles_rubrique' => 'Artikel einer Rubrik', + 'nom_menu_deconnecter' => 'Abmelden', + 'nom_menu_espace_prive' => 'Einloggen / zum Redaktionssystem', + 'nom_menu_groupes_mots' => 'Schlagworte und Artikel einer Schlagwortgruppe', + 'nom_menu_lien' => 'Beliebiger Link', + 'nom_menu_mapage' => 'Meine Seite', + 'nom_menu_mots' => 'Artikel eines Schlagworts', + 'nom_menu_objet' => 'Artikel, Rubrik oder anderes SPIP-Objekt', + 'nom_menu_page_speciale' => 'Link zu einer HTML-Vorlage', + 'nom_menu_page_speciale_zajax' => 'Block einer ZPIP-Seite', + 'nom_menu_rubriques_completes' => 'Listen- oder Baumansicht von Rubriken und Artikeln mit zahlreichen Optionen', + 'nom_menu_rubriques_evenements' => 'Ereignisse der Rubriken', + 'nom_menu_secteurlangue' => 'Hauptrubriken nach Sprache', + 'nom_menu_texte_libre' => 'Freitext', + + // T + 'tous_les_articles' => '... alle Artikel', + 'toutes_les_rubriques' => '... alle Rubriken' +); + +?> diff --git a/www/plugins/menus_1/lang/menus_en.php b/www/plugins/menus_1/lang/menus_en.php new file mode 100644 index 0000000..ee8adad --- /dev/null +++ b/www/plugins/menus_1/lang/menus_en.php @@ -0,0 +1,174 @@ + 'Do you really want delete this entry?', + + // D + 'description_menu_accueil' => 'Link to website\'s home page.', + 'description_menu_articles_rubrique' => 'Display the list of articles in a section.', + 'description_menu_deconnecter' => 'If the visitor is connected, add an entry offering disconnection.', + 'description_menu_espace_prive' => 'Link enabling the connection to the site if you aren\'t already connected, and then to enter the private space if you are authorised to do so.', + 'description_menu_groupes_mots' => 'Automatically show a menu listing the keyword of the group and the linked articles. By default it shows the list of keyword groups and the keywords within them. If a groupes_mots.html template exists, the link to the group is used.', + 'description_menu_lien' => 'Adds an individually specified link, either an internal one (relative URL), or an external one (http://...).', + 'description_menu_mapage' => 'If visitors are connected, add a link to their author page.', + 'description_menu_mots' => 'Automatically shows a menu listing the articles linked to a keyword.', + 'description_menu_objet' => 'Creates a link to s SPIP object: article, section or other. By default, the entry will bear the the title of the object.', + 'description_menu_page_speciale' => 'Adds a link to a page template using a URL of the form spip.php?page=name¶m1=xx¶m2=yyy... Such pages are often used by plugins.', + 'description_menu_page_speciale_zajax' => 'Add a link to a block in a page accessible by a URL of the type spip.php?page=name¶m1=xx¶m2=yyy... This requires a Z type template and the médiabox plugin.', + 'description_menu_rubriques_articles' => 'Display a list of sections, optionally including sub-sections and articles nested to several levels. By default, all sections will be displayed starting from the site root and sorted by title (numerically then alphabetically).Articles in a given section will always be listed after any sub-sections.', + 'description_menu_rubriques_completes' => 'Displays a list of topics and, if you want, sub-sections on many levels. By default, displays all entries from the root, sorted by title (alphabetically and numerically).', + 'description_menu_secteurlangue' => 'This entry can be used by sites which have one language per sector. It displays a menu which lists the sections of the sector corresponding to the language of the page, and if desired the subsections to several levels. By default, all sections are shown from the site root, sorted by title (numerically then alphabetically).', + 'description_menu_texte_libre' => 'Just the text that you would like, or a SPIP language code (<:...:>)', + + // E + 'editer_menus_editer' => 'Edit this menu', + 'editer_menus_explication' => 'Create and configure menus for your site.', + 'editer_menus_exporter' => 'Export this menu', + 'editer_menus_nouveau' => 'Create a new menu', + 'editer_menus_titre' => 'Site menus', + 'entree_afficher_articles' => 'Include articles in the menu? (put "oui" for this)', + 'entree_afficher_item_suite' => 'Include articles in the menu? (put "oui" for this)', + 'entree_articles_max' => 'If so, show the articles only if the section contains a maximum of xx articles? (put the maximum number of articles, leave blank to display all articles)', + 'entree_articles_max_affiches' => 'If so, limit the number of articles listed to a maximum of xx (followed by an item "... All the articles" with a link to the parent section)? (indicate the maximum number of articles, leave blank to display all of them)', + 'entree_aucun' => 'None', + 'entree_bloc' => 'Zpip block', + 'entree_choisir' => 'Choose the type of item you want to add:', + 'entree_classe_parent' => 'CSS class of the links of the parent elements. This class will be added to the li>a having a subsequent ul / li. For example, if you type "daddy", it allows you to use the plugin "menu deroulant 2" to format the menu.', + 'entree_connexion_objet' => 'Requires being connected (insert "session") or disconnected (insert "nosession") in order to see the object', + 'entree_contenu' => 'Content', + 'entree_css' => 'CSS classes of this (container) item', + 'entree_css_lien' => 'CSS classes of the link', + 'entree_id_groupe' => 'Number of the keyword group', + 'entree_id_mot' => 'Number of the keyword', + 'entree_id_objet' => 'Number', + 'entree_id_rubrique' => 'Number of the parent section', + 'entree_id_rubrique_ou_courante' => 'Parent or "current" section number if the parent section is the current section of the context', + 'entree_id_rubriques_exclues' => 'Numbers of the sections to be excluded, separated by commas', + 'entree_id_secteur_exclus' => 'Numbers of the sectors to be excluded, separated by commas', + 'entree_infini' => 'To infinity', + 'entree_mapage' => 'My page', + 'entree_masquer_articles_uniques' => 'If so and if a section contains a only one article, hide it? (put "oui" for this)', + 'entree_niveau' => 'Sub-sections level', + 'entree_nombre_articles' => 'Maximum number of articles (0 by default)', + 'entree_page' => 'Name of the page', + 'entree_parametres' => 'List of parameters', + 'entree_rubriques_max_affichees' => 'If so, limit the number of sections listed to a maximum of xx (followed by an item "... All sections" with a link to the parent section)? (indicate the maximum number of sections, leave blank to show all of them)', + 'entree_sousrub_cond' => 'Only display the subsections for the current section (enter "oui" (yes), otherwise leave it empty)', + 'entree_suivant_connexion' => 'Restrict this entry according to the connection (put "connecte" to display it only if the visitor is connected, "deconnecte" in the opposite case, put "admin" if the author is administrator or leave blank to always display it)', + 'entree_suivant_connexion_connecte' => 'only if connected', + 'entree_suivant_connexion_deconnecte' => 'only if disconnected', + 'entree_sur_n_articles' => '@n@ article(s) shown', + 'entree_sur_n_mots' => '@n@ keyword(s) shown', + 'entree_sur_n_niveaux' => 'On @n@ level(s)', + 'entree_titre' => 'Title', + 'entree_titre_connecter' => 'The title for accessing the identification form', + 'entree_titre_prive' => 'The title for accessing the private zone', + 'entree_traduction_articles_rubriques' => 'If possible, show the articles of the section in the language of the context (put "trad" for this)', + 'entree_traduction_objet' => 'For an article, select the translation depending on the context (insert "trad" to accomplish this)', + 'entree_tri_alpha' => 'Sort criterion of the sections (alphabetical). If you type "date", the added criterion will be {par date} (by date) and the sections will be sorted by date', + 'entree_tri_alpha_articles' => 'Sort criterion of the articles (alphabetical). If you type "date", the added criterion will be {par date} and the article will be sorted by date', + 'entree_tri_alpha_articles_inverse' => 'Reverse the sorting alphabetically? (put "oui" for this)', + 'entree_tri_alpha_inverse' => 'Reverse the alphabetical sorting? (put "oui" for this)', + 'entree_tri_num' => 'Sort criterion of the sections (digital). If you type "titre" (title), the added criterion will be {par num titre} and the sections will be number of the titles', + 'entree_tri_num_articles' => 'Sort criterion of the articles (digital). If you type "titre" (title), the added criterion will be {par num titre} and the articles will be sorted by number of title', + 'entree_tri_num_articles_inverse' => 'Reverse the digital sort order? (put "oui" for this)', + 'entree_tri_num_inverse' => 'Reverse the digital sort order? (put "oui" for this)', + 'entree_type_objet' => 'Object type', + 'entree_url' => 'URL', + 'entree_url_public' => 'Return address after logging in', + 'erreur_aucun_type' => 'No item type was found.', + 'erreur_autorisation' => 'You are not allowed to modify menus.', + 'erreur_identifiant_deja' => 'This identifier is already used by another menu.', + 'erreur_identifiant_forme' => 'Identifier must contain only letters, digits or underscores.', + 'erreur_menu_inexistant' => 'Menu number @id@ doesn\'t exist.', + 'erreur_mise_a_jour' => 'An error occured during database update.', + 'erreur_parametres' => 'There is an error in the parameters of the page', + 'erreur_type_menu' => 'You need to choose a type of menu', + 'erreur_type_menu_inexistant' => 'This kind of menu is not / no longer available', + + // F + 'formulaire_ajouter_entree' => 'Add a menu item', + 'formulaire_ajouter_sous_menu' => 'Create a sub-menu', + 'formulaire_css' => 'CSS classes', + 'formulaire_css_explication' => 'You can add to your menu additional CSS classes.', + 'formulaire_deplacer_bas' => 'Move down', + 'formulaire_deplacer_haut' => 'Move up', + 'formulaire_facultatif' => 'Optional', + 'formulaire_identifiant' => 'Identifier', + 'formulaire_identifiant_explication' => 'Give a unique keyword which let you call your menu easly.', + 'formulaire_ieconfig_choisir_menus_a_importer' => 'Select which menu(s) you would like to import.', + 'formulaire_ieconfig_importer' => 'Import', + 'formulaire_ieconfig_menu_meme_identifiant' => 'WARNING: there is already a menu with the same name on your site!', + 'formulaire_ieconfig_menus_a_exporter' => 'Menus to export:', + 'formulaire_ieconfig_ne_pas_importer' => 'Do not import', + 'formulaire_ieconfig_remplacer' => 'Overwrite the current menu with the imported menu', + 'formulaire_ieconfig_renommer' => 'Rename this menu before importing', + 'formulaire_importer' => 'Import menu', + 'formulaire_importer_explication' => 'If you exported a menu in a file, you can import now.', + 'formulaire_modifier_entree' => 'Modify this menu item', + 'formulaire_modifier_menu' => 'Modify menu:', + 'formulaire_nouveau' => 'New menu', + 'formulaire_partie_construction' => 'Menu construction', + 'formulaire_partie_identification' => 'Menu identification', + 'formulaire_supprimer_entree' => 'Delete this menu item', + 'formulaire_supprimer_menu' => 'Delete the menu', + 'formulaire_supprimer_sous_menu' => 'Delete this sub-menu', + 'formulaire_titre' => 'Title', + + // I + 'info_afficher_articles' => 'The articles will be included in the menu.', + 'info_articles_max' => 'Only if the section contains more than @max@ articles', + 'info_articles_max_affiches' => 'Display limited to @max@ articles', + 'info_classe_parent' => 'Class of the parent elements:', + 'info_connexion_obligatoire' => 'Connection required', + 'info_deconnexion_obligatoire' => 'Only when disconnected', + 'info_masquer_articles_uniques' => 'Unique articles hidden', + 'info_numero_menu' => 'MENU NUMBER:', + 'info_page_speciale' => 'Link to the page « @page@ »', + 'info_page_speciale_zajax' => 'Modalbox for the "@page@" page for the "@bloc@" block', + 'info_rubrique_courante' => 'Current section', + 'info_rubriques_exclues' => ' / except section(s) @id_rubriques@', + 'info_rubriques_max_affichees' => 'Display limited to @max@ sections', + 'info_secteur_exclus' => ' / except sector(s) @id_secteur@', + 'info_sousrub_cond' => 'Only the subsections of the current section are displayed.', + 'info_tous_groupes_mots' => 'All keyword groups', + 'info_traduction_recuperee' => 'The context will determine the selected translation', + 'info_tri' => 'Sort sections:', + 'info_tri_alpha' => '(alphabetical)', + 'info_tri_articles' => 'Sort articles:', + 'info_tri_num' => '(numerical)', + + // N + 'noisette_description' => 'Insert a menu defined with the Menus plugin.', + 'noisette_label_afficher_titre_menu' => 'Show the menu title?', + 'noisette_label_identifiant' => 'Menu to display:', + 'noisette_nom_noisette' => 'Menu', + 'nom_menu_accueil' => 'Home Page', + 'nom_menu_articles_rubrique' => 'Articles of a section', + 'nom_menu_deconnecter' => 'Disconnect', + 'nom_menu_espace_prive' => 'Login / link to the private zone', + 'nom_menu_groupes_mots' => 'Keywords and Articles of a group of keywords', + 'nom_menu_lien' => 'Individual link', + 'nom_menu_mapage' => 'My page', + 'nom_menu_mots' => 'Articles of a keyword', + 'nom_menu_objet' => 'Article, section or other SPIP object', + 'nom_menu_page_speciale' => 'Link to a page template', + 'nom_menu_page_speciale_zajax' => 'A block in a Zpip page', + 'nom_menu_rubriques_completes' => 'List or tree of sections and articles (with many options)', + 'nom_menu_rubriques_evenements' => 'Section-related events', + 'nom_menu_secteurlangue' => 'Language sectors', + 'nom_menu_texte_libre' => 'Free text', + + // T + 'tous_les_articles' => '... All articles', + 'toutes_les_rubriques' => '... All sections' +); + +?> diff --git a/www/plugins/menus_1/lang/menus_es.php b/www/plugins/menus_1/lang/menus_es.php new file mode 100644 index 0000000..dbcaca0 --- /dev/null +++ b/www/plugins/menus_1/lang/menus_es.php @@ -0,0 +1,174 @@ + '¿Quiere realmente eliminar esta entrada?', + + // D + 'description_menu_accueil' => 'Enlace a la portada del sitio.', + 'description_menu_articles_rubrique' => 'Muestra una lista de artículos de una sección.', + 'description_menu_deconnecter' => 'Si el visitante se conecta, se añade una entrada que propone la desconexión.', + 'description_menu_espace_prive' => 'Enlace para conectarse al sitio si no está ya conectado, y luego ir a la zona privada, si se tiene autorización.', + 'description_menu_groupes_mots' => 'Muestra automáticamente un menú con las palabras del grupo y artículos relacionados. De manera predeterminada, muestra la lista de frases y palabras. Si un esqueleto groupes_mots.html existe, el enlace con el grupo es utilizado.', + 'description_menu_lien' => 'Añade un enlace arbitrario interno (URL relativa) o externo (http://...).', + 'description_menu_mapage' => 'Si el visitante se conecta, añade un enlace a su página de autor.', + 'description_menu_mots' => 'Muestra automáticamente un menú que enumera los artículos relacionados con la palabra clave.', + 'description_menu_objet' => 'Crea un enlace a un objeto de SPIP: artículo, sección u otro. De manera predeterminada, la entrada será el título del objeto.', + 'description_menu_page_speciale' => 'Añade un enlace a un esqueleto página accesible para una url del tipo spip.php?page=nom¶m1=xx¶m2=yyy... Estas páginas se proporcionan a menudo por los plugins.', + 'description_menu_page_speciale_zajax' => 'Añadir un enlace a un bloque de una página accesible por una url del tipo spip.php?page=nom¶m1=xx¶m2=yyy... Esto requiere un esqueleto de tipo Z y el plugin Mediabox.', + 'description_menu_rubriques_articles' => 'Muestra una lista de secciones y, si se quiere, subsecciones y artículos en varios niveles. De manera predeterminada, muestra todas las secciones de la raíz, ordenados por título (en orden alfabético y numérico). Los artículos se colocan automáticamente después de las secciones.', + 'description_menu_rubriques_completes' => 'Muestra una lista de secciones y, si se quiere, las subsecciones en varios niveles. Por defecto, muestra todas las secciones desde la raíz, ordenadas por título (numéricamente, y luego alfabéticamente).', + 'description_menu_secteurlangue' => 'Esta entrada es específica de los sitios que utilizan un sector para cada idioma. Se muestra automáticamente un menú con las secciones de la zona correspondiente al idioma de la página y, si se quiere, las sub-secciones en varios niveles. De manera predeterminada, muestra todas las secciones de la raíz, ordenados por título (en orden alfabético y numérico).', + 'description_menu_texte_libre' => 'Simplemente el texto que deseas, o un código de idiomas SPIP (<:...:>)', + + // E + 'editer_menus_editer' => 'Modificar el menú', + 'editer_menus_explication' => 'Crear y configurar aquí los menús de su sitio', + 'editer_menus_exporter' => 'Exportar el menú', + 'editer_menus_nouveau' => 'Crear un nuevo menú', + 'editer_menus_titre' => 'Menús del sitio', + 'entree_afficher_articles' => 'Incluir los artículos en en el menú  ? (escribe "oui" para para que ocurra)', + 'entree_afficher_item_suite' => 'Incluir los artículos en el menu ? (escribe "oui" para esto)', + 'entree_articles_max' => 'Si es así, ¿ver los artículos sólo si la sección contiene como máximo xx artículos? (indicar el máximo número de artículos, o bien dejar en blanco para mostrar todos los artículos)', + 'entree_articles_max_affiches' => 'Si es así, ¿limitar el número de artículos listados en xx máximo (seguidos de un ítem "... Todos los artículos", con un enlace a la sección padre)? (Indique el número máximo de artículos, dejar en blanco para mostrar todos los artículos)', + 'entree_aucun' => 'Ninguno', + 'entree_bloc' => 'Bloquear Zpip', + 'entree_choisir' => 'Seleccione el tipo de entrada que desea añadir:', + 'entree_classe_parent' => 'Clase de vínculos de elementos primarios. Esta clase se añadirá a li>a asociados a ul/li. Por ejemplo, si escribe "papá", lo que le permite utilizar el plugin "menu deroulant 2" para este menú.', + 'entree_connexion_objet' => 'Obligar a estar conectado (poner "session") o desconectado (poner "nosession") para ver el objeto', + 'entree_contenu' => 'Contenido', + 'entree_css' => 'Clases css de la entrada (contenedor)', + 'entree_css_lien' => 'Clases CSS del link', + 'entree_id_groupe' => 'Número del grupo de palabras clave', + 'entree_id_mot' => 'Número de palabra clave', + 'entree_id_objet' => 'Número', + 'entree_id_rubrique' => 'Número de la sección padre', + 'entree_id_rubrique_ou_courante' => 'Número de la sección madre o "corriente" si la sección padre es la sección corriente del contexto', + 'entree_id_rubriques_exclues' => 'Números de secciones a excluir, separadas por coma', + 'entree_id_secteur_exclus' => 'Números de sectores a excluir, separados por coma', + 'entree_infini' => 'Al infinito', + 'entree_mapage' => 'Mi página personal', + 'entree_masquer_articles_uniques' => 'Si es así y si una sección contiene un solo elemento, se esconde? (Poner "oui" para esto)', + 'entree_niveau' => 'Niveles de sub-secciones', + 'entree_nombre_articles' => 'Número de artículos como máximo (0 por defecto)', + 'entree_page' => 'Nombre de la página', + 'entree_parametres' => 'Lista de parámetros', + 'entree_rubriques_max_affichees' => 'Si es así, limitar el número de secciones listadas a xx máximo (seguido por una entrada "... Todos las secciones" con un enlace a la sección padre)? (Especifique el número máximo de secciones, dejar en blanco para mostrarlas todas)', + 'entree_sousrub_cond' => 'Mostrar sólo subcategorías de la sección actual (poner "oui", de lo contrario dejar en blanco)', + 'entree_suivant_connexion' => 'Restringir esta entrada según el estado de conexión (poner "connecte" para mostrar sólo si el visitante está conectado, "deconnecte" para el caso contrario, poner "admin" si el autor es administrador o dejar en blanco para mostrar siempre)', + 'entree_suivant_connexion_connecte' => 'sólo si conectado', + 'entree_suivant_connexion_deconnecte' => 'sólo si desconectado', + 'entree_sur_n_articles' => '@n@ artículo(s) mostrado(s)', + 'entree_sur_n_mots' => '@n@ palabra(s) mostrada(s)', + 'entree_sur_n_niveaux' => 'En @n@ nivel(es)', + 'entree_titre' => 'Título', + 'entree_titre_connecter' => 'Título para acceder al formulario de identificación', + 'entree_titre_prive' => 'Título para acceder al espacio privado', + 'entree_traduction_articles_rubriques' => 'Siempre que sea posible, ver los artículos en la categoría en el idioma del contexto (poner "trad" para esto)', + 'entree_traduction_objet' => 'En el caso de un artículo, seleccione la traducción en función del contexto (poner "trad" para esto)', + 'entree_tri_alpha' => 'Criterio de orden de secciones (alfabético). Si escribe "date", el criterio será {par date} y los artículos serán ordenados por fecha', + 'entree_tri_alpha_articles' => 'Criterio de orden de los artículos (alfabético). Si escribe "date", el criterio será {par date} y los artículos serán ordenados por fecha', + 'entree_tri_alpha_articles_inverse' => 'Invertir el criterio de orden alfabético ? (poner "oui" para esto)', + 'entree_tri_alpha_inverse' => 'Invertir el criterio de orden alfabético? (poner "oui" para esto)', + 'entree_tri_num' => 'Criterio de orden de las secciones (numérico). Si escribe "titre", el criterio será {par num titre} y las secciones serán ordenados por fecha', + 'entree_tri_num_articles' => 'Criterio de orden de los artículos (numérico). Si escribe "titre", el criterio será {par num titre} y los artículos serán ordenados por fecha', + 'entree_tri_num_articles_inverse' => '¿Invertir el criterio de orden numérico ? (poner "oui" poara esto)', + 'entree_tri_num_inverse' => '¿Invertir el criterio de orden numérico ? (poner "oui" poara esto)', + 'entree_type_objet' => 'Tipo de objeto', + 'entree_url' => 'Dirección', + 'entree_url_public' => 'Dirección de retorno luego de la conexión', + 'erreur_aucun_type' => 'Ningún tipo de entrada se encontró.', + 'erreur_autorisation' => 'No estás autorizado a modificar los menús.', + 'erreur_identifiant_deja' => 'Este identificador ya es utilizado por un menú.', + 'erreur_identifiant_forme' => 'El identificador debe contener sólo letras, números o guión bajo.', + 'erreur_menu_inexistant' => 'El menú con numéro @id@ solicitado no existe.', + 'erreur_mise_a_jour' => 'Se produjo un error durante la actualización de la base de datos.', + 'erreur_parametres' => 'Hubo un error en los parámetros de la página', + 'erreur_type_menu' => 'Debes elegir un tipo de menú', + 'erreur_type_menu_inexistant' => 'Este tipo de menu no está, o ya no está disponible', + + // F + 'formulaire_ajouter_entree' => 'Añadir una entrada', + 'formulaire_ajouter_sous_menu' => 'Crear un submenú', + 'formulaire_css' => 'Clases CSS', + 'formulaire_css_explication' => 'Puedes agregar al menú eventuales clases CSS suplementarias.', + 'formulaire_deplacer_bas' => 'Bajar', + 'formulaire_deplacer_haut' => 'Subir', + 'formulaire_facultatif' => 'Opcional', + 'formulaire_identifiant' => 'Identificador', + 'formulaire_identifiant_explication' => 'Indique una palabra clave única que le permita nombrar a su menú fácilmente.', + 'formulaire_ieconfig_choisir_menus_a_importer' => 'Elija el(los) menú(s) que desea importar.', + 'formulaire_ieconfig_importer' => 'Importar', + 'formulaire_ieconfig_menu_meme_identifiant' => 'ATENCION : un menú con el mismo identificador ya existe en tu sitio !', + 'formulaire_ieconfig_menus_a_exporter' => 'Menús a exportar :', + 'formulaire_ieconfig_ne_pas_importer' => 'No importar', + 'formulaire_ieconfig_remplacer' => 'Reemplazar el menú actual por el menú importado', + 'formulaire_ieconfig_renommer' => 'Renombrar el menú antes de importar', + 'formulaire_importer' => 'Importar un menú', + 'formulaire_importer_explication' => 'Si ha exportado un menú en un archivo, puede importarlo ahora.', + 'formulaire_modifier_entree' => 'Modificar esta entrada', + 'formulaire_modifier_menu' => 'Modificar el menú :', + 'formulaire_nouveau' => 'Nuevo menú', + 'formulaire_partie_construction' => 'Construcción del menú', + 'formulaire_partie_identification' => 'Identificación del menú', + 'formulaire_supprimer_entree' => 'Eliminar esta entrada', + 'formulaire_supprimer_menu' => 'Eliminar el menú', + 'formulaire_supprimer_sous_menu' => 'Eliminar el submenú', + 'formulaire_titre' => 'Título', + + // I + 'info_afficher_articles' => 'Los artículos serán incluídos en el menú', + 'info_articles_max' => 'Sólo si la sección contiene como máximo @max@ artículos', + 'info_articles_max_affiches' => 'Visualización limitada a un máximo de @max@ artículos', + 'info_classe_parent' => 'Clase de elementos padre : ', + 'info_connexion_obligatoire' => 'Conexión obligatoria', + 'info_deconnexion_obligatoire' => 'Únicamente desconectado', + 'info_masquer_articles_uniques' => 'Artículos únicos ocultos', + 'info_numero_menu' => 'MENU NÚMERO :', + 'info_page_speciale' => 'Link a la página « @page@ »', + 'info_page_speciale_zajax' => 'Modalbox de la página «@page@» para el bloque «@bloc@» ', + 'info_rubrique_courante' => 'Sección en curso', + 'info_rubriques_exclues' => ' / salvo la(s) sección(es) @id_rubriques@', + 'info_rubriques_max_affichees' => 'Limitado a @max@ secciones', + 'info_secteur_exclus' => ' / salvo el/los sector(es) @id_secteur@', + 'info_sousrub_cond' => 'Sólo las subsecciones de las secciones que se muestran.', + 'info_tous_groupes_mots' => 'Todos los grupos de palabras', + 'info_traduction_recuperee' => 'El contexto decidirá la traducción elegida', + 'info_tri' => 'Orden de secciones:', + 'info_tri_alpha' => '(alfabético)', + 'info_tri_articles' => 'Orden de artículos :', + 'info_tri_num' => '(numérico)', + + // N + 'noisette_description' => 'Inserta un menú definido con el plugin Menús', + 'noisette_label_afficher_titre_menu' => 'Mostrar el título del menú ?', + 'noisette_label_identifiant' => 'Menú a mostrar  :', + 'noisette_nom_noisette' => 'Menú', + 'nom_menu_accueil' => 'Inicio', + 'nom_menu_articles_rubrique' => 'Artículos de una sección', + 'nom_menu_deconnecter' => 'Desconectarse', + 'nom_menu_espace_prive' => 'Conectarse / link al espacio privado', + 'nom_menu_groupes_mots' => 'Palabras claves y artículos de un grupo de palabras clave', + 'nom_menu_lien' => 'Link arbitrario', + 'nom_menu_mapage' => 'Mi página', + 'nom_menu_mots' => 'Artículos de una palabra clave', + 'nom_menu_objet' => 'Artículo, sección u otro objeto de SPIP', + 'nom_menu_page_speciale' => 'Link a un esqueleto de página', + 'nom_menu_page_speciale_zajax' => 'Un bloque de una página Zpip', + 'nom_menu_rubriques_completes' => 'Lista o arborescencia de secciones y de artículos (con varias opciones)', + 'nom_menu_rubriques_evenements' => 'Eventos de secciones', + 'nom_menu_secteurlangue' => 'Sectores de idioma', + 'nom_menu_texte_libre' => 'Texto libre', + + // T + 'tous_les_articles' => '... Todos los artículos', + 'toutes_les_rubriques' => '... Todas las secciones' +); + +?> diff --git a/www/plugins/menus_1/lang/menus_fa.php b/www/plugins/menus_1/lang/menus_fa.php new file mode 100644 index 0000000..6b9a8b5 --- /dev/null +++ b/www/plugins/menus_1/lang/menus_fa.php @@ -0,0 +1,190 @@ + 'واقعاً مي‌خواهيد اين مدخل را حذف كنيد؟', + + // D + 'description_menu_accueil' => 'پيوند به صفحه‌ي پذيرش سايت.', + 'description_menu_articles_rubrique' => 'نمايش فهرست مقالات يك بخش ', + 'description_menu_deconnecter' => 'اگر بازديد كننده وصل شد، يك مدخل اضافه كنيد تا قطع شدن را به او ارايه دهد.', + 'description_menu_espace_prive' => 'پيوندي كه ارتباط با سايت را فعال مي‌كند در صورتي كه قبلاً به سايت وصل نشده باشيد، و بعد وارد قسمت شخصي سايت شويد البته اگر مجاز باشيد. ', + 'description_menu_groupes_mots' => 'به طور خودكار گروه‌واژه‌ها و مقالات مرتبط با آن‌ها را فهرست مي‌كند. اين فهرست به صورت پيش‌ گزيده گروه‌‌واژه‌ها و كليدواژه‌هاي تحت آن‌ها را نشان مي‌دهد. اگر اسكلت يك groupes_mots.html وجود داشته باشد، پيوند به آن گروه‌واژه فعال مي‌شود. ', + 'description_menu_lien' => 'افزودن يك پيوند فرداً تعيين شده، هم دروني (يوآرال نسبي) و هم بروني (http://...)', + 'description_menu_mapage' => 'اگر بازديد‌كننده متصل است، يك پيوند به صفحه‌ي نويسنده‌‌‌اش اضافه كن.', + 'description_menu_mots' => 'خودكار يك منوي فهرست تمام مقالات مرتبط با كليدواژه را نشان بده.', + 'description_menu_objet' => 'ايجاد پيوند به چيزهاي اسپيپي: مقاله، بخش يا چيزهاي ديگر. پيش‌گزيده، هر مدخل تيتر آن چيز را داراست.', + 'description_menu_page_speciale' => 'افزودن پيوند به صفحه‌ي اسكلت با استفاده از يوآرال اين فرم spip.php?page=nom¶m1=xx¶m2=yyy.... چنين صفحه‌هايي اغلب توسط پلاگين‌ها استفاده مي‌شوند. ', + 'description_menu_page_speciale_zajax' => 'افزودن يك پيوند به يك بلوك در صفحه‌اي قابل دسترس به وسيله‌ي يك يوآرال از نوع spip.php?page=nom¶m1=xx¶m2=yyy.... اين مستلزم يك استكلت نوع z و يك پلاگين médiabox خواهد بود. ', + 'description_menu_rubriques_articles' => 'نمايش يك فهرست از بخش‌ها، و اگر مي‌خواهيد، زيربخش‌ها و مقاله‌ها در چندين سطح. +به صورت پيش‌گزيده، نمايش تمام بخش‌ها ريشه، مرتب شده بر اساس تيتر(شماره‌اي و بعد الفبايي). مقاله‌ها به طور نظام‌مند بعد از بخش‌ها قرار مي‌گيرند. +', + 'description_menu_rubriques_completes' => 'Affiche une liste de rubriques et, si on veut, les sous-rubriques sur plusieurs niveaux. Par défaut, affiche toutes les rubriques depuis la racine, triées par titre (numériquement puis alphabétiquement).', # NEW + 'description_menu_secteurlangue' => 'اين مدخل به سايت‌هايي اختصاص دارد كه يك بخش براي زبان دارند. اين مدخل به صورت خودكار منيويي را نشان مي‌دهد كه بخش‌ها آن قسمت منطبق با آن زبان و صفحه، و اگر بخواهند زيربخش‌ها را تا چندين سطح، را فهرست مي‌كنند. به صورت پيش‌گزيده، تمام بخش‌هاي عد از ريشه را، به ترتيب تيتر (طبق شماره و بعد طبق الفا) نشان مي‌دهد. +', + 'description_menu_texte_libre' => 'فقط متني كه دوست داريد، يا يك كد زباني اسپيپ (<:...:>)', + + // E + 'editer_menus_editer' => 'اصلاح اين منيو', + 'editer_menus_explication' => 'منيوهاي سايتتان را اينجا ايجاد و پيكربندي كنيد.', + 'editer_menus_exporter' => 'صادر سازي اين منيو', + 'editer_menus_nouveau' => 'ايجاد يك منيوي جديد', + 'editer_menus_titre' => 'منيوهاي سايت', + 'entree_afficher_articles' => 'مقاله‌ها در منيو‌ گنجانده شود؟ (براي اين بگذاريد «بله»)', + 'entree_afficher_item_suite' => 'گنجاندن مقاله‌ها در منيو؟ (براي اين بگذاريد «بله»)', + 'entree_articles_max' => 'اگر بله، نمايش مقاله‌ها فقط اگر بخش شامل حداكثر ايكس ايكس مقاله است؟ (عدد مربوط به حداكثر مقاله را بگذاريد، براي نمايش تمام مقاله‌ها، خالي بگذاريد) +', + 'entree_articles_max_affiches' => 'در اين صورت، تعداد مقاله‌هاي فهرست شده تا حداكثر xx محدود شود(بعد از يك فقره «...تمام مقاله‌ها» با يك لينك به بخش‌ والد)؟ (تعداد حداكثر مقاله‌ها را مشخص كنيد ، يا خالي بگذاريد تا تمام مقاله‌ها نشان داده شوند) +', + 'entree_aucun' => 'هيچي', + 'entree_bloc' => 'بلاك ازپيپ (Bloc Zpip)', + 'entree_choisir' => 'نوع مدخلي را كه مي‌خواهيد اضافه كنيد انتخاب نماييد.', + 'entree_classe_parent' => 'طبقه‌ي پيوند‌هاي عناصر والد. اين طبقه دو باره به li>داراي پيامد ul / lاضافه خواهد كرد. +به عنوان نمونه، اگر شما «ددي» را تايپ كنيد، اين به شما اجازه مي‌دهد تا پلاگين« منيو طوماري 2»» را براي فرمت بخشي به منيو مورد استفاده قرار دهيد. +', + 'entree_connexion_objet' => 'براي ديدن اوبژه وصل بودن («session»وارد كنيد) يا قطع بودن («nosession»وارد كنيد) لازم است', + 'entree_contenu' => 'محتوا', + 'entree_css' => 'كلاش‌هاي سي.اس.اس (حامل) مدخل', + 'entree_css_lien' => 'كلاس‌هاي سي.اس.اس پيوند', + 'entree_id_groupe' => 'تعداد گروه واژه‌ها', + 'entree_id_mot' => 'تعداد كليدواژه‌ها', + 'entree_id_objet' => 'تعداد', + 'entree_id_rubrique' => 'تعداد بخش‌هاي والد', + 'entree_id_rubrique_ou_courante' => 'تعداد بخش‌ والد يا «فعلي» اگر بخش‌ والد در متن بخش فعلي باشد.', + 'entree_id_rubriques_exclues' => 'تعداد بخش‌ها براي كنارگذاري، جداشده با ويرگول', + 'entree_id_secteur_exclus' => 'تعداد بخش‌ها براي داخل‌ گذاري، جداشده با ويرگول', + 'entree_infini' => 'تا بي‌نهايت', + 'entree_mapage' => 'صفحه‌ي شخصي من', + 'entree_masquer_articles_uniques' => 'در اين صورت و اگر يك بخش فقط يك مقاله دارد، آن را مخفي كند؟ (براي اين كار بگذاريد «بله»)', + 'entree_niveau' => 'سطح زيربخش‌ها', + 'entree_nombre_articles' => 'تعداد حداكثر مقاله‌ها (پيش گزيده صفر)', + 'entree_page' => 'نام صفحه', + 'entree_parametres' => 'فهرست پارامترها', + 'entree_rubriques_max_affichees' => 'در اين صورت، تعداد بخش‌هاي فهرست شده تا حداكثر xx محدود شئذ (در پي فقره‌‌ي . . . «تمام بخش‌ها» با پيوند به بخش والد)؟ +(حداكثر تعداد بخش‌ها را تعيين كنيد، براي نشان دادن تمام آن‌ها خالي بگذاريد) +', + 'entree_sousrub_cond' => 'فقط نمايش زيربخش‌هاي بخش فعلي (بگذاريد «بله»، در غيراينصورت خالي بگذاريد)', + 'entree_suivant_connexion' => 'منحصر سازي مدخل بعدي به اتصال (بگذاريد «اتصال» براي نمايش فقط اگر بازديد كننده متصل باشد، بگذاريد «قطع» براي مورد عكس، يا خالي بگذاريد تا هميشه نشان داده شود). +', # MODIF + 'entree_suivant_connexion_connecte' => 'فقط اگر متصل باشد', + 'entree_suivant_connexion_deconnecte' => 'فقط اگر قطع باشد', + 'entree_sur_n_articles' => '@n@ مقاله‌ي منتشره', + 'entree_sur_n_mots' => '@n@ كلمه‌هاي منتشره ', + 'entree_sur_n_niveaux' => 'تحت @n@ سطح', + 'entree_titre' => 'تيتر', + 'entree_titre_connecter' => 'تيتر براي دستيابي به فرم شناسايي', + 'entree_titre_prive' => 'تيتر براي دسترسي به قسمت شخصي', + 'entree_traduction_articles_rubriques' => 'در صورت امكان، نمايش مقاله‌هاي اين بخش به زبان متن («ترجمه» (trad) را براي اينكار بگذاريد)', + 'entree_traduction_objet' => 'در مور مقاله، ترجمه را در ارتباط با آن متن انتخاب كنيد (براي آن trad را بگذاريد)', + 'entree_tri_alpha' => ' معيار مرتب كردن بخش‌ها (الفبايي). اگر «تاريخ»"date" را تايپ كنيد، معيار اضافه شده (طبق تاريخ)‌ {par date}خواهد بدو بخش‌ها طبق ترايخ مرتب خواهند شد +', + 'entree_tri_alpha_articles' => 'مرتب‌ سازي معيارهاي مقاله‌ها (الفبايي). اگر «تاريخ» را تايپ كنيد، معيار افزوده شده {طبق تاريخ}خواهد بودو مقاله بر اساس تاريخ مرتب خواهد شد + +', + 'entree_tri_alpha_articles_inverse' => 'معكس سازي مرتب‌سازي الفبايي؟ («بله» را براي آن بگذاريد)', + 'entree_tri_alpha_inverse' => 'معكوس سازي مرتب‌سازي الفبايي؟ (براي آن «بله» بگذاريد)', + 'entree_tri_num' => 'معيار مرتب كردن بخش‌ها (رقم). اگر «تيتر» را تايپ كنيد، معيار افزوده شده (طبق تيتر) {par num titre}خواهد بود و بخش‌ها بر اساس شماره تيتر‌ها مرتب خواهند شد +', + 'entree_tri_num_articles' => 'مرتب‌سازي مقاله‌ها (شماره‌اي). اگر «تيتر» را تايپ كنيد، معيار افزوده شده {طبق تيتر} خواهد بود و مقاله‌ها طبق شماره‌ي تيتر مرتب خواهند شد', + 'entree_tri_num_articles_inverse' => 'معكوس سازي مرتب‌سازي بخش‌؟ (براي آن «بله» بگذاريد)', + 'entree_tri_num_inverse' => 'معكوس سازي مرتب‌سازي شماره‌اي؟ (براي آن «بله» بگذاريد)', + 'entree_type_objet' => 'نوع اوبژه', + 'entree_url' => 'نشاني (يو.آر.ال) سايت شما', + 'entree_url_public' => 'نشاني بازگشت بعد از اتصال ', + 'erreur_aucun_type' => 'هيچ نوع مدخلي يافت نشد.', + 'erreur_autorisation' => 'شما مجاز به اصلاح منيوي سايت نيستيد.', + 'erreur_identifiant_deja' => 'از اين شناسه يك منيوي ديگر استفاده مي‌كند', + 'erreur_identifiant_forme' => 'شناسه بايد فقط از حروف، رقم، و خط‌ زير تركيب شده باشد.', + 'erreur_menu_inexistant' => 'منيوي درخواستي شماره @id@ موجود نيست.', + 'erreur_mise_a_jour' => 'هنگام به هنگام سازي پايگاه داده‌ها خطايي رخ داده است.', + 'erreur_parametres' => 'در پارامتر‌هاي صفحه خطايي وجود دارد', + 'erreur_type_menu' => 'بايد نوعي از منيو را انتخاب كنيد', + 'erreur_type_menu_inexistant' => 'اين نوع مينو فعلا/ديگر در دسترس نيست', + + // F + 'formulaire_ajouter_entree' => 'يك مدخل اضافه كنيد', + 'formulaire_ajouter_sous_menu' => 'ايجاد يك زيرمنيو', + 'formulaire_css' => 'سي.اس.اس طبقات', + 'formulaire_css_explication' => 'مي‌توانيد به منيوي خود طبقات سي.اس.اس تكميلي اضافه كنيد.', + 'formulaire_deplacer_bas' => 'حركت به پائين', + 'formulaire_deplacer_haut' => 'حركت به بالا', + 'formulaire_facultatif' => 'دلبخواهي ', + 'formulaire_identifiant' => 'شناسه', + 'formulaire_identifiant_explication' => 'يك كليدواژه‌ي منحصر به فرد بدهيد تا بتوانيد منيوي خود را به راحتي فرابخوانيد.', + 'formulaire_ieconfig_choisir_menus_a_importer' => 'منيو‌هايي را كه مي‌خواهيد صادر كنيد انخاب كنيد', + 'formulaire_ieconfig_importer' => 'واردات', + 'formulaire_ieconfig_menu_meme_identifiant' => 'توجه: يك منيو با همين شناسه در سايت شما موجود است!', + 'formulaire_ieconfig_menus_a_exporter' => 'منيو‌هاي صادراتي:', + 'formulaire_ieconfig_ne_pas_importer' => 'وارد نكردن', + 'formulaire_ieconfig_remplacer' => 'جايگزين سازي منيوي موجود با منوي وارداتي', + 'formulaire_ieconfig_renommer' => 'تجديد نام اين منيو پيش از واردات', + 'formulaire_importer' => 'واردسازي يك منيو', + 'formulaire_importer_explication' => 'اگر يك منيو را داخل يك پرونده صادر كرده باشيد، مي‌توانيد آن را اكنون وارد كنيد.', + 'formulaire_modifier_entree' => 'اصلاح اين مدخل', + 'formulaire_modifier_menu' => 'اصلاح منيو:', + 'formulaire_nouveau' => 'منيوي جديد', + 'formulaire_partie_construction' => 'ساخت منيو', + 'formulaire_partie_identification' => 'شناسه‌ي منيو', + 'formulaire_supprimer_entree' => 'حذف اين مدخل + +', + 'formulaire_supprimer_menu' => 'حذف منيو', + 'formulaire_supprimer_sous_menu' => 'حذف اين زيرمنيو', + 'formulaire_titre' => 'تيتر', + + // I + 'info_afficher_articles' => 'مقاله‌ها در منيو گنجانده خواهند شد', + 'info_articles_max' => 'فقط اگر بخش بيش از @max@مقاله داشته باشد', + 'info_articles_max_affiches' => 'نمايش محدود به @max@ مقاله ', + 'info_classe_parent' => 'طبقه‌ي عناصر والد‌:', + 'info_connexion_obligatoire' => 'اتصال اجباري', + 'info_deconnexion_obligatoire' => 'فقط هنگام قطعي', + 'info_masquer_articles_uniques' => 'منحصراً مقاله‌هاي پنهان', + 'info_numero_menu' => 'منيوي شماره‌ي: ', + 'info_page_speciale' => 'پيوند به صفحه‌ي «@page@»', + 'info_page_speciale_zajax' => 'مدال باكس صفحه‌ي «@page@» براي بلوك «@bloc@» ', + 'info_rubrique_courante' => 'بخش فعلي', + 'info_rubriques_exclues' => '/به جز بخش‌(هاي)@id_rubriques@ ', + 'info_rubriques_max_affichees' => 'نمايش محدود به @max@ بخش‌ها', + 'info_secteur_exclus' => '/به جز بخ‌ش (هاي) @id_secteur@', + 'info_sousrub_cond' => 'فقط زيربخش‌هاي بخش‌هاي فعلي نمايش داده مي‌شوند.', + 'info_tous_groupes_mots' => 'تمام گروه‌ واژه‌ها', + 'info_traduction_recuperee' => 'متن ترجمه‌ي منتخب را تعيين خواهد كرد', + 'info_tri' => 'ترتيب بخش‌ها:‌', + 'info_tri_alpha' => '(الفبايي)', + 'info_tri_articles' => 'مرتب‌ سازي مقاله‌ها:', + 'info_tri_num' => '(شماره‌اي)', + + // N + 'noisette_description' => 'گنجاندن منيوي تعريف شده با پلاگين منو‌ها.', + 'noisette_label_afficher_titre_menu' => 'نمايش تيتر منيو؟', + 'noisette_label_identifiant' => 'منيو براي نمايش: ', + 'noisette_nom_noisette' => 'منيو', + 'nom_menu_accueil' => 'پذيرش', + 'nom_menu_articles_rubrique' => 'مقاله‌هاي يك بخش', + 'nom_menu_deconnecter' => 'قطع شدن', + 'nom_menu_espace_prive' => 'اتصال/ پيوند به قسمت شخصي', + 'nom_menu_groupes_mots' => 'كليدواژه‌ها و مقاله‌هاي يك گروه‌ واژه', + 'nom_menu_lien' => 'پيوند دلبخواهي', + 'nom_menu_mapage' => 'صفحه‌ من', + 'nom_menu_mots' => 'مقاله‌هاي يك كليد واژه', + 'nom_menu_objet' => 'مقاله، بخش يا ساير چيزهاي اسپيپي ', + 'nom_menu_page_speciale' => 'پيوند به يك صفحه‌ي اسكلت', + 'nom_menu_page_speciale_zajax' => 'يك بلوك از صفحه‌ي ازپيپ', + 'nom_menu_rubriques_completes' => 'Liste ou arborescence de rubriques et d\'articles (avec beaucoup d\'options)', # NEW + 'nom_menu_rubriques_evenements' => 'برنامه‌هاي مربوط به بخش‌ها', + 'nom_menu_secteurlangue' => 'بخش‌هاي زباني ', + 'nom_menu_texte_libre' => 'متن آزاد', + + // T + 'tous_les_articles' => '...تمام مقاله‌ها', + 'toutes_les_rubriques' => '...تمام بخش‌ها' +); + +?> diff --git a/www/plugins/menus_1/lang/menus_fr.php b/www/plugins/menus_1/lang/menus_fr.php new file mode 100644 index 0000000..66a59d2 --- /dev/null +++ b/www/plugins/menus_1/lang/menus_fr.php @@ -0,0 +1,172 @@ + 'Voulez-vous vraiment supprimer cette entrée ?', + + // D + 'description_menu_accueil' => 'Lien vers la page d\'accueil du site.', + 'description_menu_articles_rubrique' => 'Affiche la liste des articles d\'une rubrique.', + 'description_menu_deconnecter' => 'Si le visiteur est connecté, ajoute une entrée lui proposant la déconnexion.', + 'description_menu_espace_prive' => 'Lien permettant de se connecter au site si on ne l\'est pas déjà, puis d\'aller dans l\'espace privé si l\'on y est autorisé.', + 'description_menu_groupes_mots' => 'Affiche automatiquement un menu listant les mots du groupe et les articles liés. Par défaut, affiche la liste des groupes de mots et les mots liés. Si un squelette groupes_mots.html existe, le lien vers le groupe est utilisé.', + 'description_menu_lien' => 'Ajoute un lien arbitraire, en interne (URL relative) ou externe (http://...).', + 'description_menu_mapage' => 'Si le visiteur est connecté, ajoute un lien vers sa page auteur.', + 'description_menu_mots' => 'Affiche automatiquement un menu listant les articles liés au mot clé.', + 'description_menu_objet' => 'Crée un lien vers un objet de SPIP : article, rubrique ou autre. Par défaut, l\'entrée aura le titre de l\'objet.', + 'description_menu_page_speciale' => 'Ajoute un lien vers un squelette page accessible par une url du type spip.php?page=nom¶m1=xx¶m2=yyy... Ces pages sont souvent fournies par des plugins.', + 'description_menu_page_speciale_zajax' => 'Ajoute un lien vers un bloc d\'une page accessible par une url du type spip.php?page=nom¶m1=xx¶m2=yyy... Ceci nécéssite une squelette de type Z et le plugin médiabox.', + 'description_menu_rubriques_articles' => 'Affiche une liste de rubriques et, si on veut, les sous-rubriques et les articles sur plusieurs niveaux. Par défaut, affiche toutes les rubriques depuis la racine, triées par titre (numériquement puis alphabétiquement). Les articles sont placés systématiquement après les rubriques.', + 'description_menu_rubriques_completes' => 'Affiche une liste de rubriques et, si on veut, les sous-rubriques sur plusieurs niveaux. Par défaut, affiche toutes les rubriques depuis la racine, triées par titre (numériquement puis alphabétiquement).', + 'description_menu_secteurlangue' => 'Cette entrée est spécifique aux sites utilisant un secteur par langue. Elle affiche automatiquement un menu listant les rubriques du secteur correspondant à la langue de la page et, si on veut, les sous-rubriques sur plusieurs niveaux. Par défaut, affiche toutes les rubriques depuis la racine, triées par titre (numériquement puis alphabétiquement).', + 'description_menu_texte_libre' => 'Simplement le texte que vous souhaitez, ou un code de langue SPIP (<:...:>)', + + // E + 'editer_menus_editer' => 'Modifier ce menu', + 'editer_menus_explication' => 'Créez et configurez ici les menus de votre site.', + 'editer_menus_exporter' => 'Exporter ce menu', + 'editer_menus_nouveau' => 'Créer un nouveau menu', + 'editer_menus_titre' => 'Menus du site', + 'entree_afficher_articles' => 'Inclure les articles dans le menu ? (mettre "oui" pour cela)', + 'entree_afficher_item_suite' => 'Inclure les articles dans le menu ? (mettre "oui" pour cela)', + 'entree_articles_max' => 'Si oui, afficher les articles seulement si la rubrique contient au maximum xx articles ? (mettre le nombre maximum d\'articles, laissez vide pour afficher tous les articles)', + 'entree_articles_max_affiches' => 'Si oui, limiter le nombre d\'articles listés à xx maximum (suivis d\'un item "... Tous les articles" comportant un lien vers la rubrique parente) ? (indiquer le nombre maximum d\'articles, laissez vide pour afficher tous les articles)', + 'entree_aucun' => 'Aucun', + 'entree_bloc' => 'Bloc Zpip', + 'entree_choisir' => 'Choisissez le type d\'entrée que vous voulez ajouter :', + 'entree_classe_parent' => 'Classe des liens des éléments parents. Cette classe sera rajoutée aux li>a ayant une suite ul/li. Par exemple, si vous saisissez "daddy", cela vous permet d\'utiliser le plugin menu deroulant 2 pour la mise en forme du menu.', + 'entree_connexion_objet' => 'Obliger à être connecté (mettre "session") ou déconnecté (mettre "nosession") pour voir l\'objet', + 'entree_contenu' => 'Contenu', + 'entree_css' => 'Classes CSS de l\'entrée (du conteneur)', + 'entree_css_lien' => 'Classes CSS du lien', + 'entree_id_groupe' => 'Numéro du groupe de mot clé', + 'entree_id_mot' => 'Numéro du mot clé', + 'entree_id_objet' => 'Numéro', + 'entree_id_rubrique' => 'Numéro de la rubrique parente', + 'entree_id_rubrique_ou_courante' => 'Numéro de la rubrique parente ou "courante" si la rubrique parente est la rubrique courante du contexte', + 'entree_id_rubriques_exclues' => 'Numéros des rubriques à exclure, séparés par des virgules', + 'entree_id_secteur_exclus' => 'Numéros des secteurs à exclure, séparés par des virgules', + 'entree_infini' => 'À l\'infini', + 'entree_mapage' => 'Ma page perso', + 'entree_masquer_articles_uniques' => 'Si oui et si une rubrique contient un seul article, le masquer ? (mettre "oui" pour cela)', + 'entree_niveau' => 'Niveau des sous-rubriques', + 'entree_nombre_articles' => 'Nombre d\'articles au maximum (0 par défaut)', + 'entree_page' => 'Nom de la page', + 'entree_parametres' => 'Liste des paramètres', + 'entree_rubriques_max_affichees' => 'Si oui, limiter le nombre de rubriques listés à xx maximum (suivis d\'un item "... Toutes les rubriques" comportant un lien vers la rubrique parente) ? (indiquer le nombre maximum de rubriques, laissez vide pour afficher toutes les rubriques)', + 'entree_sousrub_cond' => 'N\'afficher que les sous-rubriques de la rubrique en cours (mettre "oui", sinon laisser vide)', + 'entree_suivant_connexion' => 'Restreindre cette entrée suivant la connexion (mettre "connecte" pour afficher seulement si le visiteur est connecté, "deconnecte" pour le cas contraire, mettre "admin" si l\'auteur est administrateur ou laisser vide pour toujours afficher)', + 'entree_suivant_connexion_connecte' => 'seulement si connecté', + 'entree_suivant_connexion_deconnecte' => 'seulement si déconnecté', + 'entree_sur_n_articles' => '@n@ articles affiché(s)', + 'entree_sur_n_mots' => '@n@ mots affiché(s)', + 'entree_sur_n_niveaux' => 'Sur @n@ niveau(x)', + 'entree_titre' => 'Titre', + 'entree_titre_connecter' => 'Titre pour l\'accès au formulaire d\'identification', + 'entree_titre_prive' => 'Titre pour accéder à l\'espace privé', + 'entree_traduction_articles_rubriques' => 'Dans la mesure du possible, afficher les articles de la rubrique dans la langue du contexte (mettre "trad" pour cela)', + 'entree_traduction_objet' => 'Dans le cas d\'un article, choisir la traduction en fonction du contexte (mettre "trad" pour cela)', + 'entree_tri_alpha' => 'Critère de tri des rubriques (alphabétique). Si vous saisissez "date", le critère ajouté sera {par date} et les rubriques seront triées par date', + 'entree_tri_alpha_articles' => 'Critère de tri des articles (alphabétique). Si vous saisissez "date", le critère ajouté sera {par date} et les articles seront triés par date', + 'entree_tri_alpha_articles_inverse' => 'Inverser le critère de tri alphabétique ? (mettre "oui" pour cela)', + 'entree_tri_alpha_inverse' => 'Inverser le critère de tri alphabétique ? (mettre "oui" pour cela)', + 'entree_tri_num' => 'Critère de tri des rubriques (numérique). Si vous saisissez "titre", le critère ajouté sera {par num titre} et les rubriques seront triées par numéro de titre', + 'entree_tri_num_articles' => 'Critère de tri des articles (numérique). Si vous saisissez "titre", le critère ajouté sera {par num titre} et les articles seront triés par numéro de titre', + 'entree_tri_num_articles_inverse' => 'Inverser le critère de tri numérique ? (mettre "oui" pour cela)', + 'entree_tri_num_inverse' => 'Inverser le critère de tri numérique ? (mettre "oui" pour cela)', + 'entree_type_objet' => 'Type de l\'objet', + 'entree_url' => 'Adresse', + 'entree_url_public' => 'Adresse de retour après la connexion', + 'erreur_aucun_type' => 'Aucun type d\'entrée n\'a été trouvé.', + 'erreur_autorisation' => 'Vous n\'êtes pas autorisé à modifier les menus.', + 'erreur_identifiant_deja' => 'Cet identifiant est déjà utilisé par un menu.', + 'erreur_identifiant_forme' => 'L\'identifiant ne doit contenir que des lettres, des chiffres ou le caractère souligné.', + 'erreur_menu_inexistant' => 'Le menu demandé numéro @id@ n\'existe pas.', + 'erreur_mise_a_jour' => 'Une erreur s\'est produite pendant la mise à jour de la base de donnée.', + 'erreur_parametres' => 'Il y a une erreur dans les paramètres de la page', + 'erreur_type_menu' => 'Vous devez choisir un type de menu', + 'erreur_type_menu_inexistant' => 'Ce type de menu n\'est pas/plus disponible', + + // F + 'formulaire_ajouter_entree' => 'Ajouter une entrée', + 'formulaire_ajouter_sous_menu' => 'Créer un sous-menu', + 'formulaire_css' => 'Classes CSS', + 'formulaire_css_explication' => 'Vous pouvez ajouter au menu d\'éventuelles classes CSS supplémentaires.', + 'formulaire_deplacer_bas' => 'Déplacer vers le bas', + 'formulaire_deplacer_haut' => 'Déplacer vers le haut', + 'formulaire_facultatif' => 'Facultatif', + 'formulaire_identifiant' => 'Identifiant', + 'formulaire_identifiant_explication' => 'Donnez un mot-clé unique qui vous permettra d\'appeler votre menu facilement.', + 'formulaire_ieconfig_choisir_menus_a_importer' => 'Choisissez quel(s) menu(s) vous souhaitez importer.', + 'formulaire_ieconfig_importer' => 'Importer', + 'formulaire_ieconfig_menu_meme_identifiant' => 'ATTENTION : un menu avec le même identifiant existe déjà sur votre votre site !', + 'formulaire_ieconfig_menus_a_exporter' => 'Menus à exporter :', + 'formulaire_ieconfig_ne_pas_importer' => 'Ne pas importer', + 'formulaire_ieconfig_remplacer' => 'Remplacer le menu actuel par le menu importé', + 'formulaire_ieconfig_renommer' => 'Renommer ce menu avant import', + 'formulaire_importer' => 'Importer un menu', + 'formulaire_importer_explication' => 'Si vous avez exporté un menu dans un fichier, vous pouvez l\'importer maintenant.', + 'formulaire_modifier_entree' => 'Modifier cette entrée', + 'formulaire_modifier_menu' => 'Modifier le menu :', + 'formulaire_nouveau' => 'Nouveau menu', + 'formulaire_partie_construction' => 'Construction du menu', + 'formulaire_partie_identification' => 'Identification du menu', + 'formulaire_supprimer_entree' => 'Supprimer cette entrée', + 'formulaire_supprimer_menu' => 'Supprimer le menu', + 'formulaire_supprimer_sous_menu' => 'Supprimer ce sous-menu', + 'formulaire_titre' => 'Titre', + + // I + 'info_afficher_articles' => 'Les articles seront inclus dans le menu.', + 'info_articles_max' => 'Seulement si la rubrique contient au plus @max@ articles', + 'info_articles_max_affiches' => 'Affichage limité à @max@ articles', + 'info_classe_parent' => 'Classe des éléments parents : ', + 'info_connexion_obligatoire' => 'Connexion obligatoire', + 'info_deconnexion_obligatoire' => 'Uniquement déconnecté', + 'info_masquer_articles_uniques' => 'Articles uniques masqués', + 'info_numero_menu' => 'MENU NUMÉRO :', + 'info_page_speciale' => 'Lien vers la page « @page@ »', + 'info_page_speciale_zajax' => 'Modalbox de la page « @page@ » pour le bloc « @bloc@ »', + 'info_rubrique_courante' => 'Rubrique courante', + 'info_rubriques_exclues' => ' / sauf rubrique(s) @id_rubriques@', + 'info_rubriques_max_affichees' => 'Affichage limité à @max@ rubriques', + 'info_secteur_exclus' => ' / sauf secteur(s) @id_secteur@', + 'info_sousrub_cond' => 'Seules les sous-rubriques de la rubriques en cours sont affichées.', + 'info_tous_groupes_mots' => 'Tous les groupes de mots', + 'info_traduction_recuperee' => 'Le contexte décidera de la traduction choisie', + 'info_tri' => 'Tri des rubriques :', + 'info_tri_alpha' => '(alphabétique)', + 'info_tri_articles' => 'Tri des articles :', + 'info_tri_num' => '(numérique)', + + // N + 'noisette_description' => 'Insère un menu défini avec le plugin Menus.', + 'noisette_label_afficher_titre_menu' => 'Afficher le titre du menu ?', + 'noisette_label_identifiant' => 'Menu à afficher :', + 'noisette_nom_noisette' => 'Menu', + 'nom_menu_accueil' => 'Accueil', + 'nom_menu_articles_rubrique' => 'Articles d\'une rubrique', + 'nom_menu_deconnecter' => 'Se déconnecter', + 'nom_menu_espace_prive' => 'Se connecter / lien vers espace privé', + 'nom_menu_groupes_mots' => 'Mots-clés et Articles d\'un Groupes de mots', + 'nom_menu_lien' => 'Lien arbitraire', + 'nom_menu_mapage' => 'Ma page', + 'nom_menu_mots' => 'Articles d\'un Mot-clé', + 'nom_menu_objet' => 'Article, rubrique ou autre objet SPIP', + 'nom_menu_page_speciale' => 'Lien vers un squelette page', + 'nom_menu_page_speciale_zajax' => 'Un bloc d\'une page Zpip', + 'nom_menu_rubriques_completes' => 'Liste ou arborescence de rubriques et d\'articles (avec beaucoup d\'options)', + 'nom_menu_rubriques_evenements' => 'Événements de rubriques', + 'nom_menu_secteurlangue' => 'Secteurs de langue', + 'nom_menu_texte_libre' => 'Texte libre', + + // T + 'tous_les_articles' => '... Tous les articles', + 'toutes_les_rubriques' => '... Toutes les rubriques' +); + +?> diff --git a/www/plugins/menus_1/lang/menus_it.php b/www/plugins/menus_1/lang/menus_it.php new file mode 100644 index 0000000..a317d1b --- /dev/null +++ b/www/plugins/menus_1/lang/menus_it.php @@ -0,0 +1,174 @@ + 'Voulez-vous vraiment supprimer cette entrée ?', # NEW + + // D + 'description_menu_accueil' => 'Link verso il pannello di controllo del sito.', + 'description_menu_articles_rubrique' => 'Mostra la lista degli articoli di una rubrica.', + 'description_menu_deconnecter' => 'Se il visitatore è connesso, aggiungi un link per proporgli la disconnessione.', + 'description_menu_espace_prive' => 'Link che permette di connettersi al sito se non lo si è già, e poi di andare in redazione se si è autorizzati.', + 'description_menu_groupes_mots' => 'Mostra automaticamente un menu che elenca le parole chiave di un gruppo e gli articoli collegati. Normalmente, mostra la lista dei gruppi di parole chiave e le parole collegate. Se un modello groupes_mots.html esiste, il link verso il gruppo verrà utilizzato', + 'description_menu_lien' => 'Aggiunge un link arbitrario, interno (URL relativo) o esterno (http://...).', + 'description_menu_mapage' => 'Se il visitatore è connesso, aggiunge un link verso la sua pagina autore.', + 'description_menu_mots' => 'Mostra automaticamente un menù che elenca gli articoli collegati alla parola chiave.', + 'description_menu_objet' => 'Crea un link verso un oggetto di SPIP: articolo, rubrica o altro. In maniera predefinita, il link avrà il titolo dell\'oggetto.', + 'description_menu_page_speciale' => 'Aggiunge un link verso un modello accessibile con un url del tipo spip.php?page=nome¶m1=xx¶m2=yyy... Queste pagina sono spesso fornite dai plugin.', + 'description_menu_page_speciale_zajax' => 'Ajoute un lien vers un bloc d\'une page accessible par une url du type spip.php?page=nom¶m1=xx¶m2=yyy... Ceci nécéssite une squelette de type Z et le plugin médiabox.', # NEW + 'description_menu_rubriques_articles' => 'Affiche une liste de rubriques et, si on veut, les sous-rubriques et les articles sur plusieurs niveaux. Par défaut, affiche toutes les rubriques depuis la racine, triées par titre (numériquement puis alphabétiquement). Les articles sont placés systématiquement après les rubriques.', # NEW + 'description_menu_rubriques_completes' => 'Affiche une liste de rubriques et, si on veut, les sous-rubriques sur plusieurs niveaux. Par défaut, affiche toutes les rubriques depuis la racine, triées par titre (numériquement puis alphabétiquement).', # NEW + 'description_menu_secteurlangue' => 'Questa voce è specifica per i siti che utilizzano un settore per lingua. Mostra automaticamente un menù che elenca le rubriche del settore corrispondente alla lingua della pagina e, se si vuole, le sotto rubriche su più livelli. Normalmente, mostra tutte le rubriche dalla radice, ordinate per titolo (numericamente e poi alfabeticamente).', + 'description_menu_texte_libre' => 'Simplement le texte que vous souhaitez, ou un code de langue SPIP (<:...:>)', # NEW + + // E + 'editer_menus_editer' => 'Modifica questo menù', + 'editer_menus_explication' => 'Crea e configura qui i menù del tuo sito', + 'editer_menus_exporter' => 'Esporta questo menù', + 'editer_menus_nouveau' => 'Crea un nuovo menù', + 'editer_menus_titre' => 'Menù del sito', + 'entree_afficher_articles' => 'Inclure les articles dans le menu ? (mettre "oui" pour cela)', # NEW + 'entree_afficher_item_suite' => 'Inclure les articles dans le menu ? (mettre "oui" pour cela)', # NEW + 'entree_articles_max' => 'Si oui, afficher les articles seulement si la rubrique contient au maximum xx articles ? (mettre le nombre maximum d\'articles, laissez vide pour afficher tous les articles)', # NEW + 'entree_articles_max_affiches' => 'Si oui, limiter le nombre d\'articles listés à xx maximum (suivis d\'un item "... Tous les articles" comportant un lien vers la rubrique parente) ? (indiquer le nombre maximum d\'articles, laissez vide pour afficher tous les articles)', # NEW + 'entree_aucun' => 'Nessun', + 'entree_bloc' => 'Bloc Zpip', # NEW + 'entree_choisir' => 'Scegli il tipo di voce che vuoi aggiungere:', + 'entree_classe_parent' => 'Classe des liens des éléments parents. Cette classe sera rajoutée aux li>a ayant une suite ul/li. Par exemple, si vous saisissez "daddy", cela vous permet d\'utiliser le plugin menu deroulant 2 pour la mise en forme du menu.', # NEW + 'entree_connexion_objet' => 'Obliger à être connecté (mettre "session") ou déconnecté (mettre "nosession") pour voir l\'objet', # NEW + 'entree_contenu' => 'Contenu', # NEW + 'entree_css' => 'Classi CSS della voce', # MODIF + 'entree_css_lien' => 'Classes CSS du lien', # NEW + 'entree_id_groupe' => 'Numero di gruppo della parola chiave', + 'entree_id_mot' => 'Numero della parola chiave', + 'entree_id_objet' => 'Numero', + 'entree_id_rubrique' => 'Numero della rubrica padre', + 'entree_id_rubrique_ou_courante' => 'Numéro de la rubrique parente ou "courante" si la rubrique parente est la rubrique courante du contexte', # NEW + 'entree_id_rubriques_exclues' => 'Numéros des rubriques à exclure, séparés par des virgules', # NEW + 'entree_id_secteur_exclus' => 'Numéros des secteurs à exclure, séparés par des virgules', # NEW + 'entree_infini' => 'All\'infinito', + 'entree_mapage' => 'La mia pagina personale', + 'entree_masquer_articles_uniques' => 'Si oui et si une rubrique contient un seul article, le masquer ? (mettre "oui" pour cela)', # NEW + 'entree_niveau' => 'Livelli di sotto rubriche', + 'entree_nombre_articles' => 'Numero massimo di articoli (0 predefinito)', + 'entree_page' => 'Nome della pagina', + 'entree_parametres' => 'Lista dei parametri', + 'entree_rubriques_max_affichees' => 'Si oui, limiter le nombre de rubriques listés à xx maximum (suivis d\'un item "... Toutes les rubriques" comportant un lien vers la rubrique parente) ? (indiquer le nombre maximum de rubriques, laissez vide pour afficher toutes les rubriques)', # NEW + 'entree_sousrub_cond' => 'N\'afficher que les sous-rubriques de la rubrique en cours (mettre "oui", sinon laisser vide)', # NEW + 'entree_suivant_connexion' => 'Restreindre cette entrée suivant la connexion (mettre "connecte" pour afficher seulement si le visiteur est connecté, "deconnecte" pour le cas contraire, ou laisser vide pour toujours afficher)', # NEW + 'entree_suivant_connexion_connecte' => 'seulement si connecté', # NEW + 'entree_suivant_connexion_deconnecte' => 'seulement si déconnecté', # NEW + 'entree_sur_n_articles' => '@n@ articoli mostrati', + 'entree_sur_n_mots' => '@n@ parole chiave mostrate', + 'entree_sur_n_niveaux' => 'Su @n@ livelli', + 'entree_titre' => 'Titolo', + 'entree_titre_connecter' => 'Titolo per l\'accesso al form di login', + 'entree_titre_prive' => 'Titolo per accedere alla redazione', + 'entree_traduction_articles_rubriques' => 'Dans la mesure du possible, afficher les articles de la rubrique dans la langue du contexte (mettre "trad" pour cela)', # NEW + 'entree_traduction_objet' => 'Dans le cas d\'un article, choisir la traduction en fonction du contexte (mettre "trad" pour cela)', # NEW + 'entree_tri_alpha' => 'Criterio di ordinamento (alfabetico)', # MODIF + 'entree_tri_alpha_articles' => 'Critère de tri des articles (alphabétique). Si vous saisissez "date", le critère ajouté sera {par date} et les articles seront triés par date', # NEW + 'entree_tri_alpha_articles_inverse' => 'Inverser le critère de tri alphabétique ? (mettre "oui" pour cela)', # NEW + 'entree_tri_alpha_inverse' => 'Inverser le critère de tri alphabétique ? (mettre "oui" pour cela)', # NEW + 'entree_tri_num' => 'Criterio di ordinamento (numerico)', # MODIF + 'entree_tri_num_articles' => 'Critère de tri des articles (numérique). Si vous saisissez "titre", le critère ajouté sera {par num titre} et les articles seront triés par numéro de titre', # NEW + 'entree_tri_num_articles_inverse' => 'Inverser le critère de tri numérique ? (mettre "oui" pour cela)', # NEW + 'entree_tri_num_inverse' => 'Inverser le critère de tri numérique ? (mettre "oui" pour cela)', # NEW + 'entree_type_objet' => 'Tipo di oggetto', + 'entree_url' => 'Indirizzo', + 'entree_url_public' => 'Adresse de retour après la connexion', # NEW + 'erreur_aucun_type' => 'Nessun tipo di voce trovata.', + 'erreur_autorisation' => 'Non sei autorizzato a modificare i menù.', + 'erreur_identifiant_deja' => 'Questo identificativo è già utilizzato da un menù.', + 'erreur_identifiant_forme' => 'L\'identificativo deve contenere solo lettere, cifre o il trattino basso.', + 'erreur_menu_inexistant' => 'Il menù richiesto numero @id@ non esiste.', + 'erreur_mise_a_jour' => 'Si è verificato un errore durante l\'aggiornamento del database.', + 'erreur_parametres' => 'C\'è un errore nei parametri della pagina', + 'erreur_type_menu' => 'Devi scegliere un tipo di menù', + 'erreur_type_menu_inexistant' => 'Ce type de menu n\'est pas/plus disponible', # NEW + + // F + 'formulaire_ajouter_entree' => 'Aggiungi una voce', + 'formulaire_ajouter_sous_menu' => 'Crea un sotto menù', + 'formulaire_css' => 'Classi CSS', + 'formulaire_css_explication' => 'Puoi aggiungere al menù delle eventuali classi CSS supplmentari.', + 'formulaire_deplacer_bas' => 'Sposta verso il basso', + 'formulaire_deplacer_haut' => 'Sposta verso l\'alto', + 'formulaire_facultatif' => 'Facoltativo', + 'formulaire_identifiant' => 'Identificativo', + 'formulaire_identifiant_explication' => 'Inserisci una parola chiave unica che ti permetterà di richiamare il tuo menù facilmente.', + 'formulaire_ieconfig_choisir_menus_a_importer' => 'Choisissez quel(s) menu(s) vous souhaitez importer.', # NEW + 'formulaire_ieconfig_importer' => 'Importer', # NEW + 'formulaire_ieconfig_menu_meme_identifiant' => 'ATTENTION : un menu avec le même identifiant existe déjà sur votre votre site !', # NEW + 'formulaire_ieconfig_menus_a_exporter' => 'Menus à exporter :', # NEW + 'formulaire_ieconfig_ne_pas_importer' => 'Ne pas importer', # NEW + 'formulaire_ieconfig_remplacer' => 'Remplacer le menu actuel par le menu importé', # NEW + 'formulaire_ieconfig_renommer' => 'Renommer ce menu avant import', # NEW + 'formulaire_importer' => 'Importa un menù', + 'formulaire_importer_explication' => 'Se hai esportato un menù in un file, ora lo puoi importare.', + 'formulaire_modifier_entree' => 'Modifica questa voce', + 'formulaire_modifier_menu' => 'Modifica il menù:', + 'formulaire_nouveau' => 'Nuovo menù', + 'formulaire_partie_construction' => 'Costruzione del menù', + 'formulaire_partie_identification' => 'Identificativo del menù', + 'formulaire_supprimer_entree' => 'Elimina questa voce', + 'formulaire_supprimer_menu' => 'Elimina il menù', + 'formulaire_supprimer_sous_menu' => 'Elimina il sotto menù', + 'formulaire_titre' => 'Titolo', + + // I + 'info_afficher_articles' => 'Les articles seront inclus dans le menu.', # NEW + 'info_articles_max' => 'Seulement si la rubrique contient au plus @max@ articles', # NEW + 'info_articles_max_affiches' => 'Affichage limité à @max@ articles', # NEW + 'info_classe_parent' => 'Classe des éléments parents : ', # NEW + 'info_connexion_obligatoire' => 'Connexion obligatoire', # NEW + 'info_deconnexion_obligatoire' => 'Uniquement déconnecté', # NEW + 'info_masquer_articles_uniques' => 'Articles uniques masqués', # NEW + 'info_numero_menu' => 'MENU NUMERO:', + 'info_page_speciale' => 'Link verso la pagina "@page@"', + 'info_page_speciale_zajax' => 'Modalbox de la page « @page@ » pour le bloc « @bloc@ »', # NEW + 'info_rubrique_courante' => 'Rubrique courante', # NEW + 'info_rubriques_exclues' => ' / sauf rubrique(s) @id_rubriques@', # NEW + 'info_rubriques_max_affichees' => 'Affichage limité à @max@ rubriques', # NEW + 'info_secteur_exclus' => ' / sauf secteur(s) @id_secteur@', # NEW + 'info_sousrub_cond' => 'Seules les sous-rubriques de la rubriques en cours sont affichées.', # NEW + 'info_tous_groupes_mots' => 'Tutti i gruppi di parole chiave', + 'info_traduction_recuperee' => 'Le contexte décidera de la traduction choisie', # NEW + 'info_tri' => 'Ordina:', # MODIF + 'info_tri_alpha' => '(alfabetico)', + 'info_tri_articles' => 'Tri des articles :', # NEW + 'info_tri_num' => '(numerico)', + + // N + 'noisette_description' => 'Insère un menu défini avec le plugin Menus.', # NEW + 'noisette_label_afficher_titre_menu' => 'Afficher le titre du menu ?', # NEW + 'noisette_label_identifiant' => 'Menu à afficher :', # NEW + 'noisette_nom_noisette' => 'Menu', # NEW + 'nom_menu_accueil' => 'Pannello di controllo', + 'nom_menu_articles_rubrique' => 'Articoli di una rubrica', + 'nom_menu_deconnecter' => 'Disconnettersi', + 'nom_menu_espace_prive' => 'Connettersi / link alla redazione', + 'nom_menu_groupes_mots' => 'Parole chiave e articoli di un gruppo di parole chiave', + 'nom_menu_lien' => 'Link arbitrario', + 'nom_menu_mapage' => 'La mia pagina', + 'nom_menu_mots' => 'Articoli di un a parola chiave', + 'nom_menu_objet' => 'Articolo, rubrica o altro oggetto SPIP', + 'nom_menu_page_speciale' => 'Link verso una pagina di modello', + 'nom_menu_page_speciale_zajax' => 'Un bloc d\'une page Zpip', # NEW + 'nom_menu_rubriques_completes' => 'Liste ou arborescence de rubriques et d\'articles (avec beaucoup d\'options)', # NEW + 'nom_menu_rubriques_evenements' => 'Eventi delle rubriche', + 'nom_menu_secteurlangue' => 'Settore di lingua', + 'nom_menu_texte_libre' => 'Texte libre', # NEW + + // T + 'tous_les_articles' => '... Tous les articles', # NEW + 'toutes_les_rubriques' => '... Toutes les rubriques' # NEW +); + +?> diff --git a/www/plugins/menus_1/lang/menus_ru.php b/www/plugins/menus_1/lang/menus_ru.php new file mode 100644 index 0000000..eb3441f --- /dev/null +++ b/www/plugins/menus_1/lang/menus_ru.php @@ -0,0 +1,171 @@ + 'Voulez-vous vraiment supprimer cette entrée ?', # NEW + + // D + 'description_menu_accueil' => 'Ссылка на главную страницу.', + 'description_menu_articles_rubrique' => 'Affiche la liste des articles d\'une rubrique.', # NEW + 'description_menu_deconnecter' => 'Si le visiteur est connecté, ajoute une entrée lui proposant la déconnexion.', # NEW + 'description_menu_espace_prive' => 'Lien permettant de se connecter au site si on ne l\'est pas déjà, puis d\'aller dans l\'espace privé si l\'on y est autorisé.', # NEW + 'description_menu_groupes_mots' => 'Affiche automatiquement un menu listant les mots du groupe et les articles liés. Par défaut, affiche la liste des groupes de mots et les mots liés. Si un squelette groupes_mots.html existe, le lien vers le groupe est utilisé.', # NEW + 'description_menu_lien' => 'Ajoute un lien arbitraire, en interne (URL relative) ou externe (http://...).', # NEW + 'description_menu_mapage' => 'Si le visiteur est connecté, ajoute un lien vers sa page auteur.', # NEW + 'description_menu_mots' => 'Affiche automatiquement un menu listant les articles liés au mot clé.', # NEW + 'description_menu_objet' => 'Crée un lien vers un objet de SPIP : article, rubrique ou autre. Par défaut, l\'entrée aura le titre de l\'objet.', # NEW + 'description_menu_page_speciale' => 'Ajoute un lien vers un squelette page accessible par une url du type spip.php?page=nom¶m1=xx¶m2=yyy... Ces pages sont souvent fournies par des plugins.', # NEW + 'description_menu_page_speciale_zajax' => 'Ajoute un lien vers un bloc d\'une page accessible par une url du type spip.php?page=nom¶m1=xx¶m2=yyy... Ceci nécéssite une squelette de type Z et le plugin médiabox.', # NEW + 'description_menu_rubriques' => 'Affiche une liste de rubriques et, si on veut, les sous-rubriques sur plusieurs niveaux. Par défaut, affiche toutes les rubriques depuis la racine, triées par titre (numériquement puis alphabétiquement).', # NEW + 'description_menu_rubriques_articles' => 'Affiche une liste de rubriques et, si on veut, les sous-rubriques et les articles sur plusieurs niveaux. Par défaut, affiche toutes les rubriques depuis la racine, triées par titre (numériquement puis alphabétiquement). Les articles sont placés systématiquement après les rubriques.', # NEW + 'description_menu_secteurlangue' => 'Cette entrée est spécifique aux sites utilisant un secteur par langue. Elle affiche automatiquement un menu listant les rubriques du secteur correspondant à la langue de la page et, si on veut, les sous-rubriques sur plusieurs niveaux. Par défaut, affiche toutes les rubriques depuis la racine, triées par titre (numériquement puis alphabétiquement).', # NEW + 'description_menu_texte_libre' => 'Simplement le texte que vous souhaitez, ou un code de langue SPIP (<:...:>)', # NEW + + // E + 'editer_menus_editer' => 'Редактировать это меню', + 'editer_menus_explication' => 'Создать и настроить меню для сайта', + 'editer_menus_exporter' => 'Экспортировать меню', + 'editer_menus_nouveau' => 'Создать новое меню', + 'editer_menus_titre' => 'Меню сайта', + 'entree_afficher_articles' => 'Inclure les articles dans le menu ? (mettre "oui" pour cela)', # NEW + 'entree_afficher_item_suite' => 'Inclure les articles dans le menu ? (mettre "oui" pour cela)', # NEW + 'entree_articles_max' => 'Si oui, afficher les articles seulement si la rubrique contient au maximum xx articles ? (mettre le nombre maximum d\'articles, laissez vide pour afficher tous les articles)', # NEW + 'entree_articles_max_affiches' => 'Si oui, limiter le nombre d\'articles listés à xx maximum (suivis d\'un item "... Tous les articles" comportant un lien vers la rubrique parente) ? (indiquer le nombre maximum d\'articles, laissez vide pour afficher tous les articles)', # NEW + 'entree_aucun' => 'Aucun', # NEW + 'entree_bloc' => 'Bloc Zpip', # NEW + 'entree_choisir' => 'Выбрать тип пункта меню:', + 'entree_classe_parent' => 'Classe des liens des éléments parents. Cette classe sera rajoutée aux li>a ayant une suite ul/li. Par exemple, si vous saisissez "daddy", cela vous permet d\'utiliser le plugin menu deroulant 2 pour la mise en forme du menu.', # NEW + 'entree_connexion_objet' => 'Obliger à être connecté (mettre "session") ou déconnecté (mettre "nosession") pour voir l\'objet', # NEW + 'entree_contenu' => 'Contenu', # NEW + 'entree_css' => 'CSS класс', # MODIF + 'entree_css_lien' => 'Classes CSS du lien', # NEW + 'entree_id_groupe' => 'Numéro du groupe de mot clé', # NEW + 'entree_id_mot' => 'Numéro du mot clé', # NEW + 'entree_id_objet' => 'Номер', + 'entree_id_rubrique' => 'Номер родительского раздела', + 'entree_id_rubrique_ou_courante' => 'Numéro de la rubrique parente ou "courante" si la rubrique parente est la rubrique courante du contexte', # NEW + 'entree_id_rubriques_exclues' => 'Numéros des rubriques à exclure, séparés par des virgules', # NEW + 'entree_id_secteur_exclus' => 'Numéros des secteurs à exclure, séparés par des virgules', # NEW + 'entree_infini' => 'Бесконечность', + 'entree_mapage' => 'Моя страница', + 'entree_masquer_articles_uniques' => 'Si oui et si une rubrique contient un seul article, le masquer ? (mettre "oui" pour cela)', # NEW + 'entree_niveau' => 'Уровень подразделов', + 'entree_nombre_articles' => 'Nombre d\'articles au maximum (0 par défaut)', # NEW + 'entree_page' => 'Nom de la page', # NEW + 'entree_parametres' => 'Liste des paramètres', # NEW + 'entree_rubriques_max_affichees' => 'Si oui, limiter le nombre de rubriques listés à xx maximum (suivis d\'un item "... Toutes les rubriques" comportant un lien vers la rubrique parente) ? (indiquer le nombre maximum de rubriques, laissez vide pour afficher toutes les rubriques)', # NEW + 'entree_sousrub_cond' => 'N\'afficher que les sous-rubriques de la rubrique en cours (mettre "oui", sinon laisser vide)', # NEW + 'entree_sur_n_articles' => '@n@ articles affiché(s)', # NEW + 'entree_sur_n_mots' => '@n@ mots affiché(s)', # NEW + 'entree_sur_n_niveaux' => 'На @n@ уровне', + 'entree_titre' => 'Название', + 'entree_titre_connecter' => 'Titre pour l\'accès au formulaire d\'identification', # NEW + 'entree_titre_prive' => 'Titre pour accéder à l\'espace privé', # NEW + 'entree_traduction_articles_rubriques' => 'Dans la mesure du possible, afficher les articles de la rubrique dans la langue du contexte (mettre "trad" pour cela)', # NEW + 'entree_traduction_objet' => 'Dans le cas d\'un article, choisir la traduction en fonction du contexte (mettre "trad" pour cela)', # NEW + 'entree_tri_alpha' => 'Critère de tri (alphabétique)', # MODIF + 'entree_tri_alpha_articles' => 'Critère de tri des articles (alphabétique). Si vous saisissez "date", le critère ajouté sera {par date} et les articles seront triés par date', # NEW + 'entree_tri_alpha_articles_inverse' => 'Inverser le critère de tri alphabétique ? (mettre "oui" pour cela)', # NEW + 'entree_tri_alpha_inverse' => 'Inverser le critère de tri alphabétique ? (mettre "oui" pour cela)', # NEW + 'entree_tri_num' => 'Critère de tri (numérique)', # MODIF + 'entree_tri_num_articles' => 'Critère de tri des articles (numérique). Si vous saisissez "titre", le critère ajouté sera {par num titre} et les articles seront triés par numéro de titre', # NEW + 'entree_tri_num_articles_inverse' => 'Inverser le critère de tri numérique ? (mettre "oui" pour cela)', # NEW + 'entree_tri_num_inverse' => 'Inverser le critère de tri numérique ? (mettre "oui" pour cela)', # NEW + 'entree_type_objet' => 'Тип объекта', + 'entree_url' => 'Ссылка (URL)', + 'entree_url_public' => 'Adresse de retour après la connexion', # NEW + 'erreur_aucun_type' => 'Ничего не найдено.', + 'erreur_autorisation' => 'У вас нет прав для редактирования этого меню.', + 'erreur_identifiant_deja' => 'Этот идентификатор уже используется в другом меню.', + 'erreur_identifiant_forme' => 'Идентификатор может состоять из латинских букв, цифр и подчеркиваний.', + 'erreur_menu_inexistant' => 'Меню номер @id@ не существует.', + 'erreur_mise_a_jour' => 'Произошла ошибка при обновлении базы.', + 'erreur_parametres' => 'Il y a une erreur dans les paramètres de la page', # NEW + 'erreur_type_menu' => 'Vous devez choisir un type de menu', # NEW + 'erreur_type_menu_inexistant' => 'Ce type de menu n\'est pas/plus disponible', # NEW + + // F + 'formulaire_ajouter_entree' => 'Добавить пункт меню', + 'formulaire_ajouter_sous_menu' => 'Создать подменю', + 'formulaire_css' => 'CSS классы', + 'formulaire_css_explication' => 'Вы можете добавить дополнительный классы CSS к вашему меню.', + 'formulaire_deplacer_bas' => 'Вниз', + 'formulaire_deplacer_haut' => 'Вверх', + 'formulaire_facultatif' => 'Не обязательно', + 'formulaire_identifiant' => 'Идентификатор', + 'formulaire_identifiant_explication' => 'Назначьте меню уникальное ключевое слово, которое позволит в дальнейшем легко его вызывать.', + 'formulaire_ieconfig_choisir_menus_a_importer' => 'Choisissez quel(s) menu(s) vous souhaitez importer.', # NEW + 'formulaire_ieconfig_importer' => 'Importer', # NEW + 'formulaire_ieconfig_menu_meme_identifiant' => 'ATTENTION : un menu avec le même identifiant existe déjà sur votre votre site !', # NEW + 'formulaire_ieconfig_menus_a_exporter' => 'Menus à exporter :', # NEW + 'formulaire_ieconfig_ne_pas_importer' => 'Ne pas importer', # NEW + 'formulaire_ieconfig_remplacer' => 'Remplacer le menu actuel par le menu importé', # NEW + 'formulaire_ieconfig_renommer' => 'Renommer ce menu avant import', # NEW + 'formulaire_importer' => 'Импортировать меню', + 'formulaire_importer_explication' => 'Если вы экспортировали меню в файл, вы можете импортировать его сейчас.', + 'formulaire_modifier_entree' => 'Редактировать этот пункт меню', + 'formulaire_modifier_menu' => 'Редактировать меню:', + 'formulaire_nouveau' => 'Новое меню', + 'formulaire_partie_construction' => 'Создание меню', + 'formulaire_partie_identification' => 'Идентификатор меню', + 'formulaire_supprimer_entree' => 'Удалить этот пункт меню', + 'formulaire_supprimer_menu' => 'Удалить меню', + 'formulaire_supprimer_sous_menu' => 'Удалить подменю', + 'formulaire_titre' => 'Название', + + // I + 'info_afficher_articles' => 'Les articles seront inclus dans le menu.', # NEW + 'info_articles_max' => 'Seulement si la rubrique contient au plus @max@ articles', # NEW + 'info_articles_max_affiches' => 'Affichage limité à @max@ articles', # NEW + 'info_classe_parent' => 'Classe des éléments parents : ', # NEW + 'info_connexion_obligatoire' => 'Connexion obligatoire', # NEW + 'info_deconnexion_obligatoire' => 'Uniquement déconnecté', # NEW + 'info_masquer_articles_uniques' => 'Articles uniques masqués', # NEW + 'info_numero_menu' => 'НОМЕР МЕНЮ:', + 'info_page_speciale' => 'Lien vers la page « @page@ »', # NEW + 'info_page_speciale_zajax' => 'Modalbox de la page « @page@ » pour le bloc « @bloc@ »', # NEW + 'info_rubrique_courante' => 'Rubrique courante', # NEW + 'info_rubriques_exclues' => ' / sauf rubrique(s) @id_rubriques@', # NEW + 'info_rubriques_max_affichees' => 'Affichage limité à @max@ rubriques', # NEW + 'info_secteur_exclus' => ' / sauf secteur(s) @id_secteur@', # NEW + 'info_sousrub_cond' => 'Seules les sous-rubriques de la rubriques en cours sont affichées.', # NEW + 'info_tous_groupes_mots' => 'Tous les groupes de mots', # NEW + 'info_traduction_recuperee' => 'Le contexte décidera de la traduction choisie', # NEW + 'info_tri' => 'Tri :', # MODIF + 'info_tri_alpha' => '(alphabétique)', # NEW + 'info_tri_articles' => 'Tri des articles :', # NEW + 'info_tri_num' => '(numérique)', # NEW + + // N + 'noisette_description' => 'Insère un menu défini avec le plugin Menus.', # NEW + 'noisette_label_afficher_titre_menu' => 'Afficher le titre du menu ?', # NEW + 'noisette_label_identifiant' => 'Menu à afficher :', # NEW + 'noisette_nom_noisette' => 'Menu', # NEW + 'nom_menu_accueil' => 'Главная страница', + 'nom_menu_articles_rubrique' => 'Articles d\'une rubrique', # NEW + 'nom_menu_deconnecter' => 'Se déconnecter', # NEW + 'nom_menu_espace_prive' => 'Se connecter / lien vers espace privé', # NEW + 'nom_menu_groupes_mots' => 'Mots-clés et Articles d\'un Groupes de mots', # NEW + 'nom_menu_lien' => 'Lien arbitraire', # NEW + 'nom_menu_mapage' => 'Ma page', # NEW + 'nom_menu_mots' => 'Articles d\'un Mot-clé', # NEW + 'nom_menu_objet' => 'Article, rubrique ou autre objet SPIP', # NEW + 'nom_menu_page_speciale' => 'Lien vers un squelette page', # NEW + 'nom_menu_page_speciale_zajax' => 'Un bloc d\'une page Zpip', # NEW + 'nom_menu_rubriques' => 'Liste ou arborescence de rubriques', # MODIF + 'nom_menu_rubriques_evenements' => 'Événements de rubriques', # NEW + 'nom_menu_secteurlangue' => 'Secteurs de langue', # NEW + 'nom_menu_texte_libre' => 'Texte libre', # NEW + + // T + 'tous_les_articles' => '... Tous les articles', # NEW + 'toutes_les_rubriques' => '... Toutes les rubriques' # NEW +); + +?> diff --git a/www/plugins/menus_1/lang/menus_sk.php b/www/plugins/menus_1/lang/menus_sk.php new file mode 100644 index 0000000..03a5e23 --- /dev/null +++ b/www/plugins/menus_1/lang/menus_sk.php @@ -0,0 +1,174 @@ + 'Chcete odstrániÅ¥ tento záznam?', + + // D + 'description_menu_accueil' => 'Odkaz na úvodnú stránku webu.', + 'description_menu_articles_rubrique' => 'ZobraziÅ¥ zoznam článkov v rubrike.', + 'description_menu_deconnecter' => 'Ak je návÅ¡tevník online, pridaÅ¥ možnosÅ¥ odpojenia.', + 'description_menu_espace_prive' => 'Odkaz umožňujúci prihlásenie na stránku, ak ste sa eÅ¡te neprihlásili a potom na vstup do súkromnej zóny, ak na to máte oprávnenie.', + 'description_menu_groupes_mots' => 'Automaticky vypíše skupiny kľúčových slov a články, ktoré sú k ním priradené. Podľa predvolených nastavení sa zobrazia skupiny kľúčových slov a kľúčové slová v rámci nich. Ak existuje súbor Å¡ablóny groupes_mots.html, použije sa odkaz na skupinu kľúčových slov.', + 'description_menu_lien' => 'Pridá samostatne zadaný odkaz, a to buď interný (relatívna adresa), alebo externý(http://...).', + 'description_menu_mapage' => 'Ak je návÅ¡tevník prihlásený, pridá odkaz na jeho autorskú stránku.', + 'description_menu_mots' => 'Automaticky zobrazí menu so zoznamom článkov prepojených s kľúčovým slovom.', + 'description_menu_objet' => 'Vytvorí odkaz na objekt SPIPu: článok, rubriku alebo iný. Podľa predvolených nastavení bude niesÅ¥ názov objektu.', + 'description_menu_page_speciale' => 'Pridá odkaz na stránku Å¡ablóny pomocou adresy formulára spip.php?page=name¶m1=xx¶m2=yyy... Takéto stránky často využívajú zásuvné moduly.', + 'description_menu_page_speciale_zajax' => 'PridaÅ¥ odkaz do bolu na stránke, na ktorú sa dá dostaÅ¥ progredníctvom adresy typu spip.php?page=name¶m1=xx¶m2=yyy... Na to treba Å¡ablónu typu Z a zásuvný modul médiabox.', + 'description_menu_rubriques_articles' => 'Zobrazí zoznam rubrík, v ktorom môžu byÅ¥ podrubriky a články včlenené do rôznych úrovní. Podľa predvolených nastavení sa zobrazia vÅ¡etky rubriky počnúc koreňovým adresárom stránky a budú zotriedené podľa názvu (najprv čísla, potom písmená). Články v danej rubrike budú vždy uvedené po jej podrubrikách.', + 'description_menu_rubriques_completes' => 'Zobrazí zoznam rubrík a ak existujú, aj podrubrík na mnohých úrovniach. Podľa predvolených nastavení zobrazí vÅ¡etky rubriky od koreňového adresára zotriedené podľa názvu (najprv podľa čísel potom podľa abecedy).', + 'description_menu_secteurlangue' => 'This entry can be used by sites which have one language per sector. It displays a menu which lists the sections of the sector corresponding to the language of the page, and if desired the subsections to several levels. By default, all sections are shown from the site root, sorted by title (numerically then alphabetically).', + 'description_menu_texte_libre' => 'Jednoducho text, ktorý chcete, alebo kód jazyka SPIP (<:...:>)', + + // E + 'editer_menus_editer' => 'UpraviÅ¥ toto menu', + 'editer_menus_explication' => 'Vytvorte a nastavte ponky menu pre svoju stránku.', + 'editer_menus_exporter' => 'ExportovaÅ¥ toto menu', + 'editer_menus_nouveau' => 'VytvoriÅ¥ nové menu', + 'editer_menus_titre' => 'Ponuky menu stránky', + 'entree_afficher_articles' => 'ZaradiÅ¥ články do menu? (na to využite možnosÅ¥ "áno")', + 'entree_afficher_item_suite' => 'ZaradiÅ¥ články do menu? (použite na to možnosÅ¥ "áno")', + 'entree_articles_max' => 'Ak áno, zobraziÅ¥ články, len ak je v rubrike maximálne xx článkov? (zadajte maximálny počet článkov; ak chcete zobraziÅ¥ vÅ¡etky články, nechajte toto pole prázdne)', + 'entree_articles_max_affiches' => 'Ak áno, obmedziÅ¥ počet článkov v zozname na maximálne xx (za položkou "...VÅ¡etky články" s odkazom na nadradenú rubriku)? (zadajte maximálny počet článkov; ak chcete zobraziÅ¥ vÅ¡etky články, nechajte toto pole prázdne)', + 'entree_aucun' => 'Žiadny', + 'entree_bloc' => 'Blok Zpipu', + 'entree_choisir' => 'Vyberte typ položky, ktorú chcete pridaÅ¥:', + 'entree_classe_parent' => 'Trieda odkazov nadradených prvkov. Táto trieda bude pridaná na li>v postupnosit ul/li. Napríklad, ak zadáte "daddy", umožní vám to využiÅ¥ na formátovanie menu rozbaľovacie menu zásuvného modulu 2.', + 'entree_connexion_objet' => 'Na zobrazenie objektu sa vyžaduje prihlásenie (vloženie "session") alebo odhlásenie (vloženie "nosession")', + 'entree_contenu' => 'Obsah', + 'entree_css' => 'CSS triedy tejto položky (objektu)', + 'entree_css_lien' => 'Triedy CSS pre odkazy', + 'entree_id_groupe' => 'Číslo skupiny kľúčových slov', + 'entree_id_mot' => 'Číslo kľúčového slova', + 'entree_id_objet' => 'Číslo', + 'entree_id_rubrique' => 'Číslo nadradenej rubriky', + 'entree_id_rubrique_ou_courante' => 'Číslo nadradenej alebo "aktuálnej" rubriky, ak nadradená rubrika je aktuálnou rubrikou kontextu', + 'entree_id_rubriques_exclues' => 'Čísla rubrík, ktoré majú byÅ¥ vylúčené, oddelené čiarkami', + 'entree_id_secteur_exclus' => 'Čísla sektorov, ktoré majú byÅ¥ vylúčené, oddelené čiarkami', + 'entree_infini' => 'Do nekonečna', + 'entree_mapage' => 'Moja stránka', + 'entree_masquer_articles_uniques' => 'Ak áno a ak je v rubrike jeden článok, schovaÅ¥ ju? (ak to tak chcete, označte možnosÅ¥ "áno")', + 'entree_niveau' => 'Úroveň podrubrík', + 'entree_nombre_articles' => 'Maximálny počet článkov (predvolené 0)', + 'entree_page' => 'Názov stránky', + 'entree_parametres' => 'Zoznam parametrov', + 'entree_rubriques_max_affichees' => 'Ak áno, obmedziÅ¥ počet rubrík v zozname na maximálne xx (po položke "...VÅ¡etky rubriky" s odkazom na nadradenú rubriku)? (zadajte maximálny počet rubrík; ak chcete zobraziÅ¥ vÅ¡etky rubriky, nechajte toto pole prázdne)', + 'entree_sousrub_cond' => 'ZobrazovaÅ¥ len podrubriky aktuálnej rubriky (zadajte "oui" (áno), v opačnom prípade nevypĺňajte)', + 'entree_suivant_connexion' => 'ObmedziÅ¥ toto pole podľa prihlásenia (nastavte "prihlásený" ak chcete zobraziÅ¥ len návÅ¡tevníka, ktorý je online; možnosÅ¥ "odhlásený" v opačnom prípade; ak autor riadi nejakú rubriku, nastavte pole "administrátor"; ak ho chcete zobraziÅ¥ v každom prípade, toto pole nevypĺňajte)', + 'entree_suivant_connexion_connecte' => 'len ak je online', + 'entree_suivant_connexion_deconnecte' => 'len ak je offline', + 'entree_sur_n_articles' => '@n@ zobrazených článkov', + 'entree_sur_n_mots' => '@n@ zobrazených kľúčových slov', + 'entree_sur_n_niveaux' => 'Na @n@ úrovni(ach)', + 'entree_titre' => 'Nadpis', + 'entree_titre_connecter' => 'Nadpis pre prístup do prihlasovacieho formulára', + 'entree_titre_prive' => 'Nadpis pre prístup do súkromnej zóny', + 'entree_traduction_articles_rubriques' => 'Ak je to možné, zobraziÅ¥ články rubriky v jazyku textu (na aktiváciu tejto možnosti zadajte "trad")', + 'entree_traduction_objet' => 'Pri článku vyberajte preklad v závislosti od kontextu (na to, aby se to dosiahli, vložte "trad")', + 'entree_tri_alpha' => 'Kritérium triedenia (abecedné)', + 'entree_tri_alpha_articles' => 'Kritérium triedenia článkov(abecedné). Ak zadáte "dátum", bude pridané kritérium {podľa dátumu} a články budú zotriedené podľa dátumu', + 'entree_tri_alpha_articles_inverse' => 'ObrátiÅ¥ poradie abecedného triedenia? (použite na to možnosÅ¥ "áno")', + 'entree_tri_alpha_inverse' => 'ObrátiÅ¥ poradie abecedného triedenia? (použite na to možnosÅ¥ "áno")', + 'entree_tri_num' => 'Kritérium triedenia (číselné)', + 'entree_tri_num_articles' => 'Kritérium triedenia článkov (číselné). Ak zadáte "nadpis", bude pridané kritérium {podľa čísla nadpisu} a články budú zotriedené podľa čísla nadpisu', + 'entree_tri_num_articles_inverse' => 'ObrátiÅ¥ poradie číselného triedenia? (použite na to možnosÅ¥ "áno")', + 'entree_tri_num_inverse' => 'ObrátiÅ¥ poradie číselného triedenia? (použite na to možnosÅ¥ "áno")', + 'entree_type_objet' => 'Typ objektu', + 'entree_url' => 'Internetová adresa', + 'entree_url_public' => 'Po prihlásení vypísaÅ¥ adresu', + 'erreur_aucun_type' => 'Žiaden typ položky sa nenaÅ¡iel.', + 'erreur_autorisation' => 'Nemáte povolené upravovaÅ¥ menu.', + 'erreur_identifiant_deja' => 'Tento identifikátor už využíva iné menu.', + 'erreur_identifiant_forme' => 'Identifikátor musí obsahovaÅ¥ len písmená, čísla alebo podčiarkovníky.', + 'erreur_menu_inexistant' => 'Menu číslo @id@ neexistuje.', + 'erreur_mise_a_jour' => 'Počas aktualizácie databázy doÅ¡lo k chybe.', + 'erreur_parametres' => 'V parametroch stránky je chyba', + 'erreur_type_menu' => 'Musíte si vybraÅ¥ typ menu', + 'erreur_type_menu_inexistant' => 'Tento typ menu (už viac) nie je dostupný', + + // F + 'formulaire_ajouter_entree' => 'PridaÅ¥ položku menu', + 'formulaire_ajouter_sous_menu' => 'VytvoriÅ¥ podmenu', + 'formulaire_css' => 'Triedy CSS', + 'formulaire_css_explication' => 'K svojmu menu môžete pridaÅ¥ ďalÅ¡ie triedy CSS.', + 'formulaire_deplacer_bas' => 'Posunúť nadol', + 'formulaire_deplacer_haut' => 'Posunúť nahor', + 'formulaire_facultatif' => 'Nepovinné', + 'formulaire_identifiant' => 'Identifikátor', + 'formulaire_identifiant_explication' => 'Priraďte mu unikátne kľúčové slovo, ktoré vám umožní ľahko zavolaÅ¥ svoje menu.', + 'formulaire_ieconfig_choisir_menus_a_importer' => 'Vyberte, ktoré menu chcete nahraÅ¥.', + 'formulaire_ieconfig_importer' => 'NahraÅ¥', + 'formulaire_ieconfig_menu_meme_identifiant' => 'UPOZORNENIE: na vaÅ¡ej stránke je už menu s rovnakým názvom!', + 'formulaire_ieconfig_menus_a_exporter' => 'Menu na export:', + 'formulaire_ieconfig_ne_pas_importer' => 'NenahrávaÅ¥', + 'formulaire_ieconfig_remplacer' => 'PrepísaÅ¥ súčasné menu nahratým menu', + 'formulaire_ieconfig_renommer' => 'PremenovaÅ¥ toto menu pred nahrávaním', + 'formulaire_importer' => 'NahraÅ¥ menu', + 'formulaire_importer_explication' => 'Ak ste exportovali menu do súboru, môžete ho teraz nahraÅ¥.', + 'formulaire_modifier_entree' => 'UpraviÅ¥ túto položku menu', + 'formulaire_modifier_menu' => 'UpraviÅ¥ menu:', + 'formulaire_nouveau' => 'Nové menu', + 'formulaire_partie_construction' => 'Vytvorenie menu', + 'formulaire_partie_identification' => 'Identifikácia menu', + 'formulaire_supprimer_entree' => 'OdstrániÅ¥ túto položku menu', + 'formulaire_supprimer_menu' => 'OdstrániÅ¥ menu', + 'formulaire_supprimer_sous_menu' => 'OdstrániÅ¥ toto podmenu', + 'formulaire_titre' => 'Nadpis', + + // I + 'info_afficher_articles' => 'Články budú zaradené do menu.', + 'info_articles_max' => 'Iba ak v rubrike nie je viac ako @max@ článkov', + 'info_articles_max_affiches' => 'Zobrazenie obmedzené na @max@ článkov', + 'info_classe_parent' => 'Trieda nadradených prvkov: ', + 'info_connexion_obligatoire' => 'Vyžaduje sa prihlásenie', + 'info_deconnexion_obligatoire' => 'Iba keď ste odhlásený', + 'info_masquer_articles_uniques' => 'Unikátne články skryté', + 'info_numero_menu' => 'MENU ČÍSLO:', + 'info_page_speciale' => 'Odkaz na stránku "@page@"', + 'info_page_speciale_zajax' => 'Modalbox pre stránku "@page@" bloku "@bloc@" ', + 'info_rubrique_courante' => 'Aktuálna rubrika', + 'info_rubriques_exclues' => ' /okrem rubriky (-ík) @id_rubriques@', + 'info_rubriques_max_affichees' => 'Zobrazenie obmedzené na @max@ rubrík', + 'info_secteur_exclus' => ' /okrem sektora (-ov) @id_secteur@', + 'info_sousrub_cond' => 'Sú zobrazené iba podrubriky aktuálnej rubriky.', + 'info_tous_groupes_mots' => 'VÅ¡etky skupiny kľúčových slov', + 'info_traduction_recuperee' => 'Kontext určí vybraný preklad', + 'info_tri' => 'Triedenie:', + 'info_tri_alpha' => '(abecedné)', + 'info_tri_articles' => 'RoztriediÅ¥ články:', + 'info_tri_num' => '(číselné)', + + // N + 'noisette_description' => 'Vkladanie menu definované v zásuvnom module Menus.', + 'noisette_label_afficher_titre_menu' => 'ZobraziÅ¥ názov menu?', + 'noisette_label_identifiant' => 'Menu, ktoré sa má zobraziÅ¥:', + 'noisette_nom_noisette' => 'Menu', + 'nom_menu_accueil' => 'Úvodná stránka', + 'nom_menu_articles_rubrique' => 'Články v rubrike', + 'nom_menu_deconnecter' => 'OdhlásiÅ¥ sa', + 'nom_menu_espace_prive' => 'Prihlásenie/odkaz na súkromnú zónu', + 'nom_menu_groupes_mots' => 'Kľúčové slová a články skupiny kľúčových slov', + 'nom_menu_lien' => 'Samostatný odkaz', + 'nom_menu_mapage' => 'Moja stránka', + 'nom_menu_mots' => 'Články s kľúčovým slovom', + 'nom_menu_objet' => 'Článok, rubrika alebo iný objekt SPIPU', + 'nom_menu_page_speciale' => 'Odkaz na Å¡ablónu stránky', + 'nom_menu_page_speciale_zajax' => 'Blok na stránke v SPIPe', + 'nom_menu_rubriques_completes' => 'Zoznam alebo stromová Å¡truktúra rubrík a článkov (s mnohými možnosÅ¥ami)', + 'nom_menu_rubriques_evenements' => 'Udalosti, ktoré sa týkajú rubriky', + 'nom_menu_secteurlangue' => 'Jazykové sektory', + 'nom_menu_texte_libre' => 'Potvrdený text', + + // T + 'tous_les_articles' => '... VÅ¡etky články', + 'toutes_les_rubriques' => '... VÅ¡etky rubriky' +); + +?> diff --git a/www/plugins/menus_1/lang/paquet-menus.xml b/www/plugins/menus_1/lang/paquet-menus.xml new file mode 100644 index 0000000..e74acae --- /dev/null +++ b/www/plugins/menus_1/lang/paquet-menus.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/www/plugins/menus_1/lang/paquet-menus_ar.php b/www/plugins/menus_1/lang/paquet-menus_ar.php new file mode 100644 index 0000000..9370c82 --- /dev/null +++ b/www/plugins/menus_1/lang/paquet-menus_ar.php @@ -0,0 +1,22 @@ + 'عندما لا نستخدم ملحق {{القوائم}}، نضطر لتعريف كل قوائم الموقع في الصفحات النموذجية، + مما يؤدي الى ان مدراء الموقع لا يمكنهم التحكم مباشرة بهذه القوائم، وعندما يرغبون في تعديل اي شيء فيها، يضطرون الى + الطلب من مطور الصفحات النموذجية إدخال التعديلات. إضافة الى ذلك، اذا اردنا وضع روابط ثابتة (مثلاً رابط الى مقال محدد او صفحة محددة او موقع آخر) يجب ادخال هذه الروابط كما هي في صفحة القوائم النموذجية. + + الهدف من ملحق {{القوائم}} هو السماح بإنشاء قوائم بسهولة من خلال واجهة تفاعلية في المجال الخاص. + {{تنبيه!}} لا يتحكم هذا الملحق بالطريقة التي ستعرض فيها هذه القوائم في الموقع العمومي. يكتفي بإنشاء القوائم بسهولة وإنتاج علامات html الخاصة بها. ', + 'menus_nom' => 'القوائم', + 'menus_slogan' => 'إنشاء قوائم شخصية', + 'menus_titre' => 'القوائم' +); + +?> diff --git a/www/plugins/menus_1/lang/paquet-menus_de.php b/www/plugins/menus_1/lang/paquet-menus_de.php new file mode 100644 index 0000000..87b6f95 --- /dev/null +++ b/www/plugins/menus_1/lang/paquet-menus_de.php @@ -0,0 +1,17 @@ + 'Menüs bequem im Redaktionssystem gestalten.', # MODIF + 'menus_nom' => 'Menus', # NEW + 'menus_slogan' => 'Menüs bequem im Redaktionssystem gestalten.', + 'menus_titre' => 'Menüs' +); + +?> diff --git a/www/plugins/menus_1/lang/paquet-menus_en.php b/www/plugins/menus_1/lang/paquet-menus_en.php new file mode 100644 index 0000000..e5cde92 --- /dev/null +++ b/www/plugins/menus_1/lang/paquet-menus_en.php @@ -0,0 +1,23 @@ + 'When you are not using the plugin {{menus}}, you have to define all the menus in your templates, so that site administrators do not have direct hands on it and when they want to change something in it, they are forced to make a request to the person in charge of the templates. + +In addition, when you want static links (a link to a specific article, to a specific page or to an external site) they should be hard written in the template of the menu. + +The purpose of the plugin {{Menus}} is to allow you to create easily menus using an intuitive interface, directly into the private area. + +{{Warning}} This plugin does not deal with the way menus are displayed. It allows their easy creation and to generate the HTML code.', + 'menus_nom' => 'Menus', + 'menus_slogan' => 'Create your own custom menus.', + 'menus_titre' => 'Menus' +); + +?> diff --git a/www/plugins/menus_1/lang/paquet-menus_es.php b/www/plugins/menus_1/lang/paquet-menus_es.php new file mode 100644 index 0000000..42a00c4 --- /dev/null +++ b/www/plugins/menus_1/lang/paquet-menus_es.php @@ -0,0 +1,19 @@ + 'Cuando no se usa el plugin {{Menús}}, es necesario definir todos los menús en los esqueletos, lo que hace los administradores del sitio no puedan cambiar algo a su antojo, sino que deban solicitar a la persona modificar los esqueletos. Además, cuando vea los enlaces estáticos (un enlace a un artículo específico, o a una página determinada, o a un sitio externo) deberá escribirlos en duro en el esqueleto del menú. + El propósito del plugin {{Menús}} es entonces permitir elaborar fácilmente menús mediante una interfaz sencilla directamente en la parte privada. + {{¡Atención!}} Este plugin no se ocupa de cómo se mostrarán los menús. Permite crearlos fácilmente y generar el código HTML.', + 'menus_nom' => 'Menús', + 'menus_slogan' => 'Cree sus menús personalizados.', + 'menus_titre' => 'Menús' +); + +?> diff --git a/www/plugins/menus_1/lang/paquet-menus_fr.php b/www/plugins/menus_1/lang/paquet-menus_fr.php new file mode 100644 index 0000000..46d3bcc --- /dev/null +++ b/www/plugins/menus_1/lang/paquet-menus_fr.php @@ -0,0 +1,21 @@ + 'Lorsqu\'on ne se sert pas du plugin {{Menus}}, on est obligé de définir tous ses menus dans les squelettes, + ce qui fait que les administrateurs du site n\'ont pas directement la main dessus et que lorsqu\'ils veulent y changer quelque chose, ils sont obligés + d\'en faire la demande à la personne en charge des squelettes. De plus, lorsqu\'on veut des liens statiques (un lien vers un article précis, + ou vers une page précise, ou vers un site externe) il faut les écrire en dur dans le squelette du menu. + + Le but du plugin {{Menus}} est donc de permettre de facilement élaborer des menus au moyen d\'une interface conviviale, directement dans la partie privée. + {{Attention !}} Ce plugin ne s\'occupe pas de la manière dont seront affichés les menus. Il permet de les créer facilement et d\'en générer le code HTML.', + 'menus_nom' => 'Menus', + 'menus_slogan' => 'Créez vos menus personnalisés.', + 'menus_titre' => 'Menus' +); + +?> diff --git a/www/plugins/menus_1/lang/paquet-menus_it.php b/www/plugins/menus_1/lang/paquet-menus_it.php new file mode 100644 index 0000000..9a6975f --- /dev/null +++ b/www/plugins/menus_1/lang/paquet-menus_it.php @@ -0,0 +1,17 @@ + 'Crea i tuoi menù in redazione.', # MODIF + 'menus_nom' => 'Menus', # NEW + 'menus_slogan' => 'Crea i tuoi menù in redazione.', + 'menus_titre' => 'Menù' +); + +?> diff --git a/www/plugins/menus_1/lang/paquet-menus_sk.php b/www/plugins/menus_1/lang/paquet-menus_sk.php new file mode 100644 index 0000000..6a87678 --- /dev/null +++ b/www/plugins/menus_1/lang/paquet-menus_sk.php @@ -0,0 +1,23 @@ + 'Keď sa nepoužíva zásuvný modul{{Menus,}} vÅ¡etky Å¡ablóny musia byÅ¥ definované v ich menu, + čiže administrátori stránky to nemajú úplne pod kontrolou a ak chcú niečo zmeniÅ¥, musia sa obrátiÅ¥ + na človeka, ktorý je zodpovedný za šablóny. Okrem toho ak chcete pridaÅ¥ statické odkazy (odkaz na konkrétny článok + alebo na konkrétnu stránku, alebo na externú stránku), tie musia byÅ¥ zapísané do Å¡ablóny menu. + + Cieľom zásuvného modulu {{Menus}} je umožniÅ¥ vám ľahko vytváraÅ¥ menu pomocou intuitívneho rozhrania priamo do súkromnej zóny. + {{Pozor!}} Tento zásuvný modul sa nezaoberá tým, ako sa položky menu zobrazia. Umožňuje ľahké vytváranie menu a vygenerovanie kódu HTML.', + 'menus_nom' => 'Ponuky menu', + 'menus_slogan' => 'Vytvorte svoje vlastné ponuky menu.', + 'menus_titre' => 'Ponuky menu' +); + +?> diff --git a/www/plugins/menus_1/menu.html b/www/plugins/menus_1/menu.html new file mode 100644 index 0000000..b6581eb --- /dev/null +++ b/www/plugins/menus_1/menu.html @@ -0,0 +1,11 @@ + + + + [(#TITRE|textebrut)] + + +

      #TITRE

      + #INCLURE{fond=inclure/menu, env} + + + diff --git a/www/plugins/menus_1/menus/accueil.html b/www/plugins/menus_1/menus/accueil.html new file mode 100644 index 0000000..95ae86e --- /dev/null +++ b/www/plugins/menus_1/menus/accueil.html @@ -0,0 +1,9 @@ +[(#SET{titre,[(#ENV*{titre}|typo|sinon{<:accueil_site:>})]})] +[(#ENV{appel_formulaire}|oui) +
      #GET{titre}
      +
      <:info_racine_site:>
      +] +[(#ENV{appel_menu}|oui) + + + + + + + [(#GET{cpt}|>{#GET{articles_max_affiches}}|oui) +
    1. <:menus:tous_les_articles:>
    2. + ] + + + + #SET{cpt,0} + #SET{cpt,#TOTAL_BOUCLE} + + + + [(#GET{cpt}|>{#GET{articles_max_affiches}}|oui) +
    3. <:menus:tous_les_articles:>
    4. + ] + + + \ No newline at end of file diff --git a/www/plugins/menus_1/menus/articles_rubrique.xml b/www/plugins/menus_1/menus/articles_rubrique.xml new file mode 100644 index 0000000..3a18591 --- /dev/null +++ b/www/plugins/menus_1/menus/articles_rubrique.xml @@ -0,0 +1,12 @@ + + <:menus:nom_menu_articles_rubrique:> + 04 + <:menus:description_menu_articles_rubrique:> + images/menus_articles_rubrique.png + + + + + + + diff --git a/www/plugins/menus_1/menus/deconnecter.html b/www/plugins/menus_1/menus/deconnecter.html new file mode 100644 index 0000000..f045569 --- /dev/null +++ b/www/plugins/menus_1/menus/deconnecter.html @@ -0,0 +1,9 @@ +[(#SET{titre,[(#ENV*{titre}|typo|sinon{<:icone_deconnecter:>})]})] +[(#ENV{appel_formulaire}|oui) +
      #GET{titre}
      +
      +] +[(#ENV{appel_menu}|et{#SESSION{id_auteur}|>{0}|oui}|oui) + + + + + + + + \ No newline at end of file diff --git a/www/plugins/menus_1/menus/groupe_mots.xml b/www/plugins/menus_1/menus/groupe_mots.xml new file mode 100644 index 0000000..f43eabd --- /dev/null +++ b/www/plugins/menus_1/menus/groupe_mots.xml @@ -0,0 +1,11 @@ + + <:menus:nom_menu_groupes_mots:> + 05 + <:menus:description_menu_groupes_mots:> + images/menus_groupes_mots.png + + + + + + diff --git a/www/plugins/menus_1/menus/lien.html b/www/plugins/menus_1/menus/lien.html new file mode 100644 index 0000000..ab348b8 --- /dev/null +++ b/www/plugins/menus_1/menus/lien.html @@ -0,0 +1,10 @@ +#SET{titre, #ENV*{titre}|typo} + +[(#ENV{appel_formulaire}|oui) +
      #GET{titre}
      +
      [(#ENV*{url}|extraire_multi)]
      +] +[(#ENV{appel_menu}|oui) + + + diff --git a/www/plugins/menus_1/menus/mots.xml b/www/plugins/menus_1/menus/mots.xml new file mode 100644 index 0000000..1d32e0c --- /dev/null +++ b/www/plugins/menus_1/menus/mots.xml @@ -0,0 +1,11 @@ + + <:menus:nom_menu_mots:> + 04 + <:menus:description_menu_mots:> + images/menus_mots.png + + + + + + diff --git a/www/plugins/menus_1/menus/objet.html b/www/plugins/menus_1/menus/objet.html new file mode 100644 index 0000000..9301da6 --- /dev/null +++ b/www/plugins/menus_1/menus/objet.html @@ -0,0 +1,36 @@ +#SET{id_objet,#ENV{id_objet}} + + + +#SET{id_objet,#ID_ARTICLE} + +#SET{id_objet,#ID_ARTICLE} + + + + +[(#SET{titre, #ENV*{titre}|typo|sinon{#INFO_TITRE{#ENV{type_objet}, #GET{id_objet}}}|sinon{<:info_sans_titre:>}})] + +[(#ENV{trad}|=={trad}|et{#ENV{type_objet}|=={article}}|oui)#SET{info_trad,#VAL{menus:info_traduction_recuperee}|_T}] + +#SET{visible,oui} +[(#ENV{connexion}|=={session}|oui) + [(#SESSION{statut}|non) + #SET{visible,non}] + #SET{info_session,#VAL{menus:info_connexion_obligatoire}|_T} +] +[(#ENV{connexion}|=={nosession}|oui) + [(#SESSION{statut}|oui) + #SET{visible,non}] + #SET{info_session,#VAL{menus:info_deconnexion_obligatoire}|_T} +] + +[(#ENV{appel_formulaire}|oui) +
      #GET{titre}
      +
      #ENV{type_objet}-#GET{id_objet}[-(#GET{info_session})][-(#GET{info_trad})]
      +] + +[(#ENV{appel_menu}|et{#GET{visible}|=={oui}}|oui) + + + + [(#REM) ---------------------------------- + troisieme cas de gestion de l'affichage des articles : les articles de la rubriques de d�part ] + + [(#REM) On commence par compter le nombre d'articles de la rubrique (servira pour l'item "Tous les articles") ] + #SET{cpt,0} + #SET{cpt,#TOTAL_BOUCLE} + + [(#REM) On affiche les articles : + - S'il y en a moins que le max demand� + - ET - si on n'a pas demand� de masquage des articles uniques + - OU si le masquage des articles uniques est demand� et qu'il y en a plus d'un ] + #SET{afficher,non} + [(#GET{cpt}|<={#GET{articles_max}}|oui|et{#GET{cpt}|>{1}|ou{#GET{masquer_articles_uniques}|=={'on'}|non}}) + #SET{afficher,oui}] + + + + + + [(#GET{cpt}|>{#GET{articles_max_affiches}}|oui) + ] + + + + [(#REM) --------------------------- Fin troisieme cas ] + + diff --git a/www/plugins/menus_1/menus/rubriques_completes.xml b/www/plugins/menus_1/menus/rubriques_completes.xml new file mode 100644 index 0000000..60c185a --- /dev/null +++ b/www/plugins/menus_1/menus/rubriques_completes.xml @@ -0,0 +1,26 @@ + + <:menus:nom_menu_rubriques_completes:> + 04 + <:menus:description_menu_rubriques_completes:> + images/menus_rubriques.png + + + + + + + + + + + + + + + + + + + + + diff --git a/www/plugins/menus_1/menus/secteurlangue.html b/www/plugins/menus_1/menus/secteurlangue.html new file mode 100644 index 0000000..aa50e85 --- /dev/null +++ b/www/plugins/menus_1/menus/secteurlangue.html @@ -0,0 +1,2 @@ +#SET{id_rubrique,#ID_RUBRIQUE} +#INCLURE{fond=menus/rubriques_completes,id_rubrique=#GET{id_rubrique},secteurlangue=oui,env} diff --git a/www/plugins/menus_1/menus/secteurlangue.xml b/www/plugins/menus_1/menus/secteurlangue.xml new file mode 100644 index 0000000..3ae2299 --- /dev/null +++ b/www/plugins/menus_1/menus/secteurlangue.xml @@ -0,0 +1,21 @@ + + <:menus:nom_menu_secteurlangue:> + <:menus:description_menu_secteurlangue:> + images/menus_secteurlangue.png + + + + + + + + + + + + + + + + + diff --git a/www/plugins/menus_1/menus/texte_libre.html b/www/plugins/menus_1/menus/texte_libre.html new file mode 100644 index 0000000..596a6a2 --- /dev/null +++ b/www/plugins/menus_1/menus/texte_libre.html @@ -0,0 +1,10 @@ +#SET{contenu, #ENV*{contenu}|_T_ou_typo} + +[(#ENV{appel_formulaire}|oui) +
      [(#GET{contenu}|expanser_liens)]
      +
      +] +[(#ENV{appel_menu}|oui) +