[SPIP] ~2.1.12 -->2.1.25 2.0.0
authorLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Mon, 10 Feb 2014 17:09:48 +0000 (18:09 +0100)
committerLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Tue, 11 Feb 2014 07:28:10 +0000 (08:28 +0100)
594 files changed:
scripts/maj.sh [new file with mode: 0755]
www/CHANGELOG.txt
www/config/mes_fonctions.php [deleted file]
www/config/remove.txt [changed mode: 0755->0644]
www/ecrire/action/acceder_document.php
www/ecrire/action/activer_plugins.php
www/ecrire/action/auth.php
www/ecrire/action/changer_mode_document.php
www/ecrire/action/charger_plugin.php
www/ecrire/action/configurer.php
www/ecrire/action/configurer_notifications_forum.php
www/ecrire/action/configurer_previsualiseur.php
www/ecrire/action/configurer_relayeur.php
www/ecrire/action/confirmer_email.php
www/ecrire/action/converser.php
www/ecrire/action/cookie.php
www/ecrire/action/copier_local.php
www/ecrire/action/dater.php
www/ecrire/action/desinstaller_plugin.php
www/ecrire/action/documenter.php
www/ecrire/action/editer_article.php
www/ecrire/action/editer_auteur.php
www/ecrire/action/editer_auteurs.php
www/ecrire/action/editer_breve.php
www/ecrire/action/editer_groupe_mot.php
www/ecrire/action/editer_message.php
www/ecrire/action/editer_mot.php
www/ecrire/action/editer_mots.php
www/ecrire/action/editer_rubrique.php
www/ecrire/action/editer_signatures.php
www/ecrire/action/editer_site.php
www/ecrire/action/editer_url.php
www/ecrire/action/export_all.php
www/ecrire/action/iconifier.php
www/ecrire/action/instituer_article.php
www/ecrire/action/instituer_auteur.php
www/ecrire/action/instituer_breve.php
www/ecrire/action/instituer_collaboration.php
www/ecrire/action/instituer_forum.php
www/ecrire/action/instituer_groupe_mots.php
www/ecrire/action/instituer_langue_rubrique.php
www/ecrire/action/instituer_rubrique_breves.php
www/ecrire/action/instituer_site.php
www/ecrire/action/instituer_syndic.php
www/ecrire/action/joindre.php
www/ecrire/action/legender.php
www/ecrire/action/logout.php
www/ecrire/action/petitionner.php
www/ecrire/action/poster_forum_prive.php
www/ecrire/action/preferer.php
www/ecrire/action/purger.php
www/ecrire/action/redirect.php
www/ecrire/action/referencer_traduction.php
www/ecrire/action/regler_moderation.php
www/ecrire/action/reorganiser.php
www/ecrire/action/supprimer.php
www/ecrire/action/supprimer_document.php
www/ecrire/action/supprimer_traduction.php
www/ecrire/action/tester.php
www/ecrire/action/tester_taille.php
www/ecrire/action/tourner.php
www/ecrire/action/virtualiser.php
www/ecrire/auth/ldap.php
www/ecrire/auth/sha256.inc.php
www/ecrire/auth/spip.php
www/ecrire/balise/formulaire_.php
www/ecrire/balise/formulaire_admin.php
www/ecrire/balise/formulaire_ecrire_auteur.php
www/ecrire/balise/formulaire_forum.php
www/ecrire/balise/formulaire_inscription.php
www/ecrire/balise/formulaire_recherche.php
www/ecrire/balise/formulaire_signature.php
www/ecrire/balise/formulaire_site.php
www/ecrire/balise/login_prive.php
www/ecrire/balise/login_public.php
www/ecrire/balise/logo_.php
www/ecrire/balise/menu_lang.php
www/ecrire/balise/menu_lang_ecrire.php
www/ecrire/balise/url_.php
www/ecrire/balise/url_logout.php
www/ecrire/base/abstract_sql.php
www/ecrire/base/admin_repair.php
www/ecrire/base/auxiliaires.php
www/ecrire/base/connect_sql.php
www/ecrire/base/convert_sql_utf8.php
www/ecrire/base/convert_utf8.php
www/ecrire/base/create.php
www/ecrire/base/delete_all.php
www/ecrire/base/delete_statistiques.php
www/ecrire/base/dump.php
www/ecrire/base/import_all.php
www/ecrire/base/serial.php
www/ecrire/base/trouver_table.php
www/ecrire/base/typedoc.php
www/ecrire/base/upgrade.php
www/ecrire/charsets/iso-8859-15.php
www/ecrire/charsets/iso-8859-6.php
www/ecrire/charsets/iso-8859-9.php
www/ecrire/charsets/translitcomplexe.php
www/ecrire/configuration/accueil.php
www/ecrire/configuration/annonces.php
www/ecrire/configuration/articles.php
www/ecrire/configuration/avertisseur.php
www/ecrire/configuration/breves.php
www/ecrire/configuration/compresseur.php
www/ecrire/configuration/compteur.php
www/ecrire/configuration/contenu_forums.php
www/ecrire/configuration/documents.php
www/ecrire/configuration/forums_prives.php
www/ecrire/configuration/futurs.php
www/ecrire/configuration/indexeur.php
www/ecrire/configuration/langue.php
www/ecrire/configuration/locuteur.php
www/ecrire/configuration/logos.php
www/ecrire/configuration/messagerie_agenda.php
www/ecrire/configuration/mots.php
www/ecrire/configuration/notifications_forum.php
www/ecrire/configuration/participants.php
www/ecrire/configuration/previsualiseur.php
www/ecrire/configuration/redacteurs.php
www/ecrire/configuration/redirection.php
www/ecrire/configuration/reducteur.php
www/ecrire/configuration/referenceur.php
www/ecrire/configuration/relayeur.php
www/ecrire/configuration/rubriques.php
www/ecrire/configuration/syndications.php
www/ecrire/configuration/transcodeur.php
www/ecrire/configuration/type_urls.php
www/ecrire/configuration/versionneur.php
www/ecrire/configuration/visiteurs.php
www/ecrire/exec/404.php
www/ecrire/exec/accueil.php
www/ecrire/exec/admin_declarer.php
www/ecrire/exec/admin_effacer.php
www/ecrire/exec/admin_plugin.php
www/ecrire/exec/admin_repair.php
www/ecrire/exec/admin_tech.php
www/ecrire/exec/admin_vider.php
www/ecrire/exec/aide_index.php
www/ecrire/exec/articles.php
www/ecrire/exec/articles_edit.php
www/ecrire/exec/articles_forum.php
www/ecrire/exec/articles_page.php
www/ecrire/exec/articles_tous.php
www/ecrire/exec/articles_versions.php
www/ecrire/exec/auteur_infos.php
www/ecrire/exec/auteurs.php
www/ecrire/exec/breves.php
www/ecrire/exec/breves_edit.php
www/ecrire/exec/breves_voir.php
www/ecrire/exec/brouteur.php
www/ecrire/exec/brouteur_frame.php
www/ecrire/exec/calendrier.php
www/ecrire/exec/charger_plugin.php
www/ecrire/exec/config_contenu.php
www/ecrire/exec/config_fonctions.php
www/ecrire/exec/config_lang.php
www/ecrire/exec/config_multilang.php
www/ecrire/exec/configuration.php
www/ecrire/exec/configurer.php
www/ecrire/exec/configurer_notifications_forum.php
www/ecrire/exec/configurer_previsualiseur.php
www/ecrire/exec/configurer_relayeur.php
www/ecrire/exec/controle_forum.php
www/ecrire/exec/controle_petition.php
www/ecrire/exec/convert_sql_utf8.php
www/ecrire/exec/convert_utf8.php
www/ecrire/exec/copier_local.php
www/ecrire/exec/dater.php
www/ecrire/exec/delete_all.php
www/ecrire/exec/delete_statistiques.php
www/ecrire/exec/demande_mise_a_jour.php
www/ecrire/exec/discuter.php
www/ecrire/exec/documenter.php
www/ecrire/exec/documents_colonne.php
www/ecrire/exec/documents_liste.php
www/ecrire/exec/editer_auteurs.php
www/ecrire/exec/editer_mots.php
www/ecrire/exec/export_all.php
www/ecrire/exec/fond.php
www/ecrire/exec/forum.php
www/ecrire/exec/forum_admin.php
www/ecrire/exec/grouper_mots.php
www/ecrire/exec/iconifier.php
www/ecrire/exec/import_all.php
www/ecrire/exec/info_plugin.php
www/ecrire/exec/info_plugin_distant.php
www/ecrire/exec/informer.php
www/ecrire/exec/informer_auteur.php
www/ecrire/exec/install.php
www/ecrire/exec/instituer_auteur.php
www/ecrire/exec/lang_raccourcis.php
www/ecrire/exec/legender.php
www/ecrire/exec/meme_rubrique.php
www/ecrire/exec/memoriser.php
www/ecrire/exec/menu_agenda.php
www/ecrire/exec/menu_navigation.php
www/ecrire/exec/menu_rubriques.php
www/ecrire/exec/message.php
www/ecrire/exec/message_edit.php
www/ecrire/exec/messagerie.php
www/ecrire/exec/mots_edit.php
www/ecrire/exec/mots_tous.php
www/ecrire/exec/mots_type.php
www/ecrire/exec/naviguer.php
www/ecrire/exec/petitionner.php
www/ecrire/exec/plonger.php
www/ecrire/exec/poster_forum_prive.php
www/ecrire/exec/puce_statut.php
www/ecrire/exec/recherche.php
www/ecrire/exec/rechercher.php
www/ecrire/exec/rechercher_auteur.php
www/ecrire/exec/referencer_traduction.php
www/ecrire/exec/regler_moderation.php
www/ecrire/exec/rubriques_edit.php
www/ecrire/exec/selectionner.php
www/ecrire/exec/selectionner_auteur.php
www/ecrire/exec/sites.php
www/ecrire/exec/sites_edit.php
www/ecrire/exec/sites_tous.php
www/ecrire/exec/statistiques_lang.php
www/ecrire/exec/statistiques_referers.php
www/ecrire/exec/statistiques_repartition.php
www/ecrire/exec/statistiques_visites.php
www/ecrire/exec/suivi_revisions.php
www/ecrire/exec/synchro.php
www/ecrire/exec/tourner.php
www/ecrire/exec/upgrade.php
www/ecrire/exec/valider_xml.php
www/ecrire/exec/virtualiser.php
www/ecrire/genie/mail.php
www/ecrire/genie/maintenance.php
www/ecrire/genie/mise_a_jour.php
www/ecrire/genie/optimiser.php
www/ecrire/genie/popularites.php
www/ecrire/genie/syndic.php
www/ecrire/genie/visites.php
www/ecrire/inc/acces.php
www/ecrire/inc/actions.php
www/ecrire/inc/admin.php
www/ecrire/inc/afficher_objets.php
www/ecrire/inc/agenda.php
www/ecrire/inc/aider.php
www/ecrire/inc/ajouter_documents.php
www/ecrire/inc/article_select.php
www/ecrire/inc/auteur_infos.php
www/ecrire/inc/auth.php
www/ecrire/inc/autoriser.php
www/ecrire/inc/bandeau.php
www/ecrire/inc/boutons.php
www/ecrire/inc/charger_plugin.php
www/ecrire/inc/charsets.php
www/ecrire/inc/chercher_logo.php
www/ecrire/inc/chercher_rubrique.php
www/ecrire/inc/commencer_page.php
www/ecrire/inc/config.php
www/ecrire/inc/cookie.php
www/ecrire/inc/couleurs.php
www/ecrire/inc/date.php
www/ecrire/inc/dater.php
www/ecrire/inc/diff.php
www/ecrire/inc/discuter.php
www/ecrire/inc/distant.php
www/ecrire/inc/documenter.php
www/ecrire/inc/documenter_objet.php
www/ecrire/inc/documents.php
www/ecrire/inc/drapeau_edition.php
www/ecrire/inc/editer.php
www/ecrire/inc/editer_auteurs.php
www/ecrire/inc/editer_mots.php
www/ecrire/inc/envoyer_mail.php
www/ecrire/inc/export.php
www/ecrire/inc/filtres.php
www/ecrire/inc/filtres_images_lib_mini.php
www/ecrire/inc/filtres_images_mini.php
www/ecrire/inc/filtres_mime.php
www/ecrire/inc/filtres_mini.php
www/ecrire/inc/flock.php
www/ecrire/inc/formater_article.php
www/ecrire/inc/formater_auteur.php
www/ecrire/inc/forum.php
www/ecrire/inc/forum_envoi.php
www/ecrire/inc/forum_insert.php
www/ecrire/inc/gadgets.php
www/ecrire/inc/genie.php
www/ecrire/inc/getdocument.php
www/ecrire/inc/grouper_mots.php
www/ecrire/inc/headers.php
www/ecrire/inc/iconifier.php
www/ecrire/inc/import.php
www/ecrire/inc/import_0_0.php
www/ecrire/inc/import_1_2.php
www/ecrire/inc/import_1_3.php
www/ecrire/inc/import_insere.php
www/ecrire/inc/informer.php
www/ecrire/inc/informer_auteur.php
www/ecrire/inc/install.php
www/ecrire/inc/instituer_article.php
www/ecrire/inc/instituer_auteur.php
www/ecrire/inc/instituer_breve.php
www/ecrire/inc/instituer_site.php
www/ecrire/inc/invalideur.php
www/ecrire/inc/joindre.php
www/ecrire/inc/json.php
www/ecrire/inc/lang.php
www/ecrire/inc/lang_liste.php
www/ecrire/inc/layer.php
www/ecrire/inc/legender.php
www/ecrire/inc/lien.php
www/ecrire/inc/lien_court.php
www/ecrire/inc/log.php
www/ecrire/inc/mail.php
www/ecrire/inc/math.php
www/ecrire/inc/meme_rubrique.php
www/ecrire/inc/message_select.php
www/ecrire/inc/meta.php
www/ecrire/inc/minipres.php
www/ecrire/inc/modifier.php
www/ecrire/inc/mots.php
www/ecrire/inc/notes.php
www/ecrire/inc/notifications.php
www/ecrire/inc/pclzip.php
www/ecrire/inc/petitionner.php
www/ecrire/inc/php3.php
www/ecrire/inc/plonger.php
www/ecrire/inc/plugin.php
www/ecrire/inc/prepare_recherche.php
www/ecrire/inc/presentation.php
www/ecrire/inc/presenter_enfants.php
www/ecrire/inc/presenter_liste.php
www/ecrire/inc/puce_statut.php
www/ecrire/inc/rechercher.php
www/ecrire/inc/referencer_traduction.php
www/ecrire/inc/referenceurs.php
www/ecrire/inc/regler_moderation.php
www/ecrire/inc/revisions.php
www/ecrire/inc/rubriques.php
www/ecrire/inc/securiser_action.php
www/ecrire/inc/selectionner.php
www/ecrire/inc/selectionner_auteur.php
www/ecrire/inc/session.php
www/ecrire/inc/signatures.php
www/ecrire/inc/site.php
www/ecrire/inc/statistiques.php
www/ecrire/inc/suivi_versions.php
www/ecrire/inc/surligne.php
www/ecrire/inc/syndic.php
www/ecrire/inc/texte.php
www/ecrire/inc/tourner.php
www/ecrire/inc/traduire.php
www/ecrire/inc/urls.php
www/ecrire/inc/utils.php
www/ecrire/inc/vieilles_defs.php
www/ecrire/inc/vignette.php
www/ecrire/inc/virtualiser.php
www/ecrire/inc/xml.php
www/ecrire/inc_version.php
www/ecrire/index.php
www/ecrire/install/etape_.php
www/ecrire/install/etape_1.php
www/ecrire/install/etape_2.php
www/ecrire/install/etape_3.php
www/ecrire/install/etape_3b.php
www/ecrire/install/etape_4.php
www/ecrire/install/etape_chmod.php
www/ecrire/install/etape_fin.php
www/ecrire/install/etape_ldap1.php
www/ecrire/install/etape_ldap2.php
www/ecrire/install/etape_ldap3.php
www/ecrire/install/etape_ldap4.php
www/ecrire/install/etape_ldap5.php
www/ecrire/install/etape_sup1.php
www/ecrire/install/etape_sup2.php
www/ecrire/lang/ecrire_ast.php
www/ecrire/lang/ecrire_bg.php
www/ecrire/lang/ecrire_br.php
www/ecrire/lang/ecrire_bs.php
www/ecrire/lang/ecrire_ca.php
www/ecrire/lang/ecrire_cpf.php
www/ecrire/lang/ecrire_cpf_hat.php
www/ecrire/lang/ecrire_cs.php
www/ecrire/lang/ecrire_da.php
www/ecrire/lang/ecrire_de.php
www/ecrire/lang/ecrire_en.php
www/ecrire/lang/ecrire_eo.php
www/ecrire/lang/ecrire_es.php
www/ecrire/lang/ecrire_fa.php
www/ecrire/lang/ecrire_fr.php
www/ecrire/lang/ecrire_gl.php
www/ecrire/lang/ecrire_hu.php
www/ecrire/lang/ecrire_id.php
www/ecrire/lang/ecrire_it.php
www/ecrire/lang/ecrire_it_fem.php
www/ecrire/lang/ecrire_ja.php
www/ecrire/lang/ecrire_km.php
www/ecrire/lang/ecrire_lb.php
www/ecrire/lang/ecrire_my.php
www/ecrire/lang/ecrire_nl.php
www/ecrire/lang/ecrire_oc_auv.php
www/ecrire/lang/ecrire_oc_gsc.php
www/ecrire/lang/ecrire_oc_lms.php
www/ecrire/lang/ecrire_oc_lnc.php
www/ecrire/lang/ecrire_oc_ni.php
www/ecrire/lang/ecrire_oc_ni_la.php
www/ecrire/lang/ecrire_oc_prv.php
www/ecrire/lang/ecrire_oc_va.php
www/ecrire/lang/ecrire_pl.php
www/ecrire/lang/ecrire_pt.php
www/ecrire/lang/ecrire_pt_br.php
www/ecrire/lang/ecrire_ro.php
www/ecrire/lang/ecrire_ru.php
www/ecrire/lang/ecrire_sv.php
www/ecrire/lang/ecrire_tr.php
www/ecrire/lang/ecrire_vi.php
www/ecrire/lang/ecrire_zh.php
www/ecrire/lang/public_br.php [changed mode: 0644->0755]
www/ecrire/lang/spip_fr.php
www/ecrire/maj/svn10000.php
www/ecrire/maj/v009.php
www/ecrire/maj/v010.php
www/ecrire/maj/v011.php
www/ecrire/maj/v012.php
www/ecrire/maj/v013.php
www/ecrire/maj/v014.php
www/ecrire/maj/v015.php
www/ecrire/maj/v016.php
www/ecrire/maj/v017.php
www/ecrire/maj/v018.php
www/ecrire/maj/v019.php
www/ecrire/maj/v019_pre193.php
www/ecrire/maj/vieille_base/10000/auxiliaires.php
www/ecrire/maj/vieille_base/10000/create.php
www/ecrire/maj/vieille_base/10000/serial.php
www/ecrire/maj/vieille_base/10000/typedoc.php
www/ecrire/maj/vieille_base/13000/auxiliaires.php
www/ecrire/maj/vieille_base/13000/create.php
www/ecrire/maj/vieille_base/13000/serial.php
www/ecrire/maj/vieille_base/13000/typedoc.php
www/ecrire/maj/vieille_base/1813/create.php
www/ecrire/maj/vieille_base/1813/inc_auxbase.php
www/ecrire/maj/vieille_base/1813/inc_serialbase.php
www/ecrire/maj/vieille_base/1813/inc_typebase.php
www/ecrire/maj/vieille_base/1821/create.php
www/ecrire/maj/vieille_base/1821/inc_auxbase.php
www/ecrire/maj/vieille_base/1821/inc_serialbase.php
www/ecrire/maj/vieille_base/1821/inc_typebase.php
www/ecrire/maj/vieille_base/1915/auxiliaires.php
www/ecrire/maj/vieille_base/1915/create.php
www/ecrire/maj/vieille_base/1915/serial.php
www/ecrire/maj/vieille_base/1915/typedoc.php
www/ecrire/maj/vieille_base/1917/auxiliaires.php
www/ecrire/maj/vieille_base/1917/create.php
www/ecrire/maj/vieille_base/1917/serial.php
www/ecrire/maj/vieille_base/1917/typedoc.php
www/ecrire/maj/vieille_base/1927/auxiliaires.php
www/ecrire/maj/vieille_base/1927/create.php
www/ecrire/maj/vieille_base/1927/serial.php
www/ecrire/maj/vieille_base/1927/typedoc.php
www/ecrire/maj/vieille_base/charger.php
www/ecrire/maj/vieille_base/create.php
www/ecrire/plugins/afficher_liste.php
www/ecrire/plugins/afficher_nom_plugin.php
www/ecrire/plugins/afficher_plugin.php
www/ecrire/plugins/afficher_plugin_distant.php
www/ecrire/plugins/afficher_repertoires.php
www/ecrire/plugins/extraire_boutons.php
www/ecrire/plugins/extraire_pipelines.php
www/ecrire/plugins/get_infos.php
www/ecrire/plugins/verifie_conformite.php
www/ecrire/prive.php
www/ecrire/public.php
www/ecrire/public/admin.php
www/ecrire/public/aiguiller.php
www/ecrire/public/assembler.php
www/ecrire/public/balises.php
www/ecrire/public/boucles.php
www/ecrire/public/cacher.php
www/ecrire/public/compiler.php
www/ecrire/public/composer.php
www/ecrire/public/criteres.php
www/ecrire/public/debusquer.php
www/ecrire/public/decompiler.php
www/ecrire/public/format_html.php
www/ecrire/public/interfaces.php
www/ecrire/public/jointures.php
www/ecrire/public/normaliser.php
www/ecrire/public/parametrer.php
www/ecrire/public/phraser_html.php
www/ecrire/public/quete.php
www/ecrire/public/references.php
www/ecrire/public/stats.php
www/ecrire/public/styliser.php
www/ecrire/public/tracer.php
www/ecrire/public/vertebrer.php [changed mode: 0644->0755]
www/ecrire/req/mysql.php
www/ecrire/req/pg.php
www/ecrire/req/sqlite2.php
www/ecrire/req/sqlite3.php
www/ecrire/req/sqlite_fonctions.php
www/ecrire/req/sqlite_generique.php
www/ecrire/typographie/en.php
www/ecrire/typographie/fr.php
www/ecrire/urls/arbo.php
www/ecrire/urls/generer_url_forum.php
www/ecrire/urls/html.php
www/ecrire/urls/libres.php
www/ecrire/urls/page.php
www/ecrire/urls/propres.php
www/ecrire/urls/propres2.php
www/ecrire/urls/propres_qs.php
www/ecrire/urls/standard.php
www/ecrire/xml/analyser_dtd.php
www/ecrire/xml/indenter.php
www/ecrire/xml/interfaces.php
www/ecrire/xml/sax.php
www/ecrire/xml/valider.php
www/extensions/compresseur/formulaires/configurer_compresseur.php
www/extensions/compresseur/lib/JavascriptPacker/class.JavaScriptPacker.php
www/extensions/compresseur/plugin.xml
www/extensions/filtres_images/filtres/couleurs.php
www/extensions/filtres_images/filtres/images_lib.php
www/extensions/filtres_images/filtres/images_transforme.php
www/extensions/filtres_images/filtres/images_typo.php
www/extensions/filtres_images/images_fonctions.php
www/extensions/filtres_images/inc/filtres_images.php
www/extensions/filtres_images/inc/filtres_images_compat.php
www/extensions/filtres_images/plugin.xml
www/extensions/msie_compat/action/configurer_iecompat.php
www/extensions/msie_compat/configuration/ie6config.php
www/extensions/porte_plume/configuration/porte_plume.php
www/extensions/porte_plume/formulaires/configurer_porte_plume.php
www/extensions/porte_plume/javascript/jquery.markitup_pour_spip.js
www/extensions/porte_plume/javascript/jquery.previsu_spip.js
www/extensions/porte_plume/plugin.xml
www/extensions/safehtml/inc/safehtml.php
www/extensions/safehtml/lib/safehtml/classes/HTMLSax3.php [changed mode: 0644->0755]
www/extensions/safehtml/lib/safehtml/classes/HTMLSax3/Decorators.php [changed mode: 0644->0755]
www/extensions/safehtml/lib/safehtml/classes/HTMLSax3/States.php [changed mode: 0644->0755]
www/extensions/safehtml/lib/safehtml/classes/safehtml.php [changed mode: 0644->0755]
www/extensions/safehtml/lib/safehtml/license.txt [changed mode: 0644->0755]
www/extensions/safehtml/lib/safehtml/readme-SPIP.txt [changed mode: 0644->0755]
www/extensions/safehtml/lib/safehtml/readme.txt [changed mode: 0644->0755]
www/extensions/vertebres/public/vertebrer.php [changed mode: 0644->0755]
www/favicon.ico [deleted file]
www/prive/aide_body.css
www/prive/aide_menu.html
www/prive/formulaires/editer_article.php
www/prive/formulaires/editer_auteur.php
www/prive/formulaires/editer_breve.php
www/prive/formulaires/editer_groupe_mot.php
www/prive/formulaires/editer_mot.php
www/prive/formulaires/editer_rubrique.php
www/prive/formulaires/editer_site.php
www/prive/formulaires/editer_site_fonctions.php
www/prive/formulaires/login.html
www/prive/formulaires/login.php
www/prive/formulaires/selecteur_groupe_mot_fonctions.php
www/prive/ical_prive.html
www/prive/images/cfg-16.png [changed mode: 0644->0755]
www/prive/images/rien.gif [changed mode: 0644->0755]
www/prive/informer_auteur_fonctions.php
www/prive/javascript/async_upload.js
www/prive/javascript/gadgets.js
www/prive/javascript/jquery.autosave.js
www/prive/javascript/jquery.form.js
www/prive/javascript/login.js
www/prive/javascript/multilang.js
www/prive/modeles/audio.html
www/prive/modeles/pagination_page_precedent_suivant.html
www/prive/rss_fonctions.php
www/prive/spip_admin.css
www/prive/style_prive.html
www/prive/transmettre/signatures_article.html
www/prive/vignettes/epub.png [new file with mode: 0644]
www/prive/vignettes/ogv.png [new file with mode: 0644]
www/prive/vignettes/webm.png [new file with mode: 0644]
www/spip.php
www/squelettes-dist/formulaires/ecrire_auteur.php
www/squelettes-dist/formulaires/forum.php
www/squelettes-dist/formulaires/inscription.php
www/squelettes-dist/formulaires/mot_de_passe.php
www/squelettes-dist/formulaires/oubli.php
www/squelettes-dist/formulaires/recherche.php
www/squelettes-dist/formulaires/signature.php
www/squelettes-dist/formulaires/site.php
www/squelettes-dist/habillage.css [changed mode: 0644->0755]
www/squelettes-dist/impression.css [changed mode: 0644->0755]
www/squelettes-dist/inc-rss-item.html
www/squelettes-dist/polices/dustismo-license.txt [changed mode: 0644->0755]
www/squelettes-dist/polices/dustismo.ttf [changed mode: 0644->0755]
www/squelettes-dist/polices/dustismo_bold.ttf [changed mode: 0644->0755]
www/squelettes-dist/puce.gif
www/squelettes-dist/spip.ico [changed mode: 0644->0755]
www/svn.revision

diff --git a/scripts/maj.sh b/scripts/maj.sh
new file mode 100755 (executable)
index 0000000..8462b1d
--- /dev/null
@@ -0,0 +1,91 @@
+#!/bin/sh
+#
+# Ce script a pour objectif de mettre à jour un spip en protégeant les chemins
+# variables.
+#
+# TODO: vérifier les vérsions, et ne faire la maj que si nécessaire
+
+set -e
+
+BASE_DIR="$(readlink -e "$(dirname "$0")/..")"
+TMP_DIR="$(mktemp -d)"
+NEW_SPIP_DIR="$TMP_DIR/spip"
+CUR_SPIP_DIR="$BASE_DIR/www"
+EXCLUDED= \
+
+cmd() {
+    notice " * running cmd:" "$@"
+    "$@" || { notice " ! command failed ret=$?" ; exit 1 ; }
+}
+
+notice() {
+    if [ "$LOGLVL" -gt 0 ]
+    then
+        echo "$@"
+    fi
+}
+
+cleanup() {
+    [ ! -d "$TMP_DIR" ] || cmd rm -rf "$TMP_DIR"
+}
+
+trap cleanup INT QUIT STOP TERM KILL EXIT
+
+# Traitement des arguments
+SOURCE=""
+LOGLVL=1
+while [ $# -gt 0 ]
+do
+    case "$1" in
+        -s|--source)
+            shift
+            SOURCE="$1"
+            ;;
+        -v|--verbose)
+            LOGLVL=2
+            ;;
+        -q|--quiet)
+            LOGLVL=0
+            ;;
+    esac
+    shift
+done
+
+if [ ! "$SOURCE" ]
+then
+    # Par default on prend la branche 3.0
+    SOURCE="http://files.spip.org/spip/archives/SPIP-v2-1.25.zip"
+fi
+
+cmd wget \
+    $( [ "$LOGLVL" -gt 1 ] || echo -n '-q') \
+    "$SOURCE" -O "$TMP_DIR/spip.zip"
+
+cmd unzip \
+    $( [ "$LOGLVL" -gt 1 ] || echo -n '-q') \
+    ${VERBOSE:+-q} "$TMP_DIR/spip.zip" -d "$TMP_DIR"
+
+[ -d "$CUR_SPIP_DIR" ] || cmd mkdir -p "$CUR_SPIP_DIR"
+
+cmd rsync -a --delete \
+    --exclude /IMG/ \
+    --exclude /config/chmod.php \
+    --exclude /config/connect.php \
+    --exclude /config/mes_options.php \
+    --exclude /lib/ \
+    --exclude /local/ \
+    --exclude /plugins/ \
+    --exclude /squelettes/ \
+    --exclude /themes/ \
+    --exclude /tmp/ \
+    "$NEW_SPIP_DIR/" \
+    "$CUR_SPIP_DIR/"
+
+for SPECIAL_DIR in\
+    IMG\
+    config\
+    local\
+    tmp
+do
+    install -d -m 777 "$CUR_SPIP_DIR/$SPECIAL_DIR"
+done
index eab40de..c534b76 100644 (file)
@@ -1,4 +1,234 @@
+
+SPIP-Core spip-2.1.24 -> spip-2.1.25  19 janvier 2014
+-------------------------------------------------------------
+r20969 | guytarr   |  (ven. 15 nov. 2013) | oubli problematique de r17980 dans r20926  : ne pas envoyer X-Spip-Cache:0 (erational)resout #3094
+r20972 | denisb    |  (ven. 15 nov. 2013) | filtres.php, editer_auteur.php, inscription.php : éviter un xss sur le nom (signature) d'un auteur (report de r20532).
+r20993 | esj       |  (sam. 23 nov. 2013) | Dans le critere agenda, le premier argument était traité trop à l'arrach: * on imposait qu'il soit littéral, * mais on ne vérifiait pas que c'était bien un champ de la table SQL.A présent on accepte que cet argument soit calculé, et on vérifie dans les deux cas qu'il s'agit bien d'un champ de la table. Sinon, on signale une erreur dès la compilation pour le premier cas, mais pour le second on prend arbitrairement le premier champ (c'est une erreur de l'internaute, pas de l'auteur du squelette).
+r21015 | esj       |  (mer. 27 nov. 2013) | Des indéfinis dans une boucle, c'est le commit de répétitions ?
+r21018 | denisb    |  (mer. 27 nov. 2013) | ecrire/inc/filtres.php : modification de la fonction de filtrage du nom/signature. on introduit la constante _TAGS_LOGIN (vide par défaut, définissable dans mes_options.php) qui liste les tags html acceptables en plus de <multi> .
+r21020 | esj       |  (mer. 27 nov. 2013) | Quand on tente de créer un mot de même titre qu'un mot existant, il est pénible que le message d'avertissement ne donne pas le lien vers celui-ci. On le rajoute, et comme il peut y en avoir plusieurs, on met en bulle tous leurs ID.
+r21021 | esj       |  (sam. 30 nov. 2013) | Dans le code PostGres, une utilisation de strpos sans vérifier que son 2e arg est non vide. Résoud le 2e pb de #3100.
+r21026 | esj       |  (mar. 03 déc. 2013) | Certaines des pages d'installation de la connexion Ldap avaient le focus sur le bouton de soumission et d'autes non. On unifie.
+r21031 | esj       |  (mar. 03 déc. 2013) | Complément à r20277, sur le paramétrage de l'export de la base SQL. La fonction recevant en argument une Row, le nom de la table et de la clé primaire reçoit à présent comme argument supplémentaire le nom de la base, c'est utile parfois. Rien de changé pour l'export habituel vers un ficher XML.
+r21034 | denisb    |  (sam. 07 déc. 2013) | ecrire/inc/filtres.php : _TAGS_LOGIN la mal nommée est rebaptisée _TAGS_NOM_AUTEUR (RastaPopoulos.)
+r21084 | fil       |  (dim. 22 déc. 2013) | report en 2.1 de la machinerie _PREVIEW_TOKEN
+r21094 | denisb    |  (mar. 31 déc. 2013) | ecrire/inc/getdocument.php : compatibilité pcre 8.34 (php 5.5). le tiret pour ne pas être considéré comme marque d'intervalle dans une classe de caractères doit être placé soit au début, soit à la fin de l'énumération. report de r21091.
+r21097 | denisb    |  (mer. 01 janv. 2014) | bonne année 2014 !
+
+SPIP-plugins-dist spip-2.1.24 -> spip-2.1.25  19 janvier 2014
+-------------------------------------------------------------
+r79784 | denisb    |  (mer. 01 janv. 2014) |  feliĉan novan jaron 2014 !
+
+
+
+SPIP-Core spip-2.1.22 -> spip-2.1.23  27 mai 2013
+-------------------------------------------------------------
+
+r20560 | cedric    |  (ven. 24 mai 2013) | suite à r20552 #FORMULAIRE_INSCRIPTION sans argument utilisé dans la page sommaire de squelettes-dist n'était plus fonctionnel.On rétablit le meilleur choix possible (1comite ou 6forum) au niveau de la fonction de la balise dans ce cas particulier (et on enleve la valeur par defaut sur la page identifiants car elle n'est pas equivalente)
+r20564 | ben       |  (ven. 24 mai 2013) | changelog spip 2.1.22
+r20591 | cedric    |  (sam. 25 mai 2013) | Report de r20576 : amelioration de r20562 : si le mode n'est pas fourni, on teste 1comite puis 6forum et on renvoit celui qui est autorise.Evite la duplication de code (Emmanuel)
+r20594 | esj       |  (dim. 26 mai 2013) | Retour sur r19989, correction des arguments des chaînes de langue lorsqu'il s'agit de balise: non seulement on admet des arguments à cette balise, mais à présent aussi des filtres. Ainsi on permet ici ce qu'on permet dans les arguments d'Inclure. Il suffisait de ne pas refuser le caractère "|" entre les signes "=" et "," (ce qui ne servait à rien), puis d'appliquer un code éprouvé.
+r20598 | ben       |  (lun. 27 mai 2013) | 2.1.23
+
+
+SPIP-Core spip-2.1.21 -> spip-2.1.22  24 mai 2013
+-------------------------------------------------------------
+r20438 | esj       |  (mar. 23 avril 2013) | La saleté annoncée par 14467 quant au passage en minuscule du nom du fichier de connexion avait été nettoyée par r16365, mais il restait 2 cas non vus: sql_showbase et sql_showtable. On applique les mêmes corrections ce qui fait disparaitre les messagess d'erreurs SQL dans les logs. Mais ces 2 blocs de code identiques ne sont peut-être plus nécessaires, car trouver_table s'est beaucoup amélioré depuis leur introduction en r10113 et r10371. Dans le doute, je les laisse maintenant qu'ils sont corrigés.
+r20445 | denisb    |  (ven. 26 avril 2013) | ajouter_documents.php : corrige le bug qui remplaçait les '1' du nom des fichiers par un espace (http://permalink.gmane.org/gmane.comp.web.spip.user/181328)
+r20455 | esj       |  (sam. 27 avril 2013) | Le déclenchement de la prévisualisation était mal situé, car en amont des exécutions éventuelles de code PHP présents dans le code compilé du squelette.C'était déjà peu jouable pour la prévisualisation HTML, franchement inutilisablepour une prévisualisation PDF (voir notamment le"plugin spipdf":http://contrib.spip.net/spiPDF-v0-2-1-generer-des-contenus-sur-mesure-en-PDFqui oblige à dédoubler tous les squelettes faute de pouvoir faire ça).On déplace donc un peu en aval ce déclenchement, et on confie le comportementstandard à une fonction surchargeable: "public_previsualisation".Comme exemple d'utilisation avec la lib mpdf (à installer)rajouter dans squelettes-dist/formulaires/administration.htmlle bouton suivant :<pre><code class='html'>[<a class="spip-admin-boutons"     href="(#VAL{lib/mpdf}|is_dir|?{#SELF}    |parametre_url_nonvide{var_mode,preview}        |parametre_url_nonvide{pdf,1})">PDF</a>]</code></pre>et définir dans mes_fontions.php<pre><code class='php'>function public_previsualisation($page){  if (!_request('pdf') OR !is_readable($f = _DIR_RACINE . 'lib/mpdf/mpdf.php'))    return public_previsualisation_dist($page);  include_once($f);  $f = str_replace(' ', '_', $GLOBALS['meta']['nom_site']) . '.pdf';  $GLOBALS['flag_preserver'] = true;  $page['entetes']['Content-Type'] = "application/pdf";  $page['entetes']['Content-Disposition'] = "attachment; filename=$f";  $mpdf = new mPDF($GLOBALS['meta']['charset']);  $mpdf->WriteHTML($page['texte']);  $page['texte'] = $mpdf->Output('', 'S');  return $page;}function parametre_url_nonvide($url, $c, $v=NULL, $sep='&amp;') {       return !$url ? '' : parametre_url($url, $c, $v, $sep);}</code></pre>
+r20462 | esj       |  (lun. 29 avril 2013) | Le paramètre optionnel "public", forçant la construction d'URL dans l'espace public, apparu dans generer_action_auteur lors de r12798 et r13014, doit être aussi proposé dans la redirige_action_auteur qui appelle celle-ci, autrement ça oblige à la réécrire à chaque fois.
+r20463 | esj       |  (lun. 29 avril 2013) | Complément à r20462: évidemment du coup l'URL de l'adresse de retour doit aussi prendre en compte dans quel espace elle sera activée.
+r20483 | fil       |  (dim. 05 mai 2013) | si un login n'existe pas, plutot que de piocher les infos sur un autre login (au risque de fournir la photo d'un auteur sans lien lorsqu'on se trompe dans son email), inventer une reponse credible a base de secret_du_site(), de la date du jour, et du login
+r20485 | denisb    |  (lun. 06 mai 2013) | chercher_rubrique.php : accessibilité ; ajouter un alt explicite sur la loupe qui affiche la liste des rubriques ; ajout de la chaîne de langue correspondante (report de r20484)
+r20487 | fil       |  (lun. 06 mai 2013) | ajouter un debug utile dans log/mysql-slow.log ; avec {{{define('_DEBUG_SLOW_QUERIES', true);}}} dans mes_options (a ajouter un plugin dev j'imagine ?)
+r20491 | denisb    |  (mar. 07 mai 2013) | suite de r20485 : soyons plus générique, le sélecteur peut servir pour autre chose que des rubriques.
+r20511 | cedric    |  (sam. 11 mai 2013) | Ferme #2889 : forcer la date du jour quand on a pas reussi a lire la date d'un item
+r20524 | cedric    |  (jeu. 16 mai 2013) | Ferme #2999 : dans le core on definit _IS_BOT en fallback si l'ecran de securite n'est pas present. Pour cela il faut le faire après l'inclusion ! (on n'avait raté ça car on utilise généralement l'écran en php_auto_append)
+r20527 | denisb    |  (ven. 17 mai 2013) | prive/formulaires/login.html : ajout de la variable lang dans le lien vers le formulaire de rappel du mot de passe. report de r20525
+r20541 | cedric    |  (mer. 22 mai 2013) | Inscription d'un auteur : le commentaire dit "Si mode inconnu laisser faire, c'est une extension non std", mais passer quand meme par une autorisation, qui par défaut sera a false (puisque l'auteur est non connu, donc non identifié, il n'a aucun droit par defaut).Il suffit que autoriser("inscrireauteur","xxx") renvoie true pour permettre l'inscription d'un auteur avec le statut xxx
+r20552 | esj       |  (jeu. 23 mai 2013) | Retour sur r20451, révision des autorisations d'inscriptions. La fonction tester_config devient un appel à une fonction surchargeable autoriser_inscrire prenant en argument le type d'inscription et éventuellement l'ID d'une rubrique. Par défaut cette fonction n'accepte que les types 6forum et 1comite, et ignore la rubrique.
+r20555 | cedric    |  (ven. 24 mai 2013) | Suite de r20552 et r20541 : on nomme l'autorisation autoriser('inscrireauteur',$mode,$id_rubrique) pour plus de lisibilite et eviter toute collision avec un autre type d'inscription
+r20558 | ben       |  (ven. 24 mai 2013) | SPIP 2.1.22
+r20560 | cedric    |  (ven. 24 mai 2013) | suite à r20552 #FORMULAIRE_INSCRIPTION sans argument utilisé dans la page sommaire de squelettes-dist n'était plus fonctionnel.On rétablit le meilleur choix possible (1comite ou 6forum) au niveau de la fonction de la balise dans ce cas particulier (et on enleve la valeur par defaut sur la page identifiants car elle n'est pas equivalente)
+
+
+
+SPIP-Core spip-2.1.20 -> spip-2.1.21  21 avril 2013
+-------------------------------------------------------------
+r20332 | esj       |  (lun. 18 mars 2013)  | Tres vieux bug dans l'export partiel de base: le commentaire ci-dessous modifié disait bien qu'il fallait veiller à avoir la table des documents liés aux articles avant la table des documents. Cet avertissement a été ignoré à un moment, probablement quand on est passé à une table des liens générique. De fait, l'export partiel avait toujours une liste de documents vide.
+r20334 | b_b       |  (mar. 19 mars 2013)  | Ferme #2961 : cacher le bouton de la page d'admin des plugins avec du js et non des css
+r20343 | esj       |  (jeu. 21 mars 2013)  | Affichage du bloc de document: lorsqu'un nom est trop long, il déborde du cadre et s'affiche sur le formulaire de saisie à côté. C'est particulièrement le cas pour les documents distants. Comme ce nom est répété en bas du document, on affiche que le domaine de l'URL en haut. Quant au nom en bas dont seul le début et la fin sont écrits lorsqu'il est trop long, il vaut mieux écrire un début plus long et pas la fin, puisque celle-ci est l'extension du fichier, information déjà donnée 2 fois par le type de document et son logo.
+r20350 | marcimat  |  (ven. 22 mars 2013)  | Report de 71003 : Validité XHTML, suite de r70994  qui ne convenait pas ! (freebsnet)
+r20386 | esj       |  (ven. 29 mars 2013)  | Je serai surpris que l'accessibilité recommande que le lien vers un article, au lieu d'être limité à son titre, engloble un icône qui n'a rien à voir mais possède un autre "title" que le descriptif de l'article, le logo de l'article déporté par un Float, avec visuellement parfois entre le titre et logo le nom de la langue qui n'est pas cliquable, et le mot "pétition" qui est clicable mais pour un autre lien. Ouf. On limite au seul titre de l'article.
+r20387 | esj       |  (ven. 29 mars 2013)  | Distinguer le titre '0' d'un titre vide (Fil).
+r20396 | esj       |  (dim. 31 mars 2013)  | Lorsque le chemin à un document (notamment un distant) dépasse 255 caractères, le dire et refuser de le charger, plutôt que de le mettre en base avec un nom tronqué qui ne sert qu'à tromper l'utilisateur.
+r20403 | b_b       |  (mer. 03 avril 2013) | syntaxe actualisée pour #LOGO_
+r20407 | esj       |  (lun. 08 avril 2013) | Deux problèmes dans le squelette du calendrier privé, avec conséquence: * quelques chaînes n'étaient pas soumises au filtre encodant les entités XML (que ICS ne connait pas), c'était très laid; * les URL avaient le caractère & encodé sous forme d'entité XML, ce qui les rendaient inopérantes sous ICS.Le dernier point a nécessité d'aligner la balise URL_ECRIRE sur URL_PAGE: si elles ont un étoile, &  ne sont pas encodées.
+r20409 | b_b       |  (mar. 09 avril 2013) | report de r2043 : On remplace thumbshots.com qui demande maintenant une inscription par apercite.fr. On supprime aussi girafa qui a disparu depuis longtemps.
+r20418 | esj       |  (mar. 16 avril 2013) | Lorsque l'algorithme de mot ressemblant ne trouve rien, remettre la saisie dans l'attribut "value" pour pouvoir rejouer rapidement le formulaire d'ajout d'auteur après correction.
+
+SPIP-plugins-dist spip-2.1.20 -> spip-2.1.21  21 avril 2013
+-------------------------------------------------------------
+r71028 | suske     |  (sam. 23 mars 2013) | S'il vous plait (http://comments.gmane.org/gmane.comp.web.spip.zone/31692)
+
+
+
+SPIP-Core spip-2.1.19 -> spip-2.1.20  18 mars 2013
+-------------------------------------------------------------
+
+r19920 | ben       |  (lun. 17 sept. 2012) | préparons gentillement la version suivante
+r19989 | esj       |  (jeu. 01 nov. 2012) | Le phrasé des arguments d'une chaîne de langue dans un squelette était à l'ouest lorsque la valeur d'un argument était une balise à plusieurs arguments. Dans certains cas ça produisait même une fausse erreur de filtre indéfini. Exemple d'écriture possible à présent (cf. plugin Associaspip):<:asso:config_aide_pc_ressources{url=#URL_ECRIRE{'edit_plan',       retour=configurer_association&champ=pc_ressources}}:>
+r19992 | esj       |  (lun. 05 nov. 2012) | Amélioration de la présentation des résultats du validateur en boucle.
+r20016 | esj       |  (dim. 18 nov. 2012) | Eviter des warnings.
+r20019 | esj       |  (mar. 20 nov. 2012) | Eviter des nombres dans le Group-By en PG (Lesage & Cohen)
+r20035 | esj       |  (mer. 05 déc. 2012) | Suite de r19989 sur les arguments d'une chaîne de langue dans un squelette. Le cas d'un argument sans nom, comme <:foo{=val1,arg=val2}:>, n'était pas dénoncé par le phraseur comme un erreur, mais était silencieusement éliminé ultérieurement par le compilateur (et le décompilateur).Comme, de plus, la syntaxe des chaînes de langues dans un squelette ne fournit pas la possibilité d'avoir une chaîne de langue calculée, alors que la fonction _T sous-jacente le permet, on utilise cette syntaxe ignorée pour introduire cette possibilité. Ainsi, la syntaxe:<pre><:foo:{=#ENV{titre},x=2}:></pre>sera compilée en<pre>_T('foo:' . $Pile[0]['titre'], array('x' => 2))</pre>et de même pour n'importe quelle expression figurant après "{=".Cette possibilité évite l'artifice d'utiliser obscurément _T en filtre,comme cela se fait plus de 2000 fois sur SPIP-Zone.Langonet peut ainsi repérer ces chaînes auparavant indétectables.
+r20036 | esj       |  (jeu. 06 déc. 2012) | Accessibilité et validité: donner des libellés différents pour des liens différents, et ne pas utiliser "rel" à contre-emploi (voir les valeurs possibles dans http://www.w3.org/TR/html401/types.html#type-links).
+r20045 | esj       |  (mar. 11 déc. 2012) | Remaniement du code produisant l'en-tête HTML de l'espace privé, afin de pouvoir en changer le DOCTYPE sans avoir à tout réécrire pour respecter celui-ci. Pour ce faire: * la fonction produisant les gadgets est éclatée en plusieurs afin de remplacer aisément ceux qui ne vont pas; * html_lang_attributes admet un argument optionnel demandant ou non l'attribut "dir"; * le code Javascript écrit en dur dans la page HTML migre dans le fichier gadget.js dont il appelait déjà une fonction, et est remplacé par un unique appel de fonction; * les fonctions envoi_link et debut_javascript admettent un argument optionnel supplémentaire, code Javascript à insérer à la fin de celui produit, ce qui permet de fusionner les deux balises scripts existant auparavant.A noter que la concacténation automatique en un seul des fichiers JS des attributs "src" des balises "script" fait l'hypothèse que le code JS des autres balises scripts n'influent pas sur les fichiers JS auparavant chargés après celles-ci, puisque la concaténation fait qu'il sont chargés désormais avant. L'hypothèse est juste à l'heure actuelle et c'est tant mieux, mais les plugins doivent savoir qu'il faut la respecter.Au passage, à une certaine époque tous les scripts de l'espace privé étaient valide XHTML strict, 21 ne le sont plus à présent, il faudra y revenir.
+r20047 | esj       |  (mar. 11 déc. 2012) | Le validateur intégré n'avait notoirement jamais su traiter complètement les squlettes internes. C'était en particulier le cas des squelettes de prive/exec, qu'on arrive à traiter correctement à présent. Pour les autres, c'est toujours le problème de fabriquer automatiquement un contexte plausible pour un squelette donné, ce n'est pas trivial.
+r20052 | esj       |  (ven. 14 déc. 2012) | Invalidité XHTML dans le fichier de langue français. On fait comment pour reperter dans les autres ?
+r20053 | esj       |  (sam. 15 déc. 2012) | Invalidité XHTML dans les fichiers de langue, et parfois même inconformité XML. Ca montre au passage que mettre dans les fichiers de langue est à éviter: le risque d'éliminer une balise lors d'une traduction est trop grand. Ou alors il faut que trad-lang le vérifie avant d'accepter d'enregistrer.
+r20054 | esj       |  (lun. 17 déc. 2012) | Validateur intégré: même quand on ne l'utilise pas en boucle, se rabattre sur la fonction suffixée "_args" quand l'exécution de la fonction préfixée "exec_" ramène un message d'erreur fabriqué par Minipres. Et inclure dans le titre de la page le nom de ce qu'on essaye de valider, c'est mieux pour l'historique du navigateur.
+r20055 | esj       |  (mar. 18 déc. 2012) | Accès aux documents protégés, retour sur r13924: ne pas envoyer le "Content-Disposition: attachment; filename=..." Pour tous les documents réputés "embed" pas seulement les images comme auparavant pose problème pour certains cas: ça marche pour Flash et PDF, mais pas pour le mp4, et le document est du coup créé sous le nom "spip.php" avec un contenu qui n'est pas du PHP mais du mp4 ce qui le rend inutilisable si on ne le renomme pas manuellement. Pour éviter ça, on envoie un  "Content-Disposition: inline; filename=...".Mais d'après:http://greenbytes.de/tech/tc2231il n'y a que Firefox qui en tient compte. Examen fait, Safari 5.1.7 a progressé depuis la publication de cette page, espérons que les autres aussi.
+r20056 | gilles    |  (mar. 18 déc. 2012) | Eviter des warnings inutiles (un file_exists() avant le filemtime serait peut-etre une meilleure option)for file in `fgrep -R filemtime * | grep -v '@filemtime' | grep -v svn | awk -F: '{print $1}' |uniq`; do sed -i 's/filemtime/@filemtime/' $file ; done
+r20057 | gilles    |  (mar. 18 déc. 2012) | revert du commit 20056 (mega Oups')
+r20058 | gilles    |  (mar. 18 déc. 2012) | file_exists() avant filemtime() -- lorsque le controle n'avait pas ete fait avant (sans bug cette-fois ci --je touche du bois)
+r20060 | esj       |  (mar. 18 déc. 2012) | Encore Revert autour de r20058 pour le validateur intégré: le file_exists a été fait pour find_in_path pour le cas SYSTEM, et pour le cas PUBLIC l'absence de fichier est normale, puisque c'est une URL."
+r20063 | esj       |  (mer. 19 déc. 2012) | Invalidité XHTML strict dans les fichiers de langue.
+r20064 | esj       |  (mer. 19 déc. 2012) | Invaldité XHTML dans les Exec, et éviter au validateur intégré de provoquer des warnings lorsque la fonction "_args" attend beaucoup d'arguments.
+r20065 | fil       |  (jeu. 27 déc. 2012) | image/jpg est parfois envoye par des serveurs mal programmes (http://www.cairn.info/loadimg.php?FILE=EG/EG_393/EG_393_0197/fullEG_id9782701156200_pu2010-03s_sa02_art02_img001.jpg)
+r20096 | fil       |  (sam. 12 janv. 2013) | affiner le bookmarklet pour ne plus exploser les accents dans les URLs de wikipedia (ou ailleurs)
+r20097 | fil       |  (sam. 12 janv. 2013) | annule [20096]
+r20103 | fil       |  (ven. 18 janv. 2013) | ne pas copier directement le fichier distant a sa destination, sinon un autre processus concurrent peut croire qu'il est present et le traiter (ca donne des images incompletes si on applique un filtre de reduction 'trop tot')
+r20104 | fil       |  (sam. 19 janv. 2013) | une strategie un peu meilleure : lock/rename
+r20115 | fil       |  (mar. 22 janv. 2013) | fusion des inc/distant de la branche 2.1 et de la branche 3 ; ca permet de revenir sur [20104], sur la branche 2.1, qui etait un peu buggue, et surtout deja regle sur le trunk (spip3) en [19461]au passage, ca reporte aussi [19231] (documents proteges, faussement distants) sur le trunka noter : les modifications d'espaces et de tabulations, bien que effectivement ameliorant le source, produisent de nombreux diffs 'muets' qu'il a fallu verifier un par un... au final une perte de temps desagreable
+r20162 | fil       |  (mar. 19 févr. 2013) | si on met une etoile dans un mot de recherche, surligner les mots trouves sans etoile
+r20199 | fil       |  (mer. 27 févr. 2013) | quand on passe par un GET on a des chances d'obtenir la ressource complete, il ne faut donc pas se limiter a 1Mo dans ce cas, mais a _COPIE_LOCALE_MAX_SIZE
+r20200 | esj       |  (mer. 27 févr. 2013) | Complément à r12071 repérant les colonnes numériques dans une table HTML: on ne reconnaissait pas ".9" comme étant un nombre, et il ne faut pas qu'une cellule vide invalide le statut numérique de toute une colonne.
+r20201 | fil       |  (mer. 27 févr. 2013) | retour sur [20199] : pour ne pas exploser la memoire, il faut une autre approche du problemeici, on evite d'enregistrer le fichier en local s'il est incomplet
+r20209 | denisb    |  (jeu. 28 févr. 2013) | Complément à r20200 : reconnaître comme numérique tout contenu de type 123 ; -123 ; + 123 ; 12 345 ; 12.34 ; 123,4
+r20229 | esj       |  (sam. 02 mars 2013) | Lorsque r10917 a deplacé la déclaration de bases externes des scripts d'installation vers un onglet activable ultérieurement, on n'a pas remplacé FILE_CONNECT_TMP par FILE_CONNECT (i.e. le fichier de connexion) pour repérer quelle est la base courante, ce qui fait que celle-ci était proposée comme base externe; pas grave, mais pas malin.Quant à la fonction analyse_fichier_connection, lui faire retourner tous les arguments de l'appel de la fonction connexion, pas seulement les 5 premiers: ça permet de savoir quel est le prefixe de table.
+r20255 | esj       |  (dim. 10 mars 2013) | Conformité XML: éviter 2 occurrences d'un même attribut.
+r20276 | esj       |  (mar. 12 mars 2013) | r17431 a ajouté des ` autour du nom des tables dans les requêtes SQL Drop et Repair, avec pour conséquence que le préfixe "spip_" n'était plus remplacé dans "traite_query" car la RegExp n'en tenait pas compte. Je ne comprends pas vraiment l'intérêt de ça puisque pour les autres requêtes cet ajout n'est pas fait (il ne l'est que sur le nom de la base). Comme ça doit servir à qqch je ne defais pas r17431, je me contente de mettre ` que si le nom de table n'est pas alphanumérique: avec un nom pareil, il y a de bonnes chances que ça ne commence pas par "spip_", mais cette hétérogénéité est regrettable.
+r20277 | esj       |  (mar. 12 mars 2013) | un bug et un manque dans l'export et l'import partiels de base: * l'import partiel étant géré par une meta spécifique au demandeur, il n'est pas impossible que plusieurs imports soient demandés simultanément, ce qui exige que la table de translation des numéros des objets soit spécifique au demandeur. Le nom de cette table est donc suffixé par l'id_auteur du demandeur. * les fonctions d'export étaient limitées à une transcription en XML des tables de la base, il n'était donc pas possible d'exporter les tables des bases déclarées externes, et pour en faire autre chose qu'un fichier XML. Ces fonctions sont donc réécrites pour prendre comme arguments supplémentaires optionnels la base concernée et la fonction de transcription. Ces deux arguments peuvent être donnés à la query-string du script export_all mais aucun formulaire ne les fournit en standard. Bien utilisés, ils peuvent provoquer directement une opération d'import-export (au plutôt d'export-import), chaque Row de la base exportée (au niveau de la fonction build_while) étant transmis à une fonction appelant une variante de import_insere en premiere passe, puis import_translate dans la 2e passe.
+r20278 | esj       |  (mar. 12 mars 2013) | Complement pour 20277: cette ligne avait malencontreusement disparue.
+r20304 | esj       |  (ven. 15 mars 2013) | Eviter une ecriture disque pour un log qui n'apprend rien.
+r20308 | esj       |  (sam. 16 mars 2013) | Un bug potentiel dans l'import partiel: un champ id_parent ne doit pas toujours être renuméroté comme étant un id_rubrique, ce n'est pas vrai en particulier dans la table spip_forum (qui actuellement n'est pas importée, le bug n'est donc perceptible que dans d'éventuelles surcharges de ce code qui l'importeraient). Au passage cela montre qu'il y a une typologie implicite dans les tables de SPIP, fondé sur le nom des champs. Les deux champs id_parent devraient s'appeler id_rubrique_parent et id_forum_parent; on arrive à lever l'ambiguité à l'aide de la description de la table, mais ce n'est pas généralisable.Du coup, il faut pouvoir surcharger toutes ces fonctions, aussi on remplace "function_exists" par "charger_fonction". Et quand elles sont absentes, ne le signaler qu'une fois.
+r20309 | esj       |  (sam. 16 mars 2013) | Import partiel: les champs id_vignette sont des références aux clés primaires id_document. Cf http://thread.gmane.org/gmane.comp.web.spip.zone/31355 et http://zone.spip.org/trac/spip-zone/browser/_plugins_/assemblage/trunk/inc/assemblage.php?rev=70785 par Nicolas Dorigny.
+r20323 | esj       |  (lun. 18 mars 2013) | A défaut d'avoir fait ça au solstice d'hiver, faisons-le à l'équinoxe du printemps (même si ça ne fera pas venir celui-ci plus vite).
+
+SPIP-plugins-dist spip-2.1.19 -> spip-2.1.20  18 mars 2013
+-------------------------------------------------------------
+
+r67199 | b_b       |  (sam. 27 oct. 2012) | report de r67198 : réparer generer_url_forum_dist() qui ne renvoyait rien vu qu'on ne lui passait pas le bon argument
+r67738 | cedric    |  (jeu. 15 nov. 2012) | Report de r67734 : La suppression a tort du retour ligne qui suit les commentaires // provoque un bug quand celui ci est en fin d'une ligne sans point-virgule, ce qui est une pratique courante dans les js de Bootstrap (hugues)
+r69328 | jack31    |  (jeu. 24 janv. 2013) | On est en 2013 !
+r69336 | jack31    |  (jeu. 24 janv. 2013) |
+r69338 | jack31    |  (jeu. 24 janv. 2013) |
+
+
+plugins 2.1.13->2.1.14 (22/04/2012)
+----------------------------------------
+r61251 | kent1     | 2012-05-13 12:08:13|Pas besoin de ces logs intempestifs
+
+Core 2.1.13->2.1.14 (14/05/2012)
+--------------------------------
+
+r19298 | cedric    | 2012-04-23 17:47:02| Comme r19253 mais compatible PHP 4
+r19308 | b_b       | 2012-04-25 18:31:10| suivre les changements dans les paramètres du callback success de jquery.form suite à r18809
+r19309 | b_b       | 2012-04-25 19:33:47| oubli dans r19308 pour les zip à déballer
+r19322 | esj       | 2012-04-27 18:29:54| Régression de SPIP 2 par rapport à SPIP 1.9: la boucle syndic_article (et aussi certains cas pour la boucle Auteur) était compilée avec un Group By inutile, particulièrement mal venu à cause d'un bug de certaines versions de MYSQL. Bug  [http://comments.gmane.org/gmane.comp.web.spip.devel/46063 signalé sur spip-dev] il y a déjà longtemps, et relancé par Sebastien Rebaudo.
+r19330 | esj       | 2012-04-30 11:11:41| Certaines instllations de PostGres ne considère pas le backslash comme un caratère d'échappement dans une chaîne, il ne faut donc pas utiliser "addslashes" mais pg_escape_string. La présente correction n'est toutefois pas tout à faite suffisante, à cause de la fonction _q qui n'est toujours pas intégrée à l'interface SPIP/SQL, mais il n'est même pas sûr que le cas problématique puisse émerger.
+r19333 | cedric    | 2012-04-30 17:28:42| Report de r19331 : Evitons aux pirates schizophrènes de se faire du mal
+r19334 | denisb    | 2012-04-30 22:05:19| inc/ajouter_documents.php : on retrouve la fonctionnalité de titrage automatique des fichiers extraits de l'upload d'un zip.
+r19358 | marcimat  | 2012-05-11 15:45:10| Report de r19256 (Éviter une erreur en PHP 5.4)
+r19364 | fil       | 2012-05-14 10:12:12| un son n'a pas de #HAUTEUR /#LARGEUR naturelle : fournir des valeurs par defaut permettant de voir le player
+r19365 | fil       | 2012-05-14 10:13:46| d'autres cas ou il ne faut pas ajouter d'insecable
+r19366 | fil       | 2012-05-14 10:14:43| savoir appliquer les filtres d'images sur les img src=data:...base64
+r19367 | fil       | 2012-05-14 10:16:51| sur un fichier vide ou inexistant, taille en octet renvoie une chaine vide plutot que '0 octets'
+r19368 | fil       | 2012-05-14 10:17:41| detection un peu plus laxiste des blocs echappes
+
+
+plugins 2.1.12->2.1.13 (22/04/2012)
+----------------------------------------
+r56754 | b_b        | 2012-01-07 20:13:34 +0100 (sam. 07 janv. 2012) | 2 lignesorthographe
+r56755 | b_b        | 2012-01-07 20:18:06 +0100 (sam. 07 janv. 2012) | 2 lignesne plus perdre la position du scroll dans les textarea des crayons :)
+r59043 | fil       | 2012-03-03 23:23:43 +0100 (sam. 03 mars 2012) | 1 ligneautoriser les iframe de l'oembed youtube (pour pouvoir les utiliser dans les forums avec le plugin oembed)
+r59045 | fil       | 2012-03-03 23:41:53 +0100 (sam. 03 mars 2012) | 1 lignevimeo... ca risque d'etre long cette affaire...
+
+Core 2.1.12->2.1.13 (22/04/2012)
+--------------------------------
+r18747 | b_b        | 2011-11-19 13:06:42 +0100 (sam. 19 nov. 2011) | attribut_html pour l'attribut value des formulaires
+r18776 | denisb    | 2011-12-07 09:22:03 +0100 (mer. 07 déc. 2011) | ecrire/exec/aide_index.php : protéger les caractères spéciaux des titres de paragraphe.
+r18784 | cy_altern@yahoo.fr | 2011-12-09 13:56:45 +0100 (ven. 09 déc. 2011) | report de http://zone.spip.org/trac/spip-zone/changeset/55295 en 2.1
+r18792 | cy_altern@yahoo.fr | 2011-12-09 18:43:23 +0100 (ven. 09 déc. 2011) | report de http://zone.spip.org/trac/spip-zone/changeset/55304 en 2.1
+r18809 | b_b        | 2011-12-14 14:52:46 +0100 (mer. 14 déc. 2011) | report de r18808 : maj de jquery form en 2.94 (règle un bug sous ie7 entre autres)
+r18818 | denisb    | 2011-12-17 14:32:05 +0100 (sam. 17 déc. 2011) | éviter un open redirect sur le logout.
+r18827 | marcimat  | 2011-12-19 14:26:08 +0100 (lun. 19 déc. 2011) | Une coquille enpêchait l'affichage du lien "suivant" lorsqu'on était sur l'avant dernier élément (choupito, b_b)
+r18829 | cedric    | 2011-12-19 14:54:31 +0100 (lun. 19 déc. 2011) | SQLite :- implementation erronee de TO_DAYS qui doit compter le nombre de jour depuis 0000-00-00 et non le nombre de jour depuis le debut de l'année. Provoquait l'envoi intempestif du mail de nouveautés- simplifier la fonction LEAST qui peut s'appuyer sur le min() de PHP
+r18846 | marcimat  | 2011-12-26 10:57:56 +0100 (lun. 26 déc. 2011) | Report de r18841 (RealEt)
+r18919 | ben      | 2012-01-17 10:15:58 +0100 (mar. 17 janv. 2012) | Happy New Year ... on ne sait jamais si on ressort une version de secu sur la branche 1.9.2 2.0 ou 2.1 les dates seront bonnes
+r18920 | b_b        | 2012-01-17 11:38:05 +0100 (mar. 17 janv. 2012) | ferme #2491 : afficher le formulaire d'édition de mot déplié s'il y a une erreur de doublon sur le titre
+r18925 | esj       | 2012-01-21 09:48:15 +0100 (sam. 21 janv. 2012) | Trois bugs:  * un include manquant pour ask_php_auth (et un redondant) dans les forums;  * remettre le formulaire de recherche d'un auteur si envoi précédent vide (jjméric);  * le zoom avec affichage d'heures du calendrie ne marchait plus dans certains cas.
+r18943 | esj       | 2012-01-31 08:37:48 +0100 (mar. 31 janv. 2012) | Chaîne de langue non traduite depuis la refonte de l'authentification par r14581 et r14594.
+r18946 | fil       | 2012-01-31 13:27:10 +0100 (mar. 31 janv. 2012) | ajout du format epub (closes #2514 joachim sene); 
+r18947 | fil       | 2012-01-31 13:30:37 +0100 (mar. 31 janv. 2012) | oups
+r18948 | cedric    | 2012-01-31 14:47:43 +0100 (mar. 31 janv. 2012) | renumeroter l'upgrade de r18946 pour eviter la collision d'upgrade avec la branche SPIP 3
+r18952 | esj       | 2012-01-31 23:30:44 +0100 (mar. 31 janv. 2012) | Pouvoir appeler la fonction Bouton_spip_rss en lui précisant l'info-bulle, et évacuation de code mort autour de son appel. Au passage, on voit ici que la fonction http_img_pack devrait être évacuée au profit d'une utilisation systématique de background-image dans les CSS: les icones n'ont rien à faire dans le code PHP.
+r18953 | denisb    | 2012-02-01 00:13:41 +0100 (mer. 01 févr. 2012) | ecrire/inc/auth.php : on écrit dans #SESSION{en_ligne} date et heure de connexion.
+r18954 | denisb    | 2012-02-01 08:46:46 +0100 (mer. 01 févr. 2012) | revert de r18953 qui cassait plus qu'il ne réparait...
+r18958 | kent1     | 2012-02-01 18:16:43 +0100 (mer. 01 févr. 2012) | la vignette epub
+r18961 | denisb    | 2012-02-02 17:04:00 +0100 (jeu. 02 févr. 2012) | ecrire/inc/auth.php : on force l'écriture de 'en_ligne' dans le fichier de session pour pouvoir récupérer #SESSION{en_ligne}  dans un squelette. sinon, la valeur dans le fichier reste à zéro et écrase la globale.
+r18967 | b_b        | 2012-02-07 18:06:33 +0100 (mar. 07 févr. 2012) | éviter une XSS sur l'aide en ligne (Silvère Cainaud)
+r18970 | esj       | 2012-02-08 14:49:51 +0100 (mer. 08 févr. 2012) | Isoler dans une fonction ce bout de code bien utile pour attacher un lien à une date.
+r18973 | kent1     | 2012-02-10 15:29:40 +0100 (ven. 10 févr. 2012) | deux vignettes pour :-* ogv (pas terrible, juste une reprise des autres types video);-* webm (pas terrible non plus, basé sur le template pour videos + une partie du logo de webm);
+r18982 | esj       | 2012-02-14 18:01:58 +0100 (mar. 14 févr. 2012) | Bug dans la balise PARAMETRES_FORUM: dans le cas où elle figurait dans la partie alternative d'une boucle, elle ne repérait dans quelle autre boucle elle figurait, et se croyait donc au premier niveau du squelette, sans pouvoir préciser son type de forum.
+r19022 | cam.lafit@azerttyu.net | 2012-02-24 14:31:35 +0100 (ven. 24 févr. 2012) | Déclarer explictement la requete SQL pour un subselect * l'api SQL ne traduit pas le bon préfixe dans un SUBSELECT * On calcule donc la bonne requete SQL à fournirVoir le ticket #2493
+r19023 | esj       | 2012-02-24 16:37:00 +0100 (ven. 24 févr. 2012) | Lorsque r11084 a pu étendre #URL_PAGE aux bases externes, il l'a fait avec la restriction que cela ne pouvait concerner qu'une base sous SPIP. C'est un excès de prudence hérité des #URL_ARTICLE etc: cette balise a justement pour rôle de créer des URLs arbitraires non nécessairement homonyme d'une table dans la base.
+r19024 | cedric    | 2012-02-24 22:42:53 +0100 (ven. 24 févr. 2012) | Retour sur r19022 qui ne corrigeait pas vraiment #2493 car sql_get_select ne transpose pas le prefixe. On decompose la requete en deux pour corriger le bug initial. Ferme #2493
+r19026 | esj       | 2012-02-24 23:31:15 +0100 (ven. 24 févr. 2012) | Quand on appelle la page privé de gestion des pétitions avec un id_signature en argument (lien issu du moteur de recherche), ne pas oublier de le rajouter dans le lien vers l'autre onglet.
+r19027 | esj       | 2012-02-26 00:18:17 +0100 (dim. 26 févr. 2012) | 1Trois petits bugs liés à la gestion des pétitions:  * le moteur de recherche compte sur l'existence de la puce de signature, on la crée;  * afficher_objet supposait l'existence de signature-24.gif, on donne un équivalent;  * quand on appele le script de gestion de signature avec un argument id_signature, ne pas choisir le statut par défaut mais celui de la signature désignée, sinon le moteur de recherche (qui produit un tel appel) semble parler d'un signature inexistante.Ces bugs ont été trouvés suite à la mise en ligne de:http://appel-enseignement-sup-et-recherche.fr/qui implicitement explique pourquoi je ne peux plus participer à SPIP autant qu'avant 2007. J'invite la communauté SPIP à soutenir cette protestation.
+r19028 | esj       | 2012-02-26 19:14:57 +0100 (dim. 26 févr. 2012) | Aussi bizarre que cela puisse paraître j'ai eu:Fatal error: Call to undefined function securiser_redirect_action() in ... ecrire/action/logout.php on line 22lors de la restauration d'une base.
+r19029 | esj       | 2012-02-26 19:23:27 +0100 (dim. 26 févr. 2012) | Complément à r19027: si on appelle controle_petition avec id_signature, ne pas redonner cet argument dans l'URL de l'autre onglet car depuis r19207 il n'y a forcément rien avec un tel argument. Autant redonner accès à la liste de toutes les signatures.
+r19030 | fil       | 2012-02-26 19:50:16 +0100 (dim. 26 févr. 2012) | dans l'espace prive montrer les sauts de ligne
+r19031 | esj       | 2012-02-26 22:15:32 +0100 (dim. 26 févr. 2012) | Curieusement SPIP gérait bien les accès concurrents de deux confirmation de signatures pour la même adresse, mais ne supprimait pas toutes les autres attentes de validation pour cette même adresse.
+r19033 | esj       | 2012-02-27 09:09:16 +0100 (lun. 27 févr. 2012) | Le nombre de signature en attente lors d'une pétition atteint des niveaux désormais élevés, sans doute à cause des faux positifs des anti-spams. Il n'est plus possible de cliquer sur les boutons de relance individuelle vu le niveau atteint, on rajoute un bouton général de relance.
+r19034 | esj       | 2012-02-27 09:27:24 +0100 (lun. 27 févr. 2012) | Complément à r19033: limiter la relance aux attentes de plus d'un jour, c'est plus raisonnable;
+r19036 | esj       | 2012-02-27 14:44:23 +0100 (lun. 27 févr. 2012) | Complément à r19033: le lien "mailto" dans la liste des signatures à relancer fourni à présent le sujet et le corps du message auquel le signataire n'a pas répondu, comportant en particulier le lien provoquant la confirmation. Cet ajout permet d'éditer le message à envoyer quand il est clair que le pb vient d'une adresse mail mal écrite quoique valide. Ce lien n'apparaît que pour les modérateurs de la pétition évidemment.
+r19037 | esj       | 2012-02-27 22:47:04 +0100 (lun. 27 févr. 2012) | Augmenter de 4 pixels la taille de la dernière colonne de presenter_liste, sion les numéros d'objet à 4 chiffres ne tiennent pas sur la ligne.
+r19038 | esj       | 2012-02-28 11:47:04 +0100 (mar. 28 févr. 2012) | Complétement à r19033: mettre dans les logs le nombre de signatures relancées plutôt que de répondre par une page blanche (mais ce serait mieux de donner l'info dans la page).
+r19039 | fil       | 2012-02-29 10:43:57 +0100 (mer. 29 févr. 2012) | revert du patch css pour les BR, on va faire ca en html
+r19040 | esj       | 2012-02-29 19:42:14 +0100 (mer. 29 févr. 2012) | Dans le CSV des signatures d'une pétition, donner tous les champs (bizarre que je n'ai pas tout mis à la création de ça en r11119: il suffit de les supprimer avec le tableur si vraiment on n'en veut pas).
+r19048 | esj       | 2012-03-02 16:34:35 +0100 (ven. 02 mars 2012) | La prise en compte de https par r11120 dans récupérer page ne tenait pas compte du cas du proxy.
+r19054 | b_b        | 2012-03-03 12:29:58 +0100 (sam. 03 mars 2012) | report de 19052 sans oups : un admin ne doit pas pouvoir modifier un webmestre s'il ne l'est pas lui même
+r19055 | esj       | 2012-03-03 12:54:42 +0100 (sam. 03 mars 2012) | CSV des signatures: il y en a qui écrivent n'importe quoi. Filtrons les enttités HTML et les points-virgules.
+r19060 | esj       | 2012-03-04 09:20:34 +0100 (dim. 04 mars 2012) | Contrôle des pétitions. Un complément à r19027 encore meilleur que r19029: les deux onglets doivent être actifs en cas de visualisation d'une signature unique.
+r19066 | esj       | 2012-03-05 14:39:33 +0100 (lun. 05 mars 2012) | Gestion des pétitions: dans la page d'accueil de toutes les pétitions, afficher le score des 10 plus signées.
+r19072 | fil       | 2012-03-06 12:29:47 +0100 (mar. 06 mars 2012) | prendre la css dans prive de maniere a pouvoir la vider dans le public (ce que fait basecss) sans detruire l'espace prive
+r19077 | b_b        | 2012-03-07 19:39:13 +0100 (mer. 07 mars 2012) | Exclure les éventuels quotes du nom du zip lorsqu'on tente de le récupérer à partir de Content-Disposition: attachment; filename=Note that the filename is surrounded by double quotes, per RFC 2231. This allows for the use of extended characters within the filename (i.e., international characters, though at present Internet Explorer does not support this internationalization).An unfortunately large number of web servers instead do not include the enclosing quotes around the filenamehttp://kb.mozillazine.org/Filenames_with_spaces_are_truncated_upon_download
+r19086 | esj       | 2012-03-09 08:57:35 +0100 (ven. 09 mars 2012) | Le filtre associé au modèle de type MIME text ne doit pas utiliser echapper_tag mais substituer explicitement &  > et <.
+r19087 | fil       | 2012-03-09 11:05:59 +0100 (ven. 09 mars 2012) | mettre en cache le resultat du ping pour ne pas le repeter a chaque fois qu'on veut tester une URL ne precisant pas son extension
+r19088 | kent1     | 2012-03-09 19:48:30 +0100 (ven. 09 mars 2012) | La chaine de langue "nouvel_auteur" n'existe pas..."item_nouvel_auteur" si...
+r19094 | esj       | 2012-03-12 14:26:28 +0100 (lun. 12 mars 2012) | Lorsqu'on envoie un fichier nommé "Makefile", SPIP corrige le manque d'extension en rajoutant ".bin", car les navigateurs ont indiqué un mime-type "application/octet-stream". Cela est dû a fait que le mime-type text/x-makefile existe mais n'a pas d'extension associée (".mk" parfois utilisée n'est pas officielle). On rajoute d'autorité l'extension ".txt" pour permettre l'ouverture par un éditeur de texte lorsqu'un visiteur récupère le fichier. On traite aussi ce cas particulier au niveau des entrées du répertoire upload, car c'est justement lors du chargement de tout un répertoire qu'on a le plus de chance de rencontrer un tel fichier.
+r19095 | esj       | 2012-03-12 17:59:40 +0100 (lun. 12 mars 2012) | De cette fonction de 400 lignes, extrayons les 10 lignes calculant le titre du document ajouté, afin de pouvoir programmer des remplacements de documents.
+r19101 | esj       | 2012-03-15 14:48:26 +0100 (jeu. 15 mars 2012) | Complément à r19095: extrayons 1 plutôt que 10 de la fonction de 400 ligns, pour donner l'information que le document sera ou non inclus en Zip. Par ailleurs, tenir compte du cas Makefile aussi ici, et forcer le titre au besoin.
+r19158 | esj       | 2012-03-26 17:47:55 +0200 (lun. 26 mars 2012) | Avant d'importer un document distant, copie_locale teste si l'URL est l'application du script acceder_document sur un document en fait local, dont elle renvoie alors le Path. Mais tester par une RegExp en dur dans le code ne permet pas aux sites jouant avec les Virtual Host d'être repérés dans tous les cas. On fait de cette RegExp une constante PHP afin de permettre sa redéfinition.
+r19162 | esj       | 2012-03-27 13:51:19 +0200 (mar. 27 mars 2012) | Complément à r19158 sur les URL de documents distants en fait locaux: acceder_document doit accepter soit le path initial soit son propre appel dessus. Du coup on isole dans une fonction le code produisant l'URL de ces action. Par ailleurs il restait un commentaire destiné à une ancienne version, c'était trompeur.
+r19202 | cedric    | 2012-04-04 15:22:00 +0200 (mer. 04 avril 2012) | PHP 5.4 :        mysql_list_dbs deprecie, on remplace a minima
+r19203 | cedric    | 2012-04-04 15:30:37 +0200 (mer. 04 avril 2012) | indentation
+r19204 | cedric    | 2012-04-04 15:37:40 +0200 (mer. 04 avril 2012) | #2615 : PHP 5.4 attention au passage par reference dans array_pop, array_shift et reset.mysql_list_dbs est deprecie
+r19205 | cedric    | 2012-04-04 15:41:22 +0200 (mer. 04 avril 2012) | #2615 PHP 5.4 attention aux Illegal offset string
+r19207 | esj       | 2012-04-05 14:23:28 +0200 (jeu. 05 avril 2012) | Afficher le lien vers l'article dans la page de contrôle des pétitions (qui devrait passer au singulier dans ce cas là d'ailleurs).
+r19228 | marcimat  | 2012-04-10 12:04:00 +0200 (mar. 10 avril 2012) | Report de c19227 (autoriser webmestre et PHP 5.4)
+r19231 | esj       | 2012-04-10 19:21:16 +0200 (mar. 10 avril 2012) | Complément à r19158 sur le calcul du Path d'un document faussement distant: * accepter les variations http/https pour que ça marche dans un espace privé protégé par https * tenir compte du paramètre $force (mais est-ce vraiment utile ?)
+r19233 | marcimat  | 2012-04-10 22:16:20 +0200 (mar. 10 avril 2012) | Report de z19232 : Lorsqu'un squelette est introuvable, éviter une erreur de PHP 5.4
+r19240 | esj       | 2012-04-12 10:32:59 +0200 (jeu. 12 avril 2012) | Retour sur r19086 pour le filtre des types MIME text: str_replace ne faisant pas les substitutions en parallèle, leur ordre est significatif.
+r19243 | esj       | 2012-04-13 07:31:40 +0200 (ven. 13 avril 2012) | r10136 n'aurait pas dû refuser d'appliquer URL_ACTION_AUTEUR à une base externe, la raison de le faire pour les autres balises URL_XXX n'étant pas valable (Benjamin Tricault).
+r19247 | esj       | 2012-04-15 17:10:04 +0200 (dim. 15 avril 2012) | Dans la page des statistiques d'une pétition, ne compter que les signatures validées.
+r19252 | esj       | 2012-04-16 20:16:15 +0200 (lun. 16 avril 2012) | XSS dans l'espace privé (Christophe Imberti)
+r19253 | esj       | 2012-04-16 20:17:23 +0200 (lun. 16 avril 2012) | XSS via une en-tête HTTP (Antoine Cervoise)
+
 Core 2.1.11->2.1.12 (16/10/2011)
+
 r18562 | ben      | 2011-09-22 22:39:46 | changelog 2.1.11
 r18580 | denisb   | 2011-09-26 08:18:59 | traduire.php : caster la globale détruite plus haut pour php5 plus rigoureux que son ancêtre.
 r18582 | fil      | 2011-09-27 10:07:59 | tiens les documents ne passaient pas par les pipelines pre_insertion / post_insertion
diff --git a/www/config/mes_fonctions.php b/www/config/mes_fonctions.php
deleted file mode 100755 (executable)
index b31bf71..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-// {traduction}
-// http://www.spip.net/@traduction
-//   (id_trad>0 AND id_trad=id_trad(precedent))
-//    OR id_article=id_article(precedent)
-function critere_traduction($idb, &$boucles, $param, $not) {
-       $boucle = &$boucles[$idb];
-
-       // cas des rubriques : on va chercher toutes les rubriques contenant
-       // des trads *publiees* de nos articles *publies*
-       if ($boucle->id_table == 'rubriques') {
-       if ($param == 'traduction') {
-               $boucle->from[] = "spip_articles AS source";
-               $boucle->from[] = "spip_articles AS dest";
-               $boucle->group = "rubriques.id_rubrique";
-               $boucle->where[] = "((source.id_trad=dest.id_trad
-                       AND source.statut='publie'
-                       AND dest.statut='publie'
-                       AND rubriques.id_rubrique = source.id_rubrique
-                       AND dest.id_rubrique = '\"."
-                       . calculer_argument_precedent($idb, 'id_rubrique',
-                               $boucles)
-                       . ".\"') OR (rubriques.id_rubrique = '\"."
-                       . calculer_argument_precedent($idb, 'id_rubrique',
-                               $boucles)
-                       . ".\"'))
-                       ";
-               return;
-       } else
-               erreur_squelette(_T('zbug_info_erreur_squelette'), $param);
-       }
-
-       // cas normal (articles) : la table possede un champ id_trad
-       if ($param == 'traduction') {
-               $boucle->where[] = "((".$boucle->id_table.".id_trad > 0 AND "
-                       . $boucle->id_table.".id_trad ='\"."
-                       . calculer_argument_precedent($idb, 'id_trad',
-                               $boucles)
-                       . ".\"')
-               OR
-                       (" . $boucle->id_table.".".$boucle->primary." ='\"."
-                       . calculer_argument_precedent($idb, $boucle->primary,
-                               $boucles)
-                       . ".\"'))";
-       } else
-               erreur_squelette(_T('zbug_info_erreur_squelette'), $param);
-}
-
-?>
\ No newline at end of file
old mode 100755 (executable)
new mode 100644 (file)
index 0784a6a..88bd7c7 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
@@ -14,9 +14,8 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
 
 include_spip('inc/headers');
 
-// acces aux documents joints securise
-// verifie soit que le demandeur est authentifie
-// soit que le document est publie, c'est-a-dire
+// acces aux documents joints securises
+// verifie que le document est publie, c'est-a-dire
 // joint a au moins 1 article, breve ou rubrique publie
 
 // http://doc.spip.org/@action_acceder_document_dist
@@ -36,8 +35,11 @@ function action_acceder_document_dist() {
        else if (!file_exists($file) OR !is_readable($file)) {
                $status = 404;
        } else {
-               $where = "documents.fichier=".sql_quote(set_spip_doc($file))
-               . ($arg ? " AND documents.id_document=".intval($arg): '');
+               $path = set_spip_doc($file);
+               $path2 = generer_acceder_document($f, $arg);
+               $where = "(documents.fichier=".sql_quote($path)
+                 . ' OR documents.fichier=' . sql_quote($path2) . ')'
+                 . ($arg ? (" AND documents.id_document=".intval($arg)) : '');
 
                $doc = sql_fetsel("documents.id_document, documents.titre, documents.fichier, types.mime_type, types.inclus, documents.extension", "spip_documents AS documents LEFT JOIN spip_types_documents AS types ON documents.extension=types.extension",$where);
                if (!$doc) {
@@ -84,25 +86,34 @@ function action_acceder_document_dist() {
        default:
                header("Content-Type: ". $doc['mime_type']);
 
-               // pour les images ne pas passer en attachment
-               // sinon, lorsqu'on pointe directement sur leur adresse,
-               // le navigateur les downloade au lieu de les afficher
+               // Si le fichier a un titre avec extension,
+               // ou si c'est un nom bien connu d'Unix, le prendre
+               // sinon l'ignorer car certains navigateurs pataugent
 
-               if ($doc['inclus']=='non') {
+               $f = basename($file);
+               if (isset($doc['titre'])
+               AND (preg_match('/^\w+[.]\w+$/', $doc['titre']) OR $doc['titre'] == 'Makefile'))
+                               $f = $doc['titre'];
 
-                 // Si le fichier a un titre avec extension,
-                 // ou si c'est un nom bien connu d'Unix, le prendre
-                 // sinon l'ignorer car certains navigateurs pataugent
+               $f = "filename=\"$f\"";
 
-                       $f = basename($file);
-                       if (isset($doc['titre'])
-                               AND (preg_match('/^\w+[.]\w+$/', $doc['titre']) OR $doc['titre'] == 'Makefile'))
-                               $f = $doc['titre'];
+               // Pour les document affichables par les navigateurs,
+               // ne pas envoyer "Content-Disposition: attachment" sinon 
+               // le navigateur cree un fichier au lieu de l'afficher.
+               // Mais la propriete "affichable" n'est pas toujours devinable,
+               // il faut quand meme donner un nom au fichier eventuel. 
+               // Celui-ci est malheureusement souvent ignore, cf
+               // http://greenbytes.de/tech/tc2231/
 
-                       // ce content-type est necessaire pour eviter des corruptions de zip dans ie6
-                       header('Content-Type: application/octet-stream');
+               if ($doc['inclus']!=='non') {
+                       header("Content-Disposition: inline; $f");
+               } else {
+
+                       header("Content-Disposition: attachment; $f;");
 
-                       header("Content-Disposition: attachment; filename=\"$f\";");
+                       // ce content-type est necessaire
+                       // pour eviter des corruptions de zip dans ie6
+                       header('Content-Type: application/octet-stream');
                        header("Content-Transfer-Encoding: binary");
 
                        // fix for IE catching or PHP bug issue
index 94b3649..6f37a76 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index f530ba8..f850e7c 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index f8960c5..43f0f27 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 0d9891d..6f0fdd8 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
@@ -88,7 +88,7 @@ function action_charger_plugin_dist() {
 
                if (preg_match(",^Content-Type:\s*application/zip$,Uims",$head))
                        $extension = "zip";
-               elseif (preg_match(",^Content-Disposition:\s*attachment;\s*filename=(.*)$,Uims",$head,$m)){
+               elseif (preg_match(',^Content-Disposition:\s*attachment;\s*filename="?([^"]+)"?$,Uims',$head,$m)){
                        $f = $m[1];
                        if (pathinfo($f, PATHINFO_EXTENSION)=="zip"){
                                $fichier = (_request('fichier')?
index c0b2e7f..b33e261 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 8b98d36..53bed1f 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 2135aa1..81fa709 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index ceede20..011f7f8 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 8f553e3..724bf46 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index ecfae24..4d07f6f 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 9d71e8b..83fbf08 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 8ce8334..025f22c 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 08d4523..3ffcb08 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index c6a4cf6..c9d5102 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 63933e3..37966c2 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 9f5eea8..104513f 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index ca18c09..c64b764 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 2ab21fb..c1d9648 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
@@ -58,10 +58,7 @@ function action_editer_auteurs_dist() {
                        # renvoyer un formulaire de choix
                                redirige_par_entete("$redirect&cherche_auteur=$cherche&ids=" . join(',',$res)  . $ancre);
 
-               } else {
-                       include_spip('inc/actions');
-                       ajax_retour("action_editer_auteur: $arg faux");exit;
-               }
+               } else redirige_par_entete("$redirect&ids=-1");
        } else spip_log("action_editer_auteur: $arg pas compris");
 }
 
index 85b5c24..49c5e45 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 3466498..3545e3c 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index f02d531..a48e047 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 7f9ce80..ebe23d4 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 3e73e7e..eac273d 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index ac0ac2c..021eb90 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index fc0781b..bf60540 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
@@ -18,7 +18,7 @@ function action_editer_signatures_dist()
        $securiser_action = charger_fonction('securiser_action', 'inc');
        $arg = $securiser_action();
 
-       if (!preg_match(",^(-?\d+)$,", $arg, $r)) {
+       if (!preg_match(",^(-?\d+)(A?)$,", $arg, $r)) {
                 spip_log("action_editer_signature_dist $arg pas compris");
        } else action_editer_signatures_post($r);
 }
@@ -30,7 +30,10 @@ function action_editer_signatures_dist()
 // http://doc.spip.org/@action_editer_signatures_post
 function action_editer_signatures_post($r)
 {
-       $id = intval($r[1]);
+       $id = $id_article = intval($r[1]);
+       if ($r[2] == 'A')
+         $id = 0;
+       else $id_article = 0;
 
        if ($id < 0){
                $id = 0 - $id;
@@ -51,17 +54,40 @@ function action_editer_signatures_post($r)
                                sql_updateq("spip_signatures", array("date_time" => date('Y-m-d H:i:s')), "id_signature=$id");
                        $id = 0;
                }
-
+       } elseif ($id_article) {
+               action_editer_signatures_relance($id_article);
        }
 
        // Invalider les pages ayant trait aux petitions
-       if ($id) {
-               include_spip('inc/invalideur');
+       if (!$id_article AND $id) {
                $id_article = sql_getfetsel("id_article", "spip_signatures", "id_signature=$id");
-               suivre_invalideur("id='varia/pet$id_article'");
+               if ($id_article) {
+                       include_spip('inc/invalideur');
+                       suivre_invalideur("id='varia/pet$id_article'");
+               }
        }
 
        # cette requete devrait figurer dans l'optimisation
        sql_delete("spip_signatures", "NOT (statut='publie' OR statut='poubelle') AND date_time<DATE_SUB(NOW(),INTERVAL 10 DAY)");
 }
+
+// Relance toutes les signatures en attente
+
+function action_editer_signatures_relance($id_article)
+{
+       include_spip('formulaires/signature');
+       include_spip('inc/texte');
+       $url = generer_url_entite_absolue($id_article, 'article','','',true);
+       list($titre, $url) = signature_langue($id_article, $url);
+
+       $envoyer_mail = charger_fonction('envoyer_mail','inc');
+
+       $query = sql_select('*', 'spip_signatures', "id_article=$id_article AND NOT (statut='publie' OR statut='poubelle') AND date_time <  DATE_SUB(NOW(), INTERVAL 1 DAY)", 'ad_email');
+       $n = 0;
+       while ($r = sql_fetch($query)) {
+         list($sujet, $corps) = signature_demande_confirmation($id_article, $url, $r['nom_email'], $r['nom_site'], $r['url_site'], $r['message'], $titre, $r['statut']);
+         if ($envoyer_mail($mail, $sujet, $corps)) $n++;
+       }
+       spip_log("$n signatures relancees pour $titre");
+}
 ?>
index 14a7e98..e0a1e6e 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 19ce290..5894b3d 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index ec06d3c..ca76e37 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
@@ -22,87 +22,138 @@ function action_export_all_dist()
        $securiser_action = charger_fonction('securiser_action', 'inc');
        $arg = $securiser_action();
 
-       @list(, $gz, $archive, $rub, $version) = explode(',', $arg);
+       @list(, , $archive, $rub) = explode(',', $arg);
        $meta = base_dump_meta_name($rub);
+       $file = ramasse_parties($rub, $archive, $meta);
+       $size = !$file ? 0 : @(!file_exists($file) ? 0 : filesize($file));
+       $metatable = $meta . '_tables';
+       $tables = isset($GLOBALS['meta'][$metatable])?unserialize($GLOBALS['meta'][$metatable]):array();
+       effacer_meta($metatable);
+       effacer_meta($meta);
+       utiliser_langue_visiteur();
+       if (!$size)
+               $corps = _T('avis_erreur_sauvegarde', array('type'=>'.', 'id_objet'=>'. .'));
+       else {
+               $corps = export_all_report_size($file, $rub, $size, generer_url_ecrire())
+               .  export_all_report_tables($tables);
+       }
+       include_spip('inc/minipres');
+       echo minipres(_T('info_sauvegarde'), $corps);
+}
+
+function export_all_rename($nom, $subdir)
+{
+       $dir = dirname($subdir);
+       $dest = $dir . '/' . $nom;
+       if (file_exists($dest)) {
+                       $n = 1;
+                       while (@file_exists($new = "$dir/$n-$nom")) $n++;
+                       spip_log("renomme vieux $dest en $new");
+                       @rename($dest, $new);
+       }
+       return $dest;
+}
+
+// Concatenation des tranches
+
+// http://doc.spip.org/@ramasse_parties
+function ramasse_parties($rub, $archive, $meta)
+{
        $dir = base_dump_dir($meta);
-       $file = $dir . $archive;
+       $files = preg_files($dir . $archive . ".part_[0-9]+_[0-9]+[.gz]?");
+       if (!$files) return false;
+       $ok = true;
+       $files_o = array();
+       $but = export_all_rename($archive, $dir);
+       // creer l'en tete du fichier
+       ecrire_fichier($but, export_entete(_VERSION_ARCHIVE),false);
+       foreach($files as $f) {
+         $contenu = "";
+         if (lire_fichier ($f, $contenu)) {
+           if (!ecrire_fichier($but,$contenu,false,false))
+             { $ok = false; break;}
+         }
+         spip_unlink($f);
+         $files_o[]=$f;
+       }
+       ecrire_fichier($but, export_enpied(),false,false);
+       spip_unlink($dir);
+       spip_log("concatenation " . join(' ', $files_o));
+       return $ok ? $but : false;
+}
 
-       utiliser_langue_visiteur();
-       export_all_fin($file, $meta, $rub);
+function export_all_end($meta, $archive){
+       $dir = base_dump_dir($meta);
+       $file = $dir . $archive;
 }
 
-// http://doc.spip.org/@export_all_fin
-function export_all_fin($file, $meta, $rub)
+// http://doc.spip.org/@export_entete
+function export_entete($version_archive)
 {
-       global $spip_lang_left,$spip_lang_right;
+       return
+"<" . "?xml version=\"1.0\" encoding=\"".
+$GLOBALS['meta']['charset']."\"?".">\n" .
+"<SPIP
+       version=\"" . $GLOBALS['spip_version_affichee'] . "\"
+       version_base=\"" . $GLOBALS['spip_version_base'] . "\"
+       version_archive=\"" . $version_archive . "\"
+       adresse_site=\"" .  $GLOBALS['meta']["adresse_site"] . "\"
+       dir_img=\"" . _DIR_IMG . "\"
+       dir_logos=\"" . _DIR_LOGOS . "\"
+>\n";
+}
 
-       $metatable = $meta . '_tables';
-       $tables_sauvegardees = isset($GLOBALS['meta'][$metatable])?unserialize($GLOBALS['meta'][$metatable]):array();
-       effacer_meta($meta);
-       effacer_meta($metatable);
 
-       $size = @(!file_exists($file) ? 0 : filesize($file));
+// production de l'en-pied du fichier d'archive
+// http://doc.spip.org/@export_enpied
+function export_enpied () { return  "</SPIP>\n";}
+
+function export_all_report_size($dest, $rub, $size, $retour)
+{
+       global $spip_lang_left,$spip_lang_right;
 
-       if (!$size) {
-               $corps = _T('avis_erreur_sauvegarde', array('type'=>'.', 'id_objet'=>'. .'));
-       
-       } else {
-               $subdir = dirname($file);
-               $dir = dirname($subdir);
-               $nom = basename($file);
-               $dest = $dir . '/' . $nom;
-               if (file_exists($dest)) {
-                       $n = 1;
-                       while (@file_exists($new = "$dir/$n-$nom")) $n++;
-                       @rename($dest, $new);
-               }
-               if (@rename($file, $dest)) {
-                       spip_unlink($subdir);
-                       spip_log("$file renomme en $dir/$nom");
-               }
        // ne pas effrayer inutilement: il peut y avoir moins de fichiers
        // qu'annonce' si certains etaient vides
 
-               $n = _T('taille_octets', array('taille' => number_format($size, 0, ' ', ' ')));
+       $n = _T('taille_octets', array('taille' => number_format($size, 0, ' ', ' ')));
                
                // cette chaine est a refaire car il y a double ambiguite:
                // - si plusieurs SPIP dans une base SQL (cf table_prefix)
                // - si on exporte seulement une rubrique
 #                        _T('info_sauvegarde_reussi_02',               
 
-               if ($rub) {
+       if ($rub) {
                        $titre = sql_getfetsel('titre', 'spip_rubriques', "id_rubrique=$rub");
                        $titre = _T('info_sauvegarde_rubrique_reussi',
-                                   array('archive' => ':<br /><b>'.joli_repertoire("$dir/$nom")."</b> ($n)", 'titre' => "<b>$titre</b>"));
-               }
-               else
+                                   array('archive' => ':<br /><b>'.joli_repertoire($dest)."</b> ($n)", 'titre' => "<b>$titre</b>"));
+       } else
                        $titre = _T('info_sauvegarde_reussi_02',
-                             array('archive' => ':<br /><b>'.joli_repertoire("$dir/$nom")."</b> ($n)"));
+                             array('archive' => ':<br /><b>'.joli_repertoire($dest)."</b> ($n)"));
 
-               $corps = "<p style='text-align: $spip_lang_left'>".
+       include_spip('inc/filtres');
+       return "<p style='text-align: $spip_lang_left'>".
                          $titre .
-                         " <a href='" . generer_url_ecrire() . "'>".
+                         " <a href='" . $retour . "'>".
                        _T('info_sauvegarde_reussi_03')
                        . "</a> "
                        ._T('info_sauvegarde_reussi_04')
-                       . "</p>\n";
-               
-               include_spip('inc/filtres');
-               $corps .= "<div style='text-align: $spip_lang_right'>"
-                       . bouton_action(_T("retour"), generer_url_ecrire())
-                       . "</div>";
-
-               // afficher la liste des tables qu'on a sauvegarde
-               sort($tables_sauvegardees);
-               $n = floor(count($tables_sauvegardees)/2);
-               $corps .= "<div style='width:49%;float:left;'><ul><li>" . join('</li><li>', array_slice($tables_sauvegardees,0,$n)) . "</li></ul></div>"
-                 . "<div style='width:49%;float:left;'><ul><li>" . join('</li><li>', array_slice($tables_sauvegardees,$n)) . "</li></ul></div>"
-                 . "<div class='nettoyeur'></div>";
-       }
-       include_spip('inc/minipres');
-       echo minipres(_T('info_sauvegarde'), $corps);
-       exit;
+                       . "</p>\n"
+                       .  "<div style='text-align: $spip_lang_right'>"
+                       . bouton_action(_T("retour"), $retour)
+                       . "</div>" ;
 }
 
-
+function export_all_report_tables($tables_sauvegardees)
+{
+       sort($tables_sauvegardees);
+       $n = floor(count($tables_sauvegardees)/2);
+
+       return "<div style='width:49%;float:left;'><ul><li>"
+       . join('</li><li>', array_slice($tables_sauvegardees,0,$n))
+       . "</li></ul></div>"
+       . "<div style='width:49%;float:left;'><ul><li>"
+       . join('</li><li>', array_slice($tables_sauvegardees,$n))
+       . "</li></ul></div>"
+       . "<div class='nettoyeur'></div>";
+}
 ?>
index f7b4b3d..1b3a436 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index ee41ada..1c9e290 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 53bb525..f43f9b2 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
@@ -27,7 +27,7 @@ function action_instituer_auteur_dist() {
        include_spip('action/editer_auteur');
 
        $c = array(
-               array('statut'=>$statut,'id_parent'=>intval(_request('id_parent')),'restreintes'=>_request('restreintes'))
+               'statut'=>$statut,'id_parent'=>intval(_request('id_parent')),'restreintes'=>_request('restreintes')
        );
        instituer_auteur($id_auteur, $c);
 
index 3316c97..ebf2d15 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 86993fd..1f8f2ff 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 7ba6105..d37d6a6 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 54ce867..108badc 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 75fcfc0..9616c07 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index ebae3f4..3203f50 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 3ddb830..ea6f0b3 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index a334d89..f1efe55 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 1e2e11d..4639f59 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 626431c..8087b26 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 0c5ae36..8f68c87 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
 if (!defined('_ECRIRE_INC_VERSION')) return;
 
 include_spip('inc/cookie');
+include_spip('public/aiguiller');
 
-// http://doc.spip.org/@action_logout_dist
+/**
+ * Se deloger
+ * Pour eviter les CSRF on passe par une etape de confirmation si pas de jeton,
+ * avec un autosubmit js pour ne pas compliquer l'experience utilisateur
+ *
+ * http://doc.spip.org/@action_logout_dist
+ *
+ */
 function action_logout_dist()
 {
-       global $visiteur_session, $ignore_auth_http;
        $logout =_request('logout');
        $url = _request('url');
-       // cas particulier, logout dans l'espace public
-       if ($logout == 'public' AND !$url)
-               $url = url_de_base();
-
-       // seul le loge peut se deloger (mais id_auteur peut valoir 0 apres une restauration avortee)
-       if (is_numeric($visiteur_session['id_auteur'])) {
-               include_spip('inc/auth');
-               auth_trace($visiteur_session, '0000-00-00 00:00:00');
-       // le logout explicite vaut destruction de toutes les sessions
-               if (isset($_COOKIE['spip_session'])) {
+       // seul le loge peut se deloger
+       // (mais id_auteur peut valoir 0 apres une restauration avortee)
+       if (isset($GLOBALS['visiteur_session']['id_auteur']) 
+       AND is_numeric($GLOBALS['visiteur_session']['id_auteur'])
+       // des sessions anonymes avec id_auteur=0 existent,
+       // mais elles n'ont pas de statut : verifier ca aussi
+       AND isset($GLOBALS['visiteur_session']['statut'])) {
+               // relancer si pas de jeton
+               if (!action_logout_secu($logout, $url, _request('jeton'))) {
+                       return; // page submit retournee
+               } elseif (isset($_COOKIE['spip_session'])) {
+               // le logout explicite vaut destruction de toutes les sessions
+                       
                        $session = charger_fonction('session', 'inc');
-                       $session($visiteur_session['id_auteur']);
+                       $session($GLOBALS['visiteur_session']['id_auteur']);
                        spip_setcookie('spip_session', $_COOKIE['spip_session'], time()-3600);
                }
-               // si authentification http, et que la personne est loge,
-               // pour se deconnecter, il faut proposer un nouveau formulaire de connexion http
-               if (isset($_SERVER['PHP_AUTH_USER']) AND !$ignore_auth_http AND $GLOBALS['auth_can_disconnect']) {
-                         ask_php_auth(_T('login_deconnexion_ok'),
-                                      _T('login_verifiez_navigateur'),
-                                      _T('login_retour_public'),
-                                       "redirect=". _DIR_RESTREINT_ABS, 
-                                      _T('login_test_navigateur'),
-                                      true);
-                       
-               }
+               include_spip('inc/auth');
+               auth_trace($GLOBALS['visiteur_session'],'0000-00-00 00:00:00');
        }
-
-       // Rediriger en contrant le cache navigateur (Safari3)
+       // Action terminee (ou non faite si pas les droits) on redirige.
+       // Cas particulier, logout dans l'espace public
+       $url = securiser_redirect_action($url);
+       if ($logout == 'public' AND !$url)
+               $url = url_de_base();
        include_spip('inc/headers');
        redirige_par_entete($url
+               // contrer le cache navigateur (Safari3)
                ? parametre_url($url, 'var_hasard', uniqid(rand()), '&')
                : generer_url_public('login'));
 }
 
+/**
+ * Verifier un jeton si present, ou envoyer une page le produisant
+ * @param string $logout
+ * @param string $url
+ * @param string $jeton
+ * @return boolean
+ */
+
+function action_logout_secu($logout, $url, $jeton)
+{
+       if ($jeton AND verifier_jeton_logout($jeton,$GLOBALS['visiteur_session']))
+               return true;
+       $jeton = generer_jeton_logout($GLOBALS['visiteur_session']);
+       $action = generer_url_action("logout","jeton=$jeton");
+       $action = parametre_url($action,'logout',$logout);
+       $action = parametre_url($action,'url',$url);
+       include_spip("inc/minipres");
+       include_spip("inc/filtres");
+       $texte = bouton_action(_T('spip:icone_deconnecter'),$action);
+       $texte = "<div class='boutons'>$texte</div>";
+       $texte .= '<script type="text/javascript">document.write("<style>body{visibility:hidden;}</style>");window.document.forms[0].submit();</script>';
+       echo minipres(_T('spip:icone_deconnecter'),$texte,'',true);
+       return false;
+}
+
+/**
+ * Generer un jeton de logout personnel et ephemere
+ * @param array $session
+ * @param null|string $alea
+ * @return string
+ */
+function generer_jeton_logout($session,$alea=null){
+       if (is_null($alea)){
+               if (!isset($GLOBALS['meta']['alea_ephemere'])){
+                       include_spip('base/abstract_sql');
+                       $GLOBALS['meta']['alea_ephemere'] = sql_getfetsel('valeur', 'spip_meta', "nom='alea_ephemere'");
+               }
+               $alea = $GLOBALS['meta']['alea_ephemere'];
+       }
+
+       $jeton = md5($session['date_session']
+         .$session['id_auteur']
+         .$session['statut']
+         .$alea
+       );
+       return $jeton;
+}
+
+/**
+ * Verifier que le jeton de logout est bon
+ * il faut verifier avec alea_ephemere_ancien si pas bon avec alea_ephemere
+ * pour gerer le cas de la rotation d'alea
+ * @param string $jeton
+ * @param array $session
+ * @return bool
+ */
+function verifier_jeton_logout($jeton,$session){
+       if (generer_jeton_logout($session)===$jeton)
+               return true;
+       if (!isset($GLOBALS['meta']['alea_ephemere_ancien'])){
+               include_spip('base/abstract_sql');
+               $GLOBALS['meta']['alea_ephemere_ancien'] = sql_getfetsel('valeur', 'spip_meta', "nom='alea_ephemere_ancien'");
+       }
+       if (generer_jeton_logout($session,$GLOBALS['meta']['alea_ephemere_ancien'])===$jeton)
+               return true;
+       return false;
+}
+
 ?>
index 73a6d3d..1c6628b 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 9fc35ad..6245f74 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2010                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index c976ccc..d8c3a0f 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 81eeb38..1adcbc2 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 021ec5d..4684f7e 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
@@ -17,12 +17,34 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
 function action_redirect_dist()
 {
        $type = _request('type');
-       if (!preg_match('/^\w+$/', $type)) return;
+       $id = intval(_request('id'));
+
        if ($m = _request('var_mode')) {
                $GLOBALS['var_urls'] = true; // forcer la mise a jour de l'url de cet objet !
-               $m = 'var_mode='.urlencode($m);
        }
-       $h = generer_url_entite_absolue(intval(_request('id')), $type, $m, '', true);
+
+       if (preg_match('/^\w+$/', $type)) {
+               $h = generer_url_entite_absolue($id, $type, '', '', true);
+       }
+       else if ($page = _request('page')
+       AND preg_match('/^\w+$/', $page)) {
+               $h = generer_url_public($page, '', true);
+       }
+       else return;
+
+       if ($m > '')
+               $h = parametre_url($h, 'var_mode', $m);
+
+       if ($m == 'preview'
+       AND defined('_PREVIEW_TOKEN')
+       AND _PREVIEW_TOKEN
+       AND autoriser('previsualiser')
+       AND $aut = $GLOBALS['visiteur_session']['id_auteur'] ) {
+               include_spip('inc/securiser_action');
+               $token = _action_auteur('previsualiser', $aut, null, 'alea_ephemere');
+               $h = parametre_url($h, 'var_previewtoken', "$aut*$token");
+       }
+
        $status = '302';
        if (_request('status') AND _request('status')=='301')
                $status = '301';
index 6271d75..cee0aa3 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 5e1cce3..798c608 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 9c64031..0b1b3d7 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 8e87290..20ca057 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
@@ -37,6 +37,7 @@ function action_supprimer_rubrique($r)
 {
        list(,,$id_rubrique) = $r;
        sql_delete("spip_rubriques", "id_rubrique=$id_rubrique");
+       sql_delete("spip_mots_rubriques", "id_rubrique=$id_rubrique");
        // Les admin restreints qui n'administraient que cette rubrique
        // deviennent redacteurs
        // (il y a sans doute moyen de faire ca avec un having)
index a5242dc..367161f 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index cb86ba1..4ba0da8 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 8873f3a..5f5e1ee 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 733fd3c..f21d543 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index c067a0b..5afb7fb 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 8fab2ff..485a796 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index bc59859..b4ea429 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index d0d706a..450ed0a 100644 (file)
@@ -207,9 +207,13 @@ if (!class_exists('nanoSha2'))
                                        $npad = $npad/$this->bytesString;
                                        $length = count($ords);
                                        $ords[] = 0x80; // append the "1" bit followed by 7 0's
-                                       $ords = array_pad($ords,ceil(($length+32/$this->bytesString)/$npad)*$npad-32/$this->bytesString,0);
+                                       $pad = ceil(($length+32/$this->bytesString)/$npad)*$npad-32/$this->bytesString;
+                                       $ords = array_pad($ords,$pad,0);
+
+                                       $pad *= $this->bytesString;
+                                       $bin = array_pad(array(), $pad>>5, 0);
                                        $mask = (1 << $this->bytesString) - 1;
-                                       for($i = 0; $i < count($ords) * $this->bytesString; $i += $this->bytesString)
+                                       for($i = 0; $i < $pad ; $i += $this->bytesString)
                                                $bin[$i>>5] |= ($ords[$i / $this->bytesString] & $mask) << (24 - $i%32);
                                        $bin[] = $length*$this->bytesString;
                                        return $bin;
@@ -384,12 +388,12 @@ if (!function_exists('str_split'))
         $split_length = abs($split_length);
 
         if (($split_length == 0) || ($strlen == 0)) {
-            $result = false;
+            return false;
         } elseif ($split_length >= $strlen) {
-            $result[] = $string;
+           return array($string);
         } else {
             $length = $split_length;
-
+           $result = array();
             for ($i = 0; $i < $strlen; $i++)
             {
                 $i = (($sign < 0) ? $i + $length : $i);
@@ -401,9 +405,8 @@ if (!function_exists('str_split'))
                           ? ($strlen - ($i + 1))
                           : $split_length;
             }
+           return $result;
         }
-
-        return $result;
     }
 }
 
index 3f426d8..c86e6c5 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
@@ -131,7 +131,7 @@ function auth_spip_verifier_login($new_login, $id_auteur=0, $serveur=''){
        // login et mot de passe
        if (strlen($new_login)){
                if (strlen($new_login) < _LOGIN_TROP_COURT)
-                       return 'info_login_trop_court';
+                       return _T('info_login_trop_court');
                else {
                        $n = sql_countsel('spip_auteurs', "login=" . sql_quote($new_login) . " AND id_auteur!=".intval($id_auteur)." AND statut!='5poubelle'",'','',$serveur);
                        if ($n)
index c35022c..45e66e4 100644 (file)
@@ -2,7 +2,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index b6452c7..0897c3d 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index a9743d4..d0c99a1 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index cdbd6b0..28a7a92 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 9f56528..081da3f 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
@@ -31,6 +31,7 @@ function balise_FORMULAIRE_INSCRIPTION ($p) {
 // http://doc.spip.org/@balise_FORMULAIRE_INSCRIPTION_stat
 function balise_FORMULAIRE_INSCRIPTION_stat($args, $context_compil) {
        list($mode, $focus, $id) = $args;
+
        $mode = tester_config($id, $mode);
        return $mode ? array($mode, $focus, $id) : '';
 }
index 4865c4c..c33877d 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 1ffa31d..63cdb36 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index ded6e1c..62488d4 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index b9bf391..e1af3c7 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2010                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index eec9f6d..1bb690d 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2010                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 5940b0f..259bfcd 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index fc147a9..d72a5e5 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 5b6828e..28061ba 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index b83912b..4b419bc 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
@@ -142,19 +142,15 @@ function balise_URL_PAGE_dist($p) {
        $s = !$p->id_boucle ? '' :  $p->boucles[$p->id_boucle]->sql_serveur;
 
        if ($s) {
-               if (!$GLOBALS['connexions'][strtolower($s)]['spip_connect_version']) {
-                       $code = "404";
-               } else {
-                       // si une fonction de generation des url a ete definie pour ce connect l'utiliser
-                       // elle devra aussi traiter le cas derogatoire type=page
-                       if (function_exists($f = 'generer_generer_url_'.$s)){
+               // si une fonction de generation des url a ete definie pour ce connect l'utiliser
+               // elle devra aussi traiter le cas derogatoire type=page
+               if (function_exists($f = 'generer_generer_url_'.$s)){
                                if ($args) $code .= ", $args";
                                $code = $f('page', $code, $s);
                                return $p;
-                       }
-                       $s = 'connect=' .  addslashes($s);
-                       $args = $args ? "$args . '&$s'" : "'$s'";
                }
+               $s = 'connect=' .  addslashes($s);
+               $args = $args ? "$args . '&$s'" : "'$s'";
        }
        if (!$code) {
                $noentities = $p->etoile ? "'&'" : '';
@@ -171,7 +167,7 @@ function balise_URL_PAGE_dist($p) {
 
 //
 // #URL_ECRIRE{naviguer} -> ecrire/?exec=naviguer
-//
+// #URL_ECRIRE*  meme chose, mais sans convertir les & en &amp;
 // http://doc.spip.org/@balise_URL_ECRIRE_dist
 function balise_URL_ECRIRE_dist($p) {
 
@@ -183,8 +179,10 @@ function balise_URL_ECRIRE_dist($p) {
                        $fonc = $code;
                else {$code = "(\$f = $code)"; $fonc = '$f';}
                $args = interprete_argument_balise(2,$p);
-               if ($args != "''" && $args!==NULL)
-                       $fonc .= ',' . $args;
+               if ($args === NULL) $args = "''";
+               $noentities = $p->etoile ? ", true" : '';
+               if (($args != "''")  OR $noentities)
+                       $fonc .= ",$args$noentities";
        }
        $p->code = 'generer_url_ecrire(' . $fonc .')';
        if ($code) 
@@ -200,20 +198,22 @@ function balise_URL_ECRIRE_dist($p) {
 function balise_URL_ACTION_AUTEUR_dist($p) {
        $p->descr['session'] = true;
 
-       if ($p->boucles[$p->id_boucle]->sql_serveur) {
-               $p->code = 'generer_url_public("404")';
-               return $p;
+       $script = interprete_argument_balise(1,$p);
+       if (!$script OR $script == "''") {
+               $msg = array('zbug_balise_sans_argument',
+                       array('balise' => ' URL_ACTION_AUTEUR'));
+               erreur_squelette($msg, $p);
+       } else {
+               $args = interprete_argument_balise(2,$p);
+               if (!$args) $args = "''";
+               $redirect = interprete_argument_balise(3,$p);
+               // cas d'un appel (squelette) avec '' comme valeur de redirection
+               if ($redirect == "''")
+                       $redirect = "";
+               if ($redirect)
+                       $redirect = ",$redirect";
+               $p->code = "generer_action_auteur($script,$args$redirect)";
        }
-
-       $p->code = interprete_argument_balise(1,$p);
-       $args = interprete_argument_balise(2,$p);
-       if ($args != "''" && $args!==NULL)
-               $p->code .= ",".$args;
-       $redirect = interprete_argument_balise(3,$p);
-       if ($redirect != "''" && $redirect!==NULL)
-               $p->code .= ",".$redirect;
-
-       $p->code = "generer_action_auteur(" . $p->code . ")";
        $p->interdire_scripts = false;
        return $p;
 }
index e04c1e5..df091bf 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 08aa394..8797244 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
@@ -313,7 +313,7 @@ function sql_drop_view($table, $exist='', $serveur='', $option=true)
 function sql_showbase($spip=NULL, $serveur='', $option=true)
 {
        if ($spip == NULL){
-               $connexion = $GLOBALS['connexions'][$serveur ? $serveur : 0];
+               $connexion = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
                $spip = $connexion['prefixe'] . '\_%';
        }
        
@@ -334,7 +334,7 @@ function sql_alltable($spip=NULL, $serveur='', $option=true)
 function sql_showtable($table, $table_spip = false, $serveur='', $option=true)
 {
        if ($table_spip){
-               $connexion = $GLOBALS['connexions'][$serveur ? $serveur : 0];
+               $connexion = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
                $prefixe = $connexion['prefixe'];
                $vraie_table = preg_replace('/^spip/', $prefixe, $table);
        } else $vraie_table = $table;
index 4b8a096..4a4de0c 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 9feea00..dea5e12 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 6e5b8a4..36b741c 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
@@ -60,11 +60,7 @@ function spip_connect($serveur='', $version='') {
                if (!isset($GLOBALS['db_ok'])) {
                  // fera mieux la prochaine fois
                        if ($install) return false;
-                       if ($f AND $readable)
-                               spip_log("spip_connect: fichier de connexion '$f' OK.");
-                       else
-                               spip_log("spip_connect: fichier de connexion '$f' non trouve");
-                       spip_log("spip_connect: echec connexion ou serveur $index mal defini dans '$f'.");
+                       spip_log("spip_connect: serveur $index mal defini dans '$f'. spip_connect_version: " . @$GLOBALS['spip_connect_version']);
                        // ne plus reessayer si ce n'est pas l'install
                        return $connexions[$index]=false;
                }
@@ -347,6 +343,75 @@ function table_jointure($x, $y) {
        return '';
 }
 
+/**
+ * Echapper les textes entre ' ' ou " " d'une requete SQL
+ * avant son pre-traitement
+ * On renvoi la query sans textes et les textes separes, dans
+ * leur ordre d'apparition dans la query
+ *
+ * @param string $query
+ * @return array
+ */
+function query_echappe_textes($query){
+       static $codeEchappements = array("''"=>"\x1@##@\x1", "\'"=>"\x2@##@\x2", "\\\""=>"\x3@##@\x3");
+       $query = str_replace(array_keys($codeEchappements), array_values($codeEchappements), $query);
+       if (preg_match_all("/((['])[^']*(\\2))|(([\"])[^\"]*(\\5))/S",$query,$textes)){
+               $textes = reset($textes); // indice 0 du match
+               switch(count($textes)){
+                       case 0:$replace=array();break;
+                       case 1:$replace=array('%1$s');break;
+                       case 2:$replace=array('%1$s','%2$s');break;
+                       case 3:$replace=array('%1$s','%2$s','%3$s');break;
+                       case 4:$replace=array('%1$s','%2$s','%3$s','%4$s');break;
+                       case 5:$replace=array('%1$s','%2$s','%3$s','%4$s','%5$s');break;
+                       default:
+                               $replace = range(1,count($textes));
+                               $replace = '%'.implode('$s,%',$replace).'$s';
+                               $replace = explode(',',$replace);
+                               break;
+               }
+               $query = str_replace($textes,$replace,$query);
+       }
+       else
+               $textes = array();
+
+       return array($query, $textes);
+}
+
+/**
+ * Reinjecter les textes d'une requete SQL a leur place initiale,
+ * apres traitement de la requete
+ *
+ * @param string $query
+ * @param array $textes
+ * @return string
+ */
+function query_reinjecte_textes($query, $textes){
+       static $codeEchappements = array("''"=>"\x1@##@\x1", "\'"=>"\x2@##@\x2", "\\\""=>"\x3@##@\x3");
+       # debug de la substitution
+       #if (($c1=substr_count($query,"%"))!=($c2=count($textes))){
+       #       spip_log("$c1 ::". $query,"tradquery"._LOG_ERREUR);
+       #       spip_log("$c2 ::". var_export($textes,1),"tradquery"._LOG_ERREUR);
+       #       spip_log("ini ::". $qi,"tradquery"._LOG_ERREUR);
+       #}
+       switch (count($textes)){
+               case 0:break;
+               case 1:$query=sprintf($query,$textes[0]);break;
+               case 2:$query=sprintf($query,$textes[0],$textes[1]);break;
+               case 3:$query=sprintf($query,$textes[0],$textes[1],$textes[2]);break;
+               case 4:$query=sprintf($query,$textes[0],$textes[1],$textes[2],$textes[3]);break;
+               case 5:$query=sprintf($query,$textes[0],$textes[1],$textes[2],$textes[3],$textes[4]);break;
+               default:
+                       array_unshift($textes,$query);
+                       $query = call_user_func_array('sprintf',$textes);
+                       break;
+       }
+
+       $query = str_replace(array_values($codeEchappements), array_keys($codeEchappements), $query);
+
+       return $query;
+}
+
 // Pour compatibilite. Ne plus utiliser.
 // http://doc.spip.org/@spip_query
 function spip_query($query, $serveur='') {
index 8d3423d..50c3d0c 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index e225c85..cad6e7c 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 45494da..9d99b63 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 1dd04ed..05abca5 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index cdd7bf6..8060800 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index c4e8fb3..40f6099 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2011                                                *
+ *  Copyright (c) 2001-2014                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
  *                                                                         *
  *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
index 1d62b02..8e1d911 100644 (file)
@@ -3,7 +3,7 @@
 /***************************************************************************\
  *  SPIP, Syst