Carnet Wiki

SPIPpourInformaticien

Version 10 — Mai 2010 — 82.126.xx.xx

 ! Nota Bene : ces informations etaient pertinentes pour la 1.9.2, sauf erreur de l’auteur
Rien ne dit à ce jour qu’il en soit de meme pour la SPIP v2 !!

Pensez à mettre à jour vos SPIP (corrections de sécurité à fin Décembre 2008)

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 zn 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 squelettes / lang .....  ? .....

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

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 WorkFlowSpipS dans SPIP (normal, crayons, gribuoille, contrib-net... j’en oublie ??
  • 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 :

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 !’

Ou bien (citation extraite de http://my.opera.com/tech-nova/blog/... ) :
#URL_ECRIRE just discovered

Tuesday, 5. February 2008, 00:15:40


private area, tag, url
I barely know what #URL_PAGE is.
But not #URL_ECRIRE,.. until today :wink:


This helper, like #URL_ACTION_AUTEUR, enables us to link your website to the private area.


#URL_ECRIRE{ naviguer }
returns ecrire/?exec=naviguer


#URL_ECRIRE{naviguer, args}
returns ecrire/?exec=naviguer&args
(it's like #URL_PAGE in fact)


#URL_ACTION_AUTEUR{converser,args,redirectme}
returns ecrire/?action=converser&args&hash=xxx&redirect=redirectme


Combined with a filter like |parametre_url, you can do whatever you want :


For example :


<a href="#URL_PAGE{identifiants,focus=nom_inscription}&mode=(#URL_SITE_SPIP|tester_config{1comite})"
(in dist/login.html)
that returns <a href="spip.php?page=identifiants&focus=nom_inscription&mode=.."


It should possible to write
#URL_ECRIRE{forum_envoi,statut=prive&id=363&script=articles#formulaire}


but you can also use this :
[(#URL_PAGE{my_backend}|parametre_url{id_mot,#ID_MOT}|parametre_url{id_rubrique,#_:ID_RUBRIQUE})]
to generate <a href="spip.php?page=my_backend&id_mot=32&id_rubrique&..

Et l’interface privée ?

Nota préalable : la nouvelle version (v2. = 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. (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 définissant definissant une fonction personnelle balise_x