Carnet Wiki

SPIP pour l’informaticien ou même l’informaticienne

La galaxie du moteur SPIP offre de très nombreuses possibilités d’extensions par paramétrage des appels, des fichiers ou simplement des squelettes.

Mais comme je n’ai trouvé aucun recensement de toutes ces possibilités, j’ai commencé mon propre « pense-bête »...

L’objectif principal de cette page est de regrouper en un point d’accès central les références utiles pour installer et utiliser SPIP comme un gestionnaire d’interrogation Web de bases de données de production, donc éventuellement sans même utiliser l’interface privée et le système de publication, si les BdD sont déjà mises à jour par d’autres progiciels dans l’entreprise.

L’installation


-  La structure des répertoires : modifiée lors de la version 1.9.2, elle est désormais décrite ici.

Noter que la SVN introduit de nouveaux sous-répertoires dans /ecrire/, en particulier /ecrire/req/ pour les divers portages de moteurs de SGBD...

Les nombreux répertoires dédiés de SPIP sont définis par une batterie de #define dans /ecrire/inc_version.php [1]
# compatibilite anciennes versions
# si vous n’avez aucun fichier .php3, redefinissez a «  »
# ca fera foncer find_in_path
#define(’_EXTENSION_PHP’, ’.php3’) ;
define(’_EXTENSION_PHP’, ’’) ; ]]
, à consulter pour documentation et information ; noter que des variables définies dans mes_options.php [2] peuvent les écraser.

Quelques références à lire egalement :
-  à l’occasion d’un passage 1.9 en 1.9.2d

-  Les options configurées en PHP : mes_options.php [3], à mettre en :
... /config selon les dernières publications sur SPIP ?
... /ecrire dans les versions précédant la SPIP 1.9.2 ??
(voir Paramétrage avancé d’un site (2005)

-  Les options codées en php : mes_fonctions.php , à mettre en :
... à la racine du site
... ou mieux, dans le /squelettes
(voir Les variables de personnalisation

-  les fichiers de langues : les fichiers d’origine sont dans /lang/ , suffixés par l’abbréviation de la langue..
ce sont respectivement /lang/ecrire_XX /lang/public_XX et /lang/spip_XX , qui peuvent etre surchargés par la création de fichiers local_XX à mettre dans ..... ? .....

Les bases de données


-  la connexion aux serveurs config/connect.php et spip_connect_db()
-  les divers serveurs acceptés : suite à la reprise des fonctions, le source base/abstract_sql sert d’interface vers les fonctions adaptées à chaque serveur
-  La structure des Bases de Données :http://www.spip-contrib.net/fr_rubr...
voir en particulier les articles http://www.spip.net/fr_article3681.html et http://www.spip.net/fr_article3683.html

-  Les Plugins : ce sujet ne sera pas documenté ici


codage pour SVN 2.0 menus privés

Ça vous intéresse pas ?

Modifs à faire dans style_prive.html pour avpoir des menus verticaux.

Ligne 117

.h-list ul li ul li display : table-row ; list-style : none ; margin : 0 ;
padding : 0 ;
.h-list ul>li .menu-item width : auto !important

Ligne 139

.bandeau_sec width : 110px !important ;left : auto !important ;
margin-top : 0 ; padding : 2px ; padding-top : 0 ; background-color : #FFF ;
border-bottom : 1px solid #000 ; border-left : 1px solid #000 ;
border-right : 1px solid #000 ; z-index : 100 ; display : none ;
position:absolute ;

Ligne 245

.cellule-texte margin : 0 ; padding : 0 ; border : 0 ; vertical-align : top ;
font-size : 10px ; font-weight : bold ; text-align : left ; text-decoration :
none ;


L’exploitation courante


-  les sauvegardes : sauvegarder =

  • les tables standard de SPIP : par
  • les tables annexes rajoutées,
  • les documents joints ( /IMG/ )
    et
  • les squelettes, ainsi que
  • les plugins rajoutés
    ensuite, il faut encore exporter l’ensemble de ces données vers un autre support, par FTP [4]

-  la mise-à-jour
-  les choix de configuration

Un ajout souvent bien agréable : unifier la connexion dans un unique formulaire de Login-Logout qui remplace le fichier Login de la dist, lequel est parfois « abscons », du moins a la lecture...

Les droits d’accès


-  les divers statuts d’auteurs : 0minirezo | 1comite
-  les administrateurs restreints
-  les plugins de gestion d’autorité et d’accès
-  la protection d’accès dans les squelettes d’interface public

L’usage des squelettes


-  les inclusions : différentes formes de l’instruction INCLURE
-  les noisettes, les modèles,
-  le passage de paramètres par contexte
-  l’ajout de fonctionnalités par code (c’est simplement ajouter un filtre par une fonction codée en PHP)
-  l’ajout de fonctionnalités constantes : les constantes _INSTALL_xx etc...

L’appel par les URL


-  les paramètres obligatoires

  • la variable page=squel permet l’accès à un squelette HTML de nom squel.html
  • les valeurs id_rubrique= ou id_article= facilitent l’appel direct à un squelette personnalisé pour la rubrique ou l’article courant.
  • l’appel en syntaxe raccourcie (sauf usage de systèmes d’URL personnalisées), d’une façon analogue aux codes #URL_ARTICLE ou #URL_RUBRIQUE des squelettes, s’abrege donc en passant le type de table suivi de son n° d’enregistrement :  ?article109 ou  ?rubrique23 (ce raccourci serait-il extensible à d’autres tables non standard

-  variables complémentaires en paramètres de l’URL d’appel

  • var_mode = calcul | recalcul | debug | preview
    _  ?var_mode=debug
    _ ?var_mode=calcul&var_profile=1
  • connect = pour utiliser la connexion à une base de données secondaire

-  autres variables spécifiques :

  • var_skel= sous-répertoire de squelettes pour le switcher de squelettes

pour passer de multiples arguments à une #URL_.. : pensez au filtre - http://www.spip.net/fr_article901.h... (tu peux
enchainer plusiers fois le filtre
|parametre_url’param1’,12|parametre_url’param2’,’Salut !’

Et l’interface privée ?

Nota préalable : la nouvelle version (v2.0 = post 1.9.2d) introduit beaucoup d’Ajax, et quelque chose que j’avais traduit par l’usage de squelettes dans l’interface privée, ce qui pourrait complètement changer les façons de faire signalées ici... voir ci-dessous !
-  les divers niveaux d’interface
-  les tables externes (mise-à-jour en interface privée)
-  les balises d’appel à l’interface privée #URL_ECRIRE

-  l’interface privée de la V2.0 (sortie prévue à l’été 2008 ) : une synthèse d’après http://article.gmane.org/gmane.comp... et sq...
La nouveauté annoncée est cette fameuse interface privée squelettisée... Bon, « ne vous faites pas de films » il y a encore beaucoup de code en dur à reprendre...

Mais sans changer l’apparence de cette interface privée, les modifications en interne s’amorcent : vous pourriez commencer a regarder les squelettes surchargeables dans dist/prive
Par ailleurs, une bonne partie de l’apparence de l’espace privé est géré par des CSS et des images qui peuvent être surchargés par un plugin ou...

  • vous trouverez aussi des articles expliquant fort simplement comment créer/surcharger une balise #X, juste en definissant une fonction personnelle balise_x

[1il serait sans doute interessant d’avoir une accélération définie automatiquement dans inc_version.php[19..22]

[2l’emplacement de mes_options.php semble pouvoir etre modifié en 1.9.3 vers / ou /squelettes ou /config

[3cette possibilité existe seulement depuis la version 1.7

[4rechercher les derniers fichiers créés dans /tmp/ et/ou dans /tmp/dump/ ) ou automatiquement par mail [[utiliser par exemple le plug-in sauveauto

YannX - Mise à jour :1er mars 2023 à 23h18min