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é (…)
Lu | Ma | Me | Je | Ve | Sa | Di |
---|---|---|---|---|---|---|
30 | 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 | 1 | 2 | 3 |
Lac de Créteil - 94000 - Val de Marne - France
Pour nous contacter, cliquez sur l’enveloppe.http://laccreteil.fr/spip.php?page=…
jeudi 8 mai 2025
Cette balise renvoie la valeur du champ de redirection saisi pour un article (cette saisie se fait dans la colonne secondaire de la page d'édition d'un article).
Cette possibilité doit avoir été activée dans la page de configuration "Contenu du site".
Le critère
{virtuel}
d'une boucle ARTICLES permet de ne retenir que les articles virtuels (qui redirigent vers une autre url).Inversement, avec
{virtuel=''}
ou{!virtuel}
, la boucle ne retournera que les articles non redirigés.Voir : #VIRTUEL
jeudi 20 mars 2025
Rector est un outil de refactoring et d'amélioration automatisé de code PHP ; SPIP s'est doté d'un jeu de règles : https://git.spip.net/spip-league/rector.
Sommaire
Préalable
Il faut un fichier
composer.json
à la racine du plugin, dans lequel on déclare le dépôt composer propre à SPIP :Installation
Configuration
La configuration se fait dans le fichier
rector.php
à la racine de votre plugin :On peut configurer des scripts dans le fichier
composer.json
:Usage
SPIP propose un jeu de règles pour Easy Coding Standard (https://github.com/easy-coding-standard/easy-coding-standard) via le dépôt spip-league/easy-coding-standard.
L'utiliser permet de s'assurer de respecter les conventions d'écriture PHP utilisées dans la communauté SPIP.
Sommaire
Préalable
Il faut un fichier
composer.json
à la racine du plugin, dans lequel on déclare le dépôt composer propre à SPIP :Installation
L'installation se fait avec la commande :
Configuration
Créez le fichier
ecs.php
à la racine de votre plugin :Usage
Pour en faciliter l'usage, on peut ajouter des "alias" dans les scripts du fichier
composer.json
:mercredi 19 mars 2025
La constante
_AUTORISER_TELECHARGER_PLUGINS
a comme valeur par défauttrue
, ainsi les admins d'un site peuvent ajouter ou mettre à jour les plugins du site.Si vous souhaitez désactiver le chargement des plugins, elle peut être définie à
false
dans votre fichierconfig/mes_options.php
(voir l'article qui lui est consacré).jeudi 6 mars 2025
Personalizou o layout e a tipografia do seu site, mas agora são os formulários do SPIP que entrama em conflito com todo o resto ! Sem pânico, aqui também as folhas de estilo remediam o problema.
Sommaire
Diversos formulários são usados no site público, pelo motor de busca interno, a redação das mensagens dos fóruns, as inscrições para a área restrita etc.
Différents formulaires sont utilisés dans le site public, pour le moteur de recherche interne, la rédaction des messages des forums, les inscriptions à l'espace privé, etc. O mesmo se aplica para os formulários SPIP como para o resto : a sua aparência gráfica pode ser alterada via CSS para se adaptar corretamente ao seu design.
Para aproveitar esta matéria, é melhor conhecer as tags HTML próprias dos formulários.
A cada formulário o seu estilo
Todos os formulários SPIP usados no site público estão envolvidos numa
div
com o mesmo estilo,.formulaire_spip
, que permite aplicar facilmente uma alteração a todo o conjunto de formulários.Por exemplo, para por em negrito todas as descrições dos campos de entrada (
) dos seus formulários, deve estilizá-los assim :
Cada formulário tem também o seu próprio estilo. Isto permite, inversamente, alterar cada a aparência de certos formulários individualmente, sem interferir nos outros.
Cada um desses estilos é nomeado com o mesmo nome da tag que chama o formulário e o seu template. Por exemplo, o ficheiro HTML do formulário de busca é
formulaire_recherche.html
; este é inserido nos templates graças à tag#FORMULAIRE_RECHERCHE
; e o estilo a que está associado é, portanto,.formulaire_recherche
.Após o SPIP 1.9, os templates foram recolocados e assim renomeados :
dist/formulaires/recherche.html
.Estilos dos campos de entrada
O estilo
.forml
é aplicado aos campos de entrada dos formulários. Isto permite definir a cor de fundo e a largura dos campos de entrada, bem como o tamanho e a fonte de caracteres. Por exemplo :Este estilo é particularmente útil para unificar o conjunto dos campos de entrada, sejam quais forem as tags que os recebem, tais como
e
ambos presentes no formulário de fórum.
Cada campo de entrda é rotulado com um termo explicativo, envolvido numa tag HTML
. Pode-se alterar a aparência desses tótulos com esta definição de estilo :
.formulaire_spip label
.Os estilos CSS permitem não apenas alterar as cores e as fontes de caracteres, mas também gerir o posicionamento relativo dos objetos na página. É possível mesmo definir com precisão a disposição dos elementos entre eles (por exemplo :
,
e
), sem usar
Botões com as suas cores
Uma novidade que empolgará os iniciantes em CSS : pode-se alterar a cor dos campos, mas também dos botões dos formulários [1]. O estilo
.spip_bouton
é o usado pelos botões dos formulários SPIP.Por exemplo, para que os botões tenham um fundo azul claro e uma borda suficientemente visível (espessura, relevo e azul escuro), altere a regra como a seguir na sua folha de estilo :
O formulário de fórum oferece uma barra de atalhos tipográficos. A sua aparência é controlada pelo estilo
.spip_barre
. Assim, para alterar a aparência dos ícones que a compõem e, por exemplo, destacá-los ao sobrepor o rato, defina os estilos para.spip_barre a img
e.spip_barre a:hover img
.Organizar esses elementos de modo visivelmente lógico
Os diferentes elementos de um formulário são mais rigorosamente reagrupados em « blocos lógicos » com as tags HTML dedicadas
[1] Note, no entanto, que certos navegadores impõem os seus próprios botões estilizados e não permitirão que mude o seu aspecto.
vendredi 14 février 2025
Cette branche LTS [1] va bénéficier d'un support étendu jusqu'en juillet 2027.
Sommaire
Compatibilité PHP 7.4 à 8.4
SPIP 4.4 nécessite PHP 7.4 minimum, et fonctionne jusqu'à PHP 8.4.
Il nécessite les extensions PHP : sodium, Zlib, Zip et Phar.
Changements apportés par SPIP 4.4
Les changements les plus marquants sont le fait que SPIP n'envoie plus de mot de passe en clair dans les mails d'inscription et de rappel de mot de passe.
Côté technique on peut noter que les dossiers
ecrire
,prive
,squelettes-dist
ainsi que l'écran de sécurité s'installent avec Composer. Cela ne change rien pour les personnes qui utilisent spip_loader. À noter aussi, l'introduction des balises#LAYOUT_PRIVE
,#TRAD
et#URL_DOCUMENT_FICHIER
.On peut également noter une série d'optimisations pour les filtres d'images.
La balise
#LAYOUT_PRIVE
remplace#LARGEUR_ECRAN
et permet d'utiliser de nouvelles dispositions pour les pages de l'espace privé :#LAYOUT_PRIVE{fluide}
, le contenu central s'adapte selon la présence ou pas de contenu dans#extra
et#navigation
.#LAYOUT_PRIVE{pleine-largeur}
#LAYOUT_PRIVE{complements-gauche}
#LAYOUT_PRIVE{complements-droite}
#LAYOUT_PRIVE{complements-bas}
#LAYOUT_PRIVE{complements-bas-inverse}
La balise
#TRAD
permet d'éviter les écriture du style#VAL{module:cle}|_T
, exemple#TRAD{module:cle, #ARRAY{param, val, ..}, #ARRAY{option, val..}}
.Répertoires
- Le répertoire
vendor/
se complète, avec l'arrivée de premières librairiesspip-league
, qui vont faire une première passerelle vers des éléments du futur SPIP 5.0- À ce titre, un répertoire
config/spip
est maintenant présent égalementCette version apporte également d'autres améliorations ou corrections de bugs.
Sécurité
Ajouts
copie_locale()
passe une cléaction
au pipelinepost_edition
#LAYOUT_PRIVE
#TRAD{module:cle, #ARRAY{param, val, ..}, #ARRAY{option, val..}}
#URL_DOCUMENT_FICHIER
renvoyant toujours le fichier d'un document, ce qui permet quand on le souhaite d'utiliser#URL_DOCUMENT
pour renvoyer vers une page web. Les modèles de document sont mis à jour pour utiliser cette balise.ajouter_lien
etsupprimer_lien
peuvent gérer un qualificatifajouter_menus_args
, en complément au pipelineajouter_menus
, qui transmet les arguments dedefinir_barre_boutons()
var_nullify
du contexte danstraiter_appels_inclusions_ajax
#PARAM
pour récupérer les paramètres du container de services|affdate
accepte un timestamp en entrée_image_extensions_logos()
et pipelineimage_extensions_logos
cache-gd2
etcache-vignettes
)image_oriente_selon_exif()
pour réorienter automatiquement une image selon son exifChangements
ecrire
,prive
,squelettes-dist
s'installent avec Composercompter_contributions_auteur
dans la boite d'info d'un auteur#LAYOUT_PRIVE
) :defaut
,fluide
,pleine-largeur
,complements-droite
,complements-bas
,complements-bas-inverse
var_nullify
pour en être totalement expurgéescomplement-gauche
image_extensions_logos()
à la place de$GLOBALS['formats_logos']
image_recadre
réorientent l'image selon l'exif d'orientationCorrections
prive.php
inc_vignette_dist
qui attend un paramètremedias
z-index
sur les colonnes qui sont déjà en flexIMAGETYPE_SVG
une valeur qui ne risque pas une collision avec un futur ajout de format image (19 a été pris parIMAGETYPE_AVIF
entre temps)phraser_champs_interieurs()
fpassthru()
pour livrer directement les fichiers et éviter un memory limit plutôt quereadfile()
qui passe par un chargement en mémoire du fichierSTREAM_CRYPTO_METHOD_TLS_CLIENT
tt
obsolètes parcode
compter_contributions_auteur
le nombre de contribution sur les articlespass_reset_url
publierdans
en utilisant le parent déclaré par l'API de parentépublie
danscharger
et pour la validation dansverifier
exif_read_data()
image_oriente_selon_exif()
en absence d'imageimage_aplatir()
,image_renforcement()
,image_flou()
,image_sepia()
,image_flip_vertical()
,image_flip_horizontal()
,image_nb()
,image_gamma()
&image_rotation()
crop
deimage_rotation()
div
plutot qu'enp
audio/x-m4a
est un alias deaudio/mp4a-latm
$formats_logos
remplacée par_image_extensions_acceptees_en_entree()
tmp/upload
n'existe pasemb
afficher_config_objet
qui manquait sur les pages mots et groupes_mots.Dépréciations
ou
#LARGEUR_ECRAN
pour les squelettes du privé à remplacer par#LAYOUT_PRIVE
phraser_boucle_placeholder()
à remplacer parphraser_placeholder_memoriser()
ouphraser_placeholder_reinjecter()
public_generer_boucle_placeholder()
à remplacer parpublic_placeholder_generer()
$GLOBALS
sont dépréciés ; renvoyer directement un tableau_DIR_IMG_PACK
$traiter_math
,$tex_server
, fonctionsproduire_image_math()
,traiter_math()
etreplace_math()
, utiliser le pluginmathjax
à la place$formats_logos
est déprécié : utiliser le pipelineimage_extensions_logos
$formats_logos
est déprécié, utiliser la fonction_images_extensions_logos()
_DIR_RESTREINT_ABS
|image_typo
, et fonctionsrtl_mb_ord()
,rtl_reverse()
,rtl_visuel()
,printWordWrapped()
,produire_image_typo()
, installer le pluginImages typographiques
Retraits
verif_butineur()
,editer_texte_recolle()
et environnement_texte_trop_long
des formulaires (inutilisé — servait pour IE)_texte_trop_long
(servait pour IE)Plugins compatibles
Comme pour la version précédente, la plupart des plugins sont déjà compatibles avec SPIP 4.4, ce qui facilitera les mises à jour.
Voir : Effectuer une mise à jour
[1] https://fr.wikipedia.org/wiki/Long-term_support
mardi 14 janvier 2025
L'équipe de maintenance utilise ces outils pour maintenir et développer SPIP. Cet article résume succinctement le rôle des outils et les liens de documentation.
Nous développons et utilisons aussi nos propres outils :
- spip-releases
- spip-league/ecs
- spip-league/rector
- spip-league/sdk
mercredi 20 novembre 2024
Comment comprendre les numéros de version de SPIP ? Comment savoir s'il faut mettre à jour ?
Sommaire
Versionnement sémantique
Depuis 2024, SPIP a adopté le versionnement sémantique.
Voici un résumé de son fonctionnement, pour les détails on se réferera à la documentation officielle .
Chaque version de SPIP est désignée par 3 nombres, séparés par un point :
x.y.z
.Lorsque le z est augmenté, c'est une mise à jour corrective. Cela peut corriger des bugs ou bien une faille de sécurité. La fréquence de sortie des versions correctives est d'environ une fois par mois.
Lorsque le y est augmenté, c'est une mise à jour mineure. De nouvelles fonctionnalités sont ajoutées et des bugs résolus, mais il n'y a pas besoin d'adapter son code / ses squelettes. La fréquence de sortie des versions mineures est approximativement une fois tous les six mois.
Lorsque le x est augmenté, c'est une mise à jour majeure. Des nouvelles fonctionnalités sont ajoutées, d'anciennes sont retirées, certaines changent. Il peut y avoir besoin d'adapter son code / ses squelettes. Une note de version indique les changements à faire. La fréquence de sortie des versions majeures est d'environ tous les 24 mois.
Les mises à jours sont annoncées sur le blog de SPIP. Il est fortement conseillé de s'inscrire à la mailing list d'annonce.
Les surcharges et le versionnement sémantique
Le principe du versionnement sémantique permet de s'assurer qu'il n'y ait pas de rupture de compatibilité / de changement à faire lorsqu'on augmente un y ou un z.
Toutefois, il est possible dans SPIP de surcharger des squelettes. Mais attention aux surcharges des squelettes de l'espace privé. Ce mécanisme de surcharge, puissant, est ici dérogatoire au versionnement sémantique : il peut y avoir des modifications dans les paramètres passés à un squelette lors d'une mise à jour corrective ou mineure.
Une personne surchargeant un squelette de SPIP le fait donc à ses risques et périls, et en conscience.
Notions de branche
Une combinaison d'un x et d'un y correspond à une branche de SPIP. En général, deux branches sont maintenues en même temps, permettant ainsi aux personnes de prendre le temps de migrer. Voir à ce sujet l'article Versions maintenues.
lundi 4 novembre 2024
La balise
#NULL
renvoie la valeurnull
PHP. Elle est donc équivalente à#EVAL{null}
.Elle a différents usages :
- passer une valeur
null
à un filtre ou comme argument d'une balise SPIP.Par exemple dans le plugin
acces_restreint
:- appeler un filtre sans argument :
- annuler une variable d'environnement lors d'une inclusion :
vendredi 6 septembre 2024
Le filtre
balise_img_svg
permet d'insérer une baliseou une balise
![]()
selon que son argument est un fichier SVG ou un autre format d'image.En effet :
balise_img
insère une balise![]()
quel que soit le type de l'image reçue en argument, y compris lorsque c'est un fichier SVGbalise_svg
insère toujours une balise.
Le filtre
balise_img_svg
est donc utile quand on l'applique à une image dont on ne sait pas le format à l'avance et qu'on souhaite que les images SVG soient insérées avec une balise.
Ce filtre s'applique sur l'url relative d'un fichier image ou d'une balise image déjà formée. Il accepte les paramètres optionnels qui suivent :
alt
: un texte alternatif (ou une valeur nulle pour explicitement ne pas avoir de balise alt sur l'image au lieu d'un alt vide)class
: null par défautsize
: permettant de spécifier la taille du rendu (voir les détails de syntaxe : |balise_img)Exemples d'usage :
vendredi 26 juillet 2024
Par défaut, SPIP 4.3 envoie un email à tou⋅tes les webmestres du site quand une mise à jour de SPIP est disponible.
La constante
_MAJ_NOTIF_EMAILS
permet de personnaliser la liste des adresses auxquelles seront envoyés ces emails. Elle peut être personnalisée dans votre fichierconfig/mes_options.php
(voir l'article qui lui est consacré).Par exemple, si on souhaite désactiver ces notifications (ce qui n'est pas une bonne idée) :
mais aussi
Sommaire
Compatibilité PHP 7.4 à 8.3
SPIP 4.3 nécessite PHP 7.4 minimum, et fonctionne jusqu'à PHP 8.3.
Il nécessite les extensions PHP : sodium, Zlib, Zip et Phar.
Changements apportés par SPIP 4.3
Les changements les plus importants concernent
Le bandeau de l'espace privé prend moins de place en hauteur
La création rapide des contenus passe dans un menu dépliant
Le formulaire de changement de statut est revu
Un message avertissant d'une nouvelle version disponible
Cette version apporte également d'autres améliorations ou corrections de bugs.
Ajouts
spip_loader
(voir Utiliser spip_loader) s'il est présent_MAJ_NOTIF_EMAILS
, voir la documentation)|balise_img_svg
pour insérer une image ou un SVG inline sans savoir d'avance le formatfind_all_in_path()
pour renvoyer tous les fichiers répondant à un pattern|propre
qui appliquepropre()
&safehtml()
(cela permet de dés-échapper le code de confiance des modèles)_DEBUG_MINIPRES
définie à true active l'affichage d'un debug visible lorsqu'une erreur de type Minipage survientget_spip_doc
pour manipuler le résultat natif de la fonctionget_spip_doc()
Changements
paquet.xml
est absent, et qu'il existe un fichier{prefixe}.svg
dans le plugin, il est utilisé comme logoextraire_balise()
etextraire_balises()
peuvent gérer des balises imbriquéesCorrections
ecrire_fichier()
{pagination}
et{limit}
#PRODUIRE_FOND
)mediaelement
en version 7.0.3inserer_attribut()
sur un cas dérogatoire : les balises![]()
(même non autofermante)Dépréciations
ecrire/inc/presentation
auteur_session
(dépréciée depuis SPIP 2.0 !) sera supprimée en SPIP 5.0. Utiliservisiteur_session
..label
au profit de.editer-label
dans les formulairesRetrait
Plugins-dist
Images
Les performances du plugin-dist Filtres Images ont été très nettement optimisées, certains filtres images sont désormais jusqu'à 10 fois plus rapides grâce à l'utilisation des fonctions natives de PHP GD
|image_oriente_selon_exif
pour réorienter automatiquement une image selon son exif|image_recadre
réorientent l'image selon l'exif d'orientation|image_aplatir
,|image_renforcement
,|image_flou
,|image_sepia
,|image_flip_vertical
,|image_flip_horizontal
,|image_nb
,|image_gamma
,|image_rotation
|image_rotation
Plugins compatibles
Dès sa sortie SPIP 4.3 bénéficie d'environ 700 plugins compatibles, ce qui facilitera les mises à jour.
Voir : Effectuer une mise à jour