Contents
-
SPIP - Système de Publication pour Internet
- Installation et configurations de base
- Un jolie thème ou plutôt un squelette
- Ajouter plus de fonctionnalités à SPIP avec les plugins
- Faire la gestion de spip et ces plugins par svn
-
Hacker dans Spip
- Configuration en arrière de varnish
- Ajouter un utilisateur dans la base de données
- Éliminer définitivement tous les commentaires (spam) dans les forums des articles
- Transformer des brèves en article
- bouger tous les articles d'une rubrique à une autre
- Archive (toujours valide?)
- bug avec la balise multi
- Références
SPIP - Système de Publication pour Internet
C'est ce fameux CMS qui est né en France distribué sous licence libre. http://www.spip.net
Installation et configurations de base
Procédure d'installation de SPIP dans un compte AlternC
Téléchargez l'installateur SPIP sur votre ordinateur à partir de http://www.spip.net/spip-dev/INSTALL/spip_loader.php
- Cliquez sur ce lien à l'aide du bouton de droite de votre souris puis, sélectionnez l'option "enregistrer sous".
- Dans votre compte AlternC, téléchargez l'installateur SPIP.
- Il n'est pas conseillé d'installer spip à la racine de votre espace AlternC car cela limite l'utilisation de votre espace AlternC.
- Placez l'installateur dans le répertoire où vous désirez avoir votre SPIP.
- Vous devez avoir un nom de domaine lié au répertoire ou vous désirez installer votre SPIP.
- Vous devez avoir une base de données disponible pour votre SPIP.
- Vous devez savoir le nom du serveur host, l'utilisateur et le mot de passe pour accéder à la base de données.
Naviguez à votre installateur. http://monspip.koumbit.net/spip_loader.php
- Suivez la procédure d'installation de l'installateur.
- Voilà, votre SPIP est prêt pour la publication.
Procédure d'installation de Multi spip (mutualisation) dans un compte AlternC
Note: Nécessite un accès shell
- svn checkout svn://trac.rezo.net/spip/branches/spip-2.0 .
- svn co svn://zone.spip.org/spip-zone/_plugins_/_stable_/mutualisation/ mutualisation/
- mkdir sites
- cp mutualisation/mes_options.php.txt config/mes_options.php
- Spécifier les configurations suivantes dans config/mes_options.php :
- define ('_INSTALL_HOST_DB', 'mysql.koumbit.net');
define ('_INSTALL_USER_DB', 'MonUtilisateurMysql');
define ('_INSTALL_PASS_DB', 'MonMotDePasse');
- define ('_INSTALL_NAME_DB', 'LeNomDeMonCompteAlternC_'.prefixe_mutualisation($site));
- define ('_SITES_ADMIN_MUTUALISATION', 'mamutualisation de spip');
'code' => 'MonCode9797',
'url_creer_base' => 'https://bureau.koumbit.net/admin/sql_doadd.php?username=UtilisateurAlternC&password=MotDePasseAlternC&dbn='.prefixe_mutualisation($site)
Note: attention, il y a une redirection de www.exemple.net vers exemple.net par défaut dans le mes_options.php c'est pas incompatible avec AlternC. J'ai rapporté ce bug sur la liste spip-zone http://archives.rezo.net/spip-zone.mbox/200903.mbox/browser
références
Activer les URLs propres dans SPIP 2.0
L'activation des urls propres est grandement facilité dans spip 2.0. Dans l'espace d'administration privé vous devez choisir le type d'url propre. (http://VotreSiteSPIP/ecrire/?exec=config_fonctions) et ensuite vous devez renommer le fichier htacess.txt à .htacess à la racine de l'installation de votre spip.
Note: Si nécessaire, éditez le fichier .htaccess pour configurer l'option RewriteBase.
- Si votre site est à la racine du domaine assurez vous d'avoir la ligne suivante.
RewriteBase /
- Si votre site est dans un répertoire ou sous-répertoire vous devez l'indiquer.
RewriteBase /repertoire/sous-repertoire
Déménagement d'un site SPIP
- Faire une copie du répertoire racine du site.
- Faire une copie de la base de données.
- Transferrer les fichiers dans le nouveau répertoire.
- Restaurer la copie de la base de données dans la nouvelle instance de base de données.
- Changer les paramêtres de connection à la base de données dans le fichier suivant: ecrire/inc_connect.php3
- Naviguer à votre nouveau url. Le site devrait être fonctionnel.
Dans la section administration du site --> Configuration du site --> Adresse (URL) du site public: changer pour le nouveau url de votre site.
- Voilà!
Mise à jour d'un site SPIP
Bien suivre les instructions: http://www.spip.net/fr_article1318.html
Lors d'une mise à jour de spip, il est parfois nécessaire de partir d'une version fraichement installée pour plein de raisons. La base de données est facile à mettre à jour (spip le fait automatiquement) mais il nous manquera les fichiers (pdf, jpg etc..). On doit copier le répertoire IMG de l'ancien SPIP vers le répertoire IMG du spip fraichement installé.
Un jolie thème ou plutôt un squelette
Anciennement le squelette Alternatives, André Vincent continue le développement du squelette pour spip 2.0 sous le nom Ahuntsic. Celui-ci continue d'être un des squelettes les plus complet qui existe. Merci au travail de André Vincent!
Voici un exemple d'utilisation dans un site multilingue. http://www.sommetdespeuples.org/
Ajouter plus de fonctionnalités à SPIP avec les plugins
Dans l'espace privé de spip 2.0, il est maintenant possible de télécharger directement les plugins qu'on désire. Ça facilite grandement l'installation!
Voici les répertoires de plugins
La créme plugins.spip.net
La jungle spip-contrib
Il y a aussi le site pour faire le suivi du développement des plugins
À mon avis, les plugins nécessaires à toute installation de spip.
http://www.spip-contrib.net/Corbeille Retrouvez facilement les éléments dans la corbeille!
http://www.spip-contrib.net/Les-Crayons Pour éditer rapidement les éléments de spip depuis l'espace public.
Création de formulaires
Le plugin Forms n'est pas fonctionnel sous spip2.0. Pour la branche de spip 1.9, la version du plugin qui fonctionne le mieux est la suivante
Créer des images avec des régions cliquables (image map)
Plugin-Image-Cliquable chez Spip contrib
- faire un checkout par svn:
svn co svn://zone.spip.org/spip-zone/_plugins_/_test_/image_cliquable
Pour envoyer une page par mail
Pour soummettre des articles par mail
http://www.spip-contrib.net/chantier-Faut-pas-pusher-installer
à voir si le tout fonctionne bien sur le serveur de koumbit. On dirait bien que non! Si le compte pop est sur Koumbit
Warning: imap_open(): Couldn't open stream {mail.domain.net/pop3:110} in /var/alternc/html/r/redspip/ecrire/push.php3 on line 241 Probleme : Certificate failure for mail.domaine.net: unable to get local issuer certificate: /CN=bureau.koumbit.net/ST=QC/C=CA/emailAddress=www@koumbit.net/O=Le Reseau Koumbit/OU=Webserver team
Voir la solution ici: http://www.spip-contrib.net/chantier-Faut-pas-pusher-installer dans la partie commentaire de la page.
Faire des pdfs sur le fly avec fpdf dans spip
La plus récente contribution! chez spip contrib
L'explication: http://www.drop-zone-city.com/article.php3?id_article=94
La librairie php - http://www.fpdf.org/
Un exemple fonctionnelle. http://www.klingsor.com/article.php3?id_article=221
Faire la gestion de spip et ces plugins par svn
Spip sous svn
- la version head (spip 2.X)
- svn checkout svn://trac.rezo.net/spip/spip/spip .
- la branche stable 2 .X
- svn checkout svn://trac.rezo.net/spip/branches/spip-2.0 .
- la branche stable 1.9.2
- svn checkout svn://trac.rezo.net/spip/branches/spip-1.9.2 .
les branches disponibles http://trac.rezo.net/trac/spip/browser/branches
Plugins sous svn
- télécharger le squelette d'Alternatives pour spip 1.9.2 (stable)
- svn co svn://zone.spip.org/spip-zone/_squelettes_/alter
- le plugin pour la création de formulaire
- svn co svn://zone.spip.org/spip-zone/_plugins_/_stable_/forms
Hacker dans Spip
Configuration en arrière de varnish
Créer le fichier config/mes_options.php, ou ajouter le suivant à ce fichier si ça existe: <pre>
$_SERVER['HTTPS'] = 'on'; $_SERVER['SERVER_PORT'] = '443'; </pre>
Ajouter un utilisateur dans la base de données
Décider sur un mot de pass:
pwgen -s -y 32 1
Génerer le sha256sum et le md5 salted:
echo 'MDP' | sha256sum - python -c 'import crypt; print(crypt.crypt("MDP", "$1$CHANGETHISSALT$"))'
Preparer la requête SQL :
INSERT INTO `spip_auteurs` (nom, email, login, pass, statut, webmestre, htpass) VALUES ('user', 'user@koumbit.org','user@koumbit.org','sha256sum,'0minirezo','non',,'salted_md5');
- Faire l'insert dans la base de données.
Éliminer définitivement tous les commentaires (spam) dans les forums des articles
Les anciens SpiP ont une tendance à collectionner beaucoup de spam dans les forums des articles. On doit parfois prendre les grands moyens pour éliminer et désactiver TOUS les commentaires sur les articles. Voici la recette:
S'assurer que les commentaires sont désactiver par défaut. Dans l'interface privé, aller dans le menu Configuration->Interactivité->Mode de fonctionnement par défaut des forums publics , choisir l'option Désactiver l'utilisation des forums publics. et ensuite l'option avancé : à tous les articles sans exception. et faites Valider.
Supprimer les commentaires qui sont des spams dans la table spip_forum avec l'aide de phpmyadmin. Sinon, vous pouvez aussi supprimer TOUS les commentaires en vidant la table spip_forum avec l'aide de phpmyadmin!
Voici une autre méthode un peu moins barbare... ça supprime tous les commentaires en attente de modération.
DELETE FROM `spip_forum` WHERE `spip_forum`.`status` = 'off'
Transformer des brèves en article
Pour commencer on doit prendre note du numéro de notre dernier article et de notre dernière brève.
Avant de faire la transformation en article, si on veut migrer les mot-clés associés aux brèves, on doit s'assurer que tous les brèves ont un id_breve consécutif dans la table spip_breves. Utiliser phpmyadmin pour faire la vérification, c'est simple la quantité de ligne dans la table doit être équivalente au dernier id_breve. Par exemple, on peut insérer des brèves fantômes avec la requête sql suivante:
INSERT INTO spip_breves (id_breve) VALUES (9); INSERT INTO spip_breves (id_breve) VALUES (14); INSERT INTO spip_breves (id_breve) VALUES (16); INSERT INTO spip_breves (id_breve) VALUES (17); INSERT INTO spip_breves (id_breve) VALUES (18);
Prendre note des id_breve que vous avez inséré parce qu'on va devoir supprimer ces brèves fantômes une fois qu'il sont devenue des articles.
Maintenant plus de détour, on transforme les brèves en article avec une requête sql directement dans la base de données en utilisant phpmyadmin.
INSERT INTO spip_articles (titre,id_rubrique,texte,date,statut,maj,extra,lang,langue_choisie,nom_site,url_site,idx,url_propre) SELECT titre, spip_breves.id_rubrique, spip_breves.texte, spip_breves.date_heure, spip_breves.statut, spip_breves.maj, spip_breves.extra, spip_breves.lang, spip_breves.langue_choisie, spip_breves.lien_titre, spip_breves.lien_url, spip_breves.idx, spip_breves.url_propre FROM spip_breves WHERE (spip_breves.id_breve=999) ORDER BY spip_breves.id_breve ASC;
puis, exécuter
- veille juste à remplacer =999 par = le numéro de ta dernière brève non fantôme!
ensuite, si tu vois que cette brève est bien devenue article, remplace le = par < et remets ça
- je viens de transformer avec succès toutes mes brèves en article avec cette séquence sur spip 1.9.2.
Référence: http://forum.spip.org/fr_176505.html
Pour passer les mots-clés maintenant, on exécute la commande suivante:
INSERT INTO spip_mots_articles( id_mot, id_article ) SELECT spip_mots_breves.id_mot, spip_mots_breves.id_breve+3578 FROM spip_mots_breves
- veille à remplacer le numéro 3578 par le numéro du dernier article que vous avez noté au début de la procédure
Voilà normalement, les mots clés des anciennes bréves ont été passé nouveaux articles.
On peut maintenant supprimer nos veilles brèves fantômes dans la table article.
DELETE FROM spip_articles WHERE id_article = 3578+9; DELETE FROM spip_articles WHERE id_article = 3578+14; DELETE FROM spip_articles WHERE id_article = 3578+16; DELETE FROM spip_articles WHERE id_article = 3578+17; DELETE FROM spip_articles WHERE id_article = 3578+18;
- veille à remplacer le numéro 3578 par le numéro du dernier article que vous avez noté au début de la procédure
Si tout à bien passé, on vide la table spip_breves et la table spip_mots_breves
bouger tous les articles d'une rubrique à une autre
- Prendre note du numéro de la rubrique où se trouve les articles. eg: rubrique 1
- Prendre note du numéro de la rubrique dans laquelle on veut mettre les articles. eg: rubrique 393
Exécuter la commande sql suivante:
UPDATE spip_articles SET id_rubrique='393' WHERE id_rubrique='1'
Archive (toujours valide?)
- On trouvera que parfois, il y a certaines valeurs qui devraient être dans les feuilles de style mais ont été inscrit directement dans le code.
# diff inc-calcul.php3.orig inc-calcul.php3 19,20c19,20 > tester_variable('espace_logos',0); // HSPACE=xxx VSPACE=xxx pour les logos (#LOGO_ARTICLE) > tester_variable('espace_images',0); // HSPACE=xxx VSPACE=xxx pour les images integrees (<IMG1>) --- < tester_variable('espace_logos',3); // HSPACE=xxx VSPACE=xxx pour les logos (#LOGO_ARTICLE) < tester_variable('espace_images',3); // HSPACE=xxx VSPACE=xxx pour les images integrees (<IMG1>) 526c526
bug avec la balise multi
Finalement, j'ai fait un bug report: http://trac.rezo.net/trac/spip/ticket/292
La balise multi ne se comporte pas comme elle devrait!!! voici la discussion à propos du bug voici la mini patch
Un grand merci à Christian Lefebvre qui m’a répondu sur le newsgroup : C’est corrigé dans le svn par les versions 4761 et 4763 mais apparemment, ça n’est pas reporté dans la 1.8.2 ligne 80 de inc-html-squel.php3 il faut mettre while (preg_match("@<multi>(.*?)</multi>@s", $texte, $match)) { à la place de while (eregi('<multi>(.*)</multi>', $texte, $match)) { à prévoir pour la 1.8.2f ;-)
- Il semble que le changement est entré dans le svn et est resorti...
http://trac.rezo.net/trac/spip/browser/branches/spip-1.8/inc-html-squel.php3#L78
Références