SPIP - français, ces 365 derniers jours

SPIP est un système de publication pour l’Internet qui s’attache particulièrement au fonctionnement collectif, au multilinguisme et à la facilité (…)



mercredi 22 novembre 2023

  • #ID_LOGO_XXX

    Syntaxe

    Le type d'objet est spécifié dans le nom de la balise, tel que #ID_LOGO_ARTICLE ou #ID_LOGO_SITE.

    Pour les articles, ces balises ont quelques variantes :

    • La balise peut aussi demander explicitement le logo normal ou de survol, avec #ID_LOGO_ARTICLE_NORMAL ou #ID_LOGO_ARTICLE_SURVOL.
    • On peut demander un logo de rubrique en absence de logo sur l'article demandé avec #ID_LOGO_ARTICLE_RUBRIQUE

    Usage pour récupérer les informations du logo

    Une fois l'identifiant du logo récupéré, une boucle DOCUMENTS peut être utilisée, entre autres, pour récupérer le titre et le descriptif du logo (attention, il faut le modificateur {tout}, sinon, la boucle ne retourne rien) :

    Exemple :

     #TITRE, #DESCRIPTIF 

    Attention, piège avec #INFO_TITRE

    #INFO_TITRE{document, #ID_LOGO_ARTICLE} renvoie le titre du document si renseigné, sinon le nom du fichier [1].

    À lire aussi


    [1] C'est donc pour cela qu'une boucle sera plus précise


lundi 25 septembre 2023

  • Internationaliser les squelettes

    SPIP affiche naturellement les éléments d'interface (dates, intitulés des boutons) dans la langue choisie par l'utilisateur.

    Créer des squelettes multilingues

    Lorsqu'on crée un squelette multilingue, il est indispensable d'utiliser les chaînes de langue pour que le contenu de l'interface soit affiché dans la langue demandée.

    SPIP fournit déjà les intitulés les plus courants (comme "Plan du site", "Répondre à cet article" etc...).
    Cet article indique comment en ajouter des nouveaux selon vos besoins.

    De plus, utiliser les chaînes de langue améliore la maintenance de votre squelette (quand on modifie une chaîne de langue, toutes les pages sont modifiées)

    Utiliser des fichiers de langue

    Créer un fichier de langue
    Quelque soit la structure décidée pour le site (secteurs de langue ou pas) il suffit d'insérer une "chaîne de langue" comme ceci <:chaine_de_langue:> SPIP ira chercher la traduction dans un des fichiers SPIP ou dans un fichier lang/local_xx.php (xx étant la langue) que l'on aura créé.

    Le suffixe langue xx est celui généralement usité dans les normes ISO.
    Par exemple fr pour français

    On supporte aussi les variantes régionales :
    Par exemple pt_br pour le portugais brésilien

    Par exemple, on fait afficher une section musique dans notre site

    Musique

    Pour internationaliser, on passera le texte dans une chaine de langue

    <:musique:>

    Selon la langue retenue, la chaine <:musique:> sera affichée
    — en français, à la chaîne « Musique »,
    — en anglais, à la chaîne « Music »,
    — en japonais, à la chaîne « 音楽 »,

    Il faut donc créer autant que fichiers de langue que les langues utilisées par votre site.
    Dans le cas précédent il faut donc créer un lang/local_fr.php, lang/local_en.php et lang/local_ja.php

    La structure d'un fichier de langue

    Un fichier de langue est rangé dans un répertoire lang
    Il est structuré de la façon suivante :
    Les fichiers de langue contiennent les différentes traductions des codes que vous utiliserez ; ce sont des fichiers PHP contenant chacun un tableau associant aux codes les chaînes correspondantes dans chaque langue.

    Attention :
    Le nom de ces fichiers de langue ne devra pas contenir le caractère « _ » (« underscore » ou « tiret-bas ») sauf pour marquer la séparation avec l'initiale de la langue (en, fr, it,...). Par exemple, on créera « monperso_fr.php » et non « mon_perso_fr.php ».

    Ces fichiers contiendront par exemple :

    Version française (lang/monperso_fr.php) :

     <?php $GLOBALS[$GLOBALS['idx_lang']] = array( 'telechargement' => 'Télécharger la dernière version', 'quoideneuf' => 'Modifications récentes' ); 

    Version catalane (lang/monperso_ca.php) :

     <?php $GLOBALS[$GLOBALS['idx_lang']] = array( 'telechargement' => 'Descarregar la darrera versió', 'quoideneuf' => 'Modificacions recents' ); 

    Syntaxe des fichiers de langue
    - Chaque ligne de définition se termine par une virgule, sauf la dernière ligne.
    - Les apostrophes à l'intérieur de la chaîne doivent être échappées, c'est-à-dire précédées d'un antislash. Par exemple, la chaîne « sur l'internet » doit être écrite : sur l\'internet.
    - Il est possible de ne pas échapper les apostrophes à condition d'utiliser des apostrophes du type "guillemet simple fermant" '

    Créer ses propres codes

    Il est de plus possible de créer ses propres codes, correspondant à des chaînes que l'on désire ajouter soi-même.
    Il s'agit alors de créer des fichiers de langue personnels, sur le modèle des fichiers public_xx.php. Pour créer ses propres fichiers, on installera, dans un répertoire squelettes/lang (à créer le cas échéant)
    — local_fr.php pour définir les chaînes en français,
    — local_en.php en anglais,
    — ...

    La partie qu'il faut enrichir soit-même consiste en plusieurs lignes de définitions, sur le modèle :

     'code' => 'La chaîne à afficher', 

    Les plugins et les fichiers de langue

    Beaucoup de fonctionnalités sont assurées par des plugins, soit des plugins du core comme porte-plume ou svp, soit des plugins ajoutés par les webmestres parce qu'ils souhaitent utiliser une fonctionnalité spécifique. Tous ces plugins ont des fichiers de langue.

    Voir aussi

    Pour tout savoir sur les chaines de langue on pourra consulter https://programmer.spip.net/-Elements-linguistiques-

    Historique :

    les versions initiales de cet article présentaient d'autres solutions que les fichiers de langue pour rendre les squelettes multilingues. Notons simplement ici que ces solutions ne sont pas recommandées :
    - "un squelette par langue" (nécessitait le plugin "squelettes_par_rubrique") : c'est lourd à maintenir et simplement inutile pour un usage basique.
    - "les blocs multilingues" : ces blocs sont très utiles dans la partie rédactionnelle ; présenter un titre en différentes langues possibles, permettre d'afficher des légendes différentes par langue... mais à éviter dans la partie structure


mardi 15 août 2023

  • Installation de SPIP

    Vous trouverez ci-dessous différentes méthodes d'installation de SPIP, classées des plus faciles pour le plus grand public aux plus spécialisées.

    Préalables

    Avant d'installer SPIP, il faut s'assurer que votre hébergement remplit les conditions requises (voir Configuration requise).

    Méthodes grand public

    Préparation

    Il vous faut :

    • les identifiants pour accéder à l'hébergement (sFTP) et à la base de données (mySQL ou MariaDb) ;
    • un logiciel de transfert de fichiers sFTP [1].

    Méthode 1 : Avec spip_loader.php, alias « la voie de la tranquillité »

    Le script spip_loader.php télécharge et installe la version de SPIP souhaitée. C'est la méthode la plus simple pour installer SPIP :

    1. se rendre sur la page Utiliser spip_loader ;
    2. télécharger le script sur votre ordinateur ;
    3. le téléverser avec votre logiciel FTP à l'emplacement souhaité chez votre hébergeur ;
      Attention : paramétrez votre logiciel pour faire ce transfert en mode binaire [2].
    4. il ne vous reste plus qu'à vous rendre à l'adresse www.domaine.tld/spip_loader.php et à suivre les différentes étapes de la procédure d'installation.

    Méthode 2 : Téléversement par sFTP, « alias à l'ancienne »

    Après avoir téléchargé le zip via la page Télécharger SPIP et extrait son contenu sur votre ordinateur, transférez l'ensemble des fichiers sur votre serveur avec un logiciel FTP. Une fois les fichiers transférés, suivez les différentes étapes de la procédure d'installation.

    Note : si vous souhaitez utiliser l'installation automatique des plugins depuis l'interface privée de SPIP, il vous faut également créer manuellement les dossiers /plugins et /plugins/auto et éventuellement lib (pour certains plugins qui le requièrent).

    Dans tous les cas : finaliser l'installation

    Rendez-vous sur l'adresse www.domaine.tld/ecrire puis suivez les différentes étapes de la procédure d'installation :

    1. Choisissez la langue d'installation.
    2. Indiquez le type de base de données et les informations nécessaires.
    3. Choisissez votre base ou créez-en une nouvelle.
    4. Créez votre accès personnalisé au site en indiquant votre nom, adresse email, login et mot de passe.
    5. Finalisez l'installation en accédant à l'espace privé

    Autres méthodes, alias « pour aller plus loin »

    SPIP-Cli (installation via ligne de commandes)

    Une fois SPIP-Cli installé sur votre serveur (lire la documentation de SPIP-CLI), vous pouvez utiliser la commande spip pour installer, installer, mettre à jour et administrer SPIP.

    Pour télécharger la dernière version stable de SPIP, lancer la commande suivante depuis le répertoire voulu pour votre site :

    spip dl

    Ensuite, se positionner dans le dossier contenant votre SPIP et préparer les dossier et fichiers (droits des dossiers, mise en place du .htaccess...) :

    spip core:preparer

    Ensuite, suivez la méthode classique d'installation (voir paragraphe Installer SPIP ci-dessus).

    Pour mettre à jour, l'idéal est de commencer par mettre à jour SPIP-Cli, puis lancer la commande :

    spip up

    Plus d'infos sur SPIP-Cli :

    Le script checkout

    Le script checkoutpermet de télécharger ou mettre à jour des sources Git (ou Zip) et propose également une méthode pour télécharger les sources de SPIP.

    Méthodes alternatives

    Distributions Linux

    Debian

    Arch Linux

    Un paquet est disponible sur le dépôt utilisateur.

    Vagrant

    Si vous connaissez Vagrant, Ce projet vous intéressera.

    Docker

    Docker_(logiciel) automatise le déploiement d'applications dans des conteneurs logiciels.

    Plusieurs personnes ont imaginé leurs propres recettes pour utiliser cet outil :

    Softaculous

    Softaculous installe automatiquement des applications en ligne de commande ou à travers les panneaux de contrôle comme cPanel ou Plesk.

    Dans sa version gratuite il offre 50 applications mais SPIP fait partie de sa version payante :

    - https://www.softaculous.com/news/tag/spip

    Composer

    Composer est un outil de gestion de dépendances en PHP. Il vous permet de déclarer les bibliothèques dont votre projet dépend et il va les gérer (installer / mettre à jour) pour vous.


    [1] Nous vous conseillons d'utiliser Filezilla.

    [2] Dans Filezilla : menu Transfert > Type de transfert choisir Binaire.


mercredi 26 juillet 2023

  • Tenir un CHANGELOG

    Les fichiers de CHANGELOG suivent la norme Tenez un Changelog.

    Qu'est-ce qu'un changelog ?

    Un changelog (journal des modifications) est un fichier qui contient une liste triée antéchronologiquement des changements notables pour chaque version d'un projet.

    Pourquoi tenir un changelog ?

    Pour permettre aux utilisateurs et contributeurs de voir précisément quels changements notables ont été faits entre chaque publication (ou version) d'un projet.

    Plus de détails sur https://keepachangelog.com.

    Chaque entrée du changelog doit :

    • référencer le ticket (ou la PR s'il n'y a pas de ticket correspondant) ;
    • décrire clairement et de manière concise les modifications apportées par la PR ;

    Pour chaque version, indiquer le numéro de version suivi de la date au format ANNÉE-MOIS-JOUR.

    Les entrées sont regroupés par catégorie. Voici les catégories utilisées dans SPIP.

    Type d'entréeSignification
    Added Pour les nouvelles fonctionnalités
    Changed Pour les changements aux fonctionnalités préexistantes
    Deprecated Pour les fonctionnalités qui seront bientôt supprimées
    Removed Pour les fonctionnalités désormais supprimées
    Fixed Pour les corrections de bugs
    Security En cas de vulnérabilités

    Exemple de Changelog simple

    # Changelog ## 1.0.2 - 2023-07-25 ## Fixed - Ne pas afficher le texte du modèle `icone` et le mettre en `title` du lien ### Changed - mise à jour du README.md maintenant que la doc est sur contrib ## 1.0.1 - 2023-06-22 ### Added - ajout d'un CHANGELOG.md ### Changed - compatibilité SPIP 4.1+ - mise à jour de la documentation dans le README.md 

    Exemple de changelog complet

    Pour un exemple plus complet, voir celui de SPIP.


  • Écrire un message de commit

    Les messages des commits dans SPIP suivent la nomenclature des Commits Conventionnels. Ceci facilite la relecture a posteriori de l'historique du code, ainsi que l'analyse des PR.

    Le corps du message doit être clair et explicatif : décrire le problème traité et les évolutions ou corrections apportées.

    Structure d'un commit conventionnel

    1. Première ligne commençant par le type de commit, suivi de deux points (:), suivi d'un message résumant le commit.
    2. Le type peut éventuellement être complété par un scope entre parenthèses afin de préciser le composant ou la fonctionnalité modifiée.
    3. Optionnellement, on peut ajouter, après une ligne vide, un ou plusieurs paragraphes complémentaires décrivant plus en détail le commit. La syntaxe Markdown peut être utilisée.
    4. Enfin, une dernière ligne (séparée des précédentes par une ligne vide) doit contenir une référence au ticket auquel est lié le commit. La référence prend la forme suivant Refs: #XXX, ou Fix: #XXX pour fermer le ticket automatiquement lors de l'arrivé dans la branche main ou master.

    Exemple de commit conventionnel

    Exemple de log de commit complet :

    fix: réparer le lien vers la licence GPL dans le pied des pages du privé en le remplaçant par un simple lien vers le site officiel gnu.org Fix: #5328 

    Liste des types de commit

    TypeSignification
    build Modifie un script de compilation du programme ou modifie des dépendances externes. Indique également une montée en version.
    change Modifie l'implémentation d'une fonctionnalité — peut modifier des signatures de fonctions (≠ refactor)
    chore Travail de fond n'altérant pas le code (sortir une version, regénérer du code compilé)
    ci Relatif à l'intégration continue
    deprecate Déprécier (sans l'enlever) une fonctionnalité
    docs Relatif à la documentation (docs, readme, changelog)
    feat Ajoute une fonctionnalité
    fix Corrige un problème
    i18n Relatif aux traductions et chaînes de langue
    perf Améliore la performance d'algorithme ou du programme
    refactor Réécriture de code, sans en modifier l'implémentation
    remove Suppression de code ou de fonctionnalité (déprécié auparavant)
    revert Annule une modification précédente (commit)
    security Relatif à la sécurité
    style Relatif aux règles d'écriture du code (Coding Standard)
    test Relatifs aux tests du logiciel

    Pour aller plus loin

    Se référer au site www.conventionnalecommits.


mardi 18 juillet 2023

  • |typo

    Ce filtre effectue un traitement pour que les textes affichés suivent les règles de typographie. Il fait une protection préalable des balises HTML et SPIP et transforme les balises .

    Ce filtre est appliqué par défaut par SPIP sur les champs de texte.

    Voir aussi Des filtres


  • |propre

    Ce filtre est appliqué par défaut par SPIP aux textes longs (#TEXTE, #CHAPO, #PS, ...)

    Il applique à un texte les traitements typographiques et les raccourcis SPIP (italiques, gras, intertitres, etc.).

    Voir aussi Des filtres


jeudi 23 février 2023

  • SPIP 4.2

    SPIP 4.2 est une version qui suit les versions maintenues de PHP tout en gardant exceptionnellement une compatibilité avec PHP 7.4. C'est aussi un premier pas vers Composer avec l'introduction d'un autoloader à usage interne et l'intégration de dépendances à des librairies PHP via composer.json (notamment les polyfill PHP 8.0, 8.1 et 8.2 ainsi que le polyfill mbstring).

    Compatibilité PHP 7.4 à 8.2

    SPIP 4.2 nécessite PHP 7.4 minimum, et fonctionne jusqu'à PHP 8.2.
    Il nécessite les extensions PHP : sodium, Zlib, Zip et Phar.

    Comme pour SPIP 4.1, la compatibilité avec une nouvelle version de PHP a nécessité de nombreuses corrections et adaptations dans le code de SPIP.

    Cela concerne essentiellement des dépréciations des appels à utf8_encode, l'utilisation de propriétés de classes inexistantes et des écritures de type "${var}".

    Qualité du code

    Dans la lignée de SPIP 4.1, nous avons continué à typer certains arguments et retours de fonctions pour détecter au plus tôt certains appels incorrects.

    De plus, les quelques classes PHP de SPIP ont été déplacées dans ecrire/src sous le namespace Spip.

    Nouvelles fonctionnalités et changements

    Parmi celles-ci on peut noter :

    • une meilleure sécurisation des contenus par l'utilisation de la librairie HTMLPurifier à la place de SafeHTML
    • la possibilité d'éditer les logos des objets comme les documents, et l'introduction d'une balise #ID_LOGO_ (par exemple #ID_LOGO_ARTICLE) qui retourne l'identifiant du document utilisé pour le logo d'un objet
    • le support des backticks (`) pour insérer du code dans le contenu éditorial
    • l'affichage de la langue des utilisateurs sur leur page et la possibilité de l'éditer
    • la normalisation et l'appel systématique de l'API de notifications lors de la modification des contenus éditoriaux
    • la possibilité d'alterner le sens de tri des listes qui utilisent le critère tri
    • l'amélioration du balisage HTML généré pour les blocs de code
    • le moteur de base de données MySQL n'est plus forcé lors de l'installation, ce qui permet d'installer SPIP sans aucune modification sur un serveur qui utilise InnoDB
    • la prise en charge de l'utf8 pour le filtre |match
    • la possibilité de spécifier une jointure quand on utilise la balise #CHAMP_SQL (exemple #CHAMP_SQL{rubrique.titre})
    • la gestion des images haute densité lors du recadrage et de la réduction
    • une meilleure gestion de l'affichage des mises à jour dans le pied des pages de l'espace privé
    • ne plus autoriser un rédacteur ou une rédactrice à refuser ses propres articles
    • une refonte visuelle des pages d'installation et de rappel de mot de passe

    Beaucoup de bugs ont aussi été corrigés, vous pouvez consulter la liste complète dans le fichier CHANGELOG.md.

    Liste d'articles avec la possibilité d'alterner le sens de tri
    Configuration du redimensionnement des images côté navigateur avant l'upload
    Logo d'un article éditable comme un document
    La page de rappel de mot passe de spip.net
    La page utilise le même fond de couleur ou image d'arrière plan que celle définie pour la page de login.

    Plugins

    Bigup

    • possibilité de redimensionner les images côté navigateur, avant l'upload (les dimensions sont configurables depuis l'espace privé)
    • la prise en charge de la prévisualisation des images Webp et SVG
    • ajout d'un pipeline bigup_preparer_input_options pour personnaliser finement les options

    Compresseur

    • mise à jour de la librairie CSSTidy en version 2.0.3
    • correction d'un bug dans la compression des fichiers CSS contenants des écritures raccourcies sur les propriétés padding & margin

    Forum

    • ajout d'icones SVG manquantes sur la page de gestion des forums internes
    • limiter le nombre d'items à 100 dans les flux RSS produits
    • suppression du filtre |lignes_longues maintenant géré en css

    Medias

    • permettre d'éditer un logo comme un document
    • suppression du Sanitizer SVG qui est maintenant dans le plugin SafeHtml
    • suppression du formulaire FORMULAIRE_CHANGER_FICHIER_DOCUMENT qui n'est plus utilisé par SPIP (la fonctionnalité se trouve directement dans le FORMULAIRE_EDITER_DOCUMENT)
    • suppression des boutons excédentaires de sens de tri sur certaines listes de documents
    • ne pas contraindre la taille des images SVG
    • correction d'un bug de sélection des fichiers lors du chargement de documents depuis tmp/upload
    • mise à jour de la librairie getID3 en version 1.9.22

    Plan

    • utiliser l'API parents/enfants pour lister les objets enfants de chaque rubrique
    • feuille de style plus flexible et icones SVG

    Porte plume

    • La barre d'outils utilise backtick et triple backtick pour les blocs de code
    • ajout d'un événement markItUpEditor.loaded lorsque les barres d'édition sont chargées

    Révisions

    • correction du flux RSS du suivi des révisions

    SafeHtml

    • ajout du Sanitizer SVG auparavant dans le plugin medias
    • utilisation de la librairie HTMLPurifier à la place de SafeHTML

    Sites

    • filtrer la liste des sites par présence d'une syndication ou pas
    • suppression du filtre |lignes_longues maintenant géré en css

    SVP

    • accepter des bornes du type, x, x.y, et x.y.z dans un intervalle de compatibilités
    • amélioration de l'écran de progression d'installation des plugins

    TextWheel

    • support des backticks pour insérer du code dans le contenu éditorial
    • refactoring de la mise en sécurité des textes

    Squelettes dist

    • afficher le langage des blocs de code en haut à droite
    • compléter les CSS responsives pour les balises video, canvas, ou svg
    • afficher les documents joints aux brèves dans l'espace public
    • distinguer les styles des éléments .spip_code inline et block
    • permettre d'insérer deux formulaires de recherche dans la même page
    • éviter que les paginations ne débordent sur petit écran
    • suppression du filtre |lignes_longues maintenant géré en css
    • suppression des 3 formulaires inscription, mot_de_passe et oubli, désormais fournis par le core

Traduction

Publications

Derniers articles publiés

Sites favoris


131 sites référencés au total

Brèves

30 mai 2014 - Sur Facebook : Lac de Créteil - 94000 - Val de Marne -…

Lac de Créteil - 94000 - Val de Marne - France

24 février 2014 - Nous contacter

Pour nous contacter, cliquez sur l’enveloppe.http://laccreteil.fr/spip.php?page=…