- Installer un espace de travail de développement
- Soucis techniques rencontrés
- Notes importantes durant l'utilisation
- Aide au développement
- TODO
Le site Erasme
Installer un espace de travail de développement
On part du principe que la machine sera une Ubuntu 18.04.2
Pré-requis
sudo apt-get install apache2 php7.2 mysql-server php-mysql php-xml php-gd php-xml-htmlsax3 sqlite php-sqlite3 libsqlite3-dev
Crééz votre répertoire de travail sur apache.
sudo mkdir /var/www/html/erasme
Connexion à la base de données
Créez un utilisateur mysql avec des droits admin et qui sera dédié à l'utilisation de spip. Faites-le soit par phpmyadmin (recommandé) soit en ligne de commande.
En ligne de commande :
sudo mysql
CREATE USER 'spip'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mot_de_passe_spip';
GRANT ALL ON *.* TO 'spip'@'localhost';
exit
Quelque soit la méthode choisie, vous pourrez restreindre cet utilisateur aux tables de spip lorsque, un peu plus tard, elles seront créées.
Installation de SPIP
Allez sur le site de SPIP et récupérez l'installateur. En ligne de commande :
sudo wget -P /var/www/html/erasme/ https://www.spip.net/spip-dev/INSTALL/spip_loader.php
Mettez apache en propriétaire du dossier erasme :
sudo chown -R www-data:www-data /var/www/html/erasme
Ouvrez votre navigateur à cette adresse et laissez-vous porter par les instructions.
Vous aurez à renseigner votre utilisateur mySQL, puis créer un utilisateur SPIP qui sera l'admin.
À la toute fin, il est possible que vous ayez une erreur sur le htaccess (Voir).
Installation du site erasme
À présent que SPIP est installé, deux étapes sont à suivre pour installer le site ERASME :
- installer le squelette
- importer le dump
Installer le squelette
Avant toute chose
À noter que pour récupérer le code proprement, il est recommandé d'utiliser git.
sudo apt-get install git
Récupérer le code
Déplacez-vous dans votre répertoire de travail.
# Pensez à remplecer votre nom d'utilisateur.
cd /home/votreNomUtilisateur/Projets
Crééz votre dossier correspondant au site de SPIP. Déplacez-vous dedans.
mkdir erasme
cd erasme
Vous n'avez plus qu'à récupérer les données depuis le git (vous devez avoir git !).
# Cette commande vous demandera votre pseudo et mot de passe du site gitlab.erasme.org .
git clone https://gitlab.erasme.org/erasme/plugin_site_erasme.git
(Optionnel) Préparer son espace de travail
Soyons paresseux : déplaçons directement ces fichiers dans apache :
sudo mv /home/nomUtilisateur/Projets/erasme/plugin_site_erasme /var/www/html/erasme/plugins
Et créons un lien symbolique vers notre espace de travail :
sudo ln -s /var/www/html/erasme/plugins/plugin_site_erasme /home/nomUtilisateur/Projets
Félicitations, vous pouvez dès à présent modifier le code directement dans notre espace de travail et cela sera immédiatement impacté sur le site en local.
Activez le squelette (plugin)
Ouvrez l'application dans votre navigateur et connectez-vous avec les pseudo et mot de passe que vous avez choisi durant l'installation de SPIP.
Une fois connecté, allez dans Configuration -> Gestion des plugins -> Ajouter des plugins
Vous devriez avoir un dépôt principal connu mais non importé, il s'agit du dépôt officiel des plugins de SPIP, il est capital de l'activer pour récupérer automatiquement les dépendances de notre plugin erasme.
Vérifiez que le champ Fichier XML du dépôt contienne bien l'url du dépôt et cliquez sur Ajouter
Revenez dans la catégorie Mes plugins -> Inactifs, vous devriez y voir le plugin du site erasme qui n'est pas activé. Activez-le. Il vous demandera si il faut bien récupérer les dépendances, choisissez oui : Valider.
Après la fin du téléchargement, vous atterrirez sur une page blanche. Retournez sur la page des plugins.
Voilà, le module est installé, configuré et activé mais le site est vide et si on importait les données ?
En cas d'impossibilité d'activer le plugin, assurez-vous qu'un dossier plugins/auto/
existe et qu'il est
correctement accessible en écriture.
Importer un dump
Procurez-vous un dump du site courant. Récupérez-le directement sur le site si vous le pouvez (-> Maintenance-> Sauvegarder la base).
Au final, vous devriez avoir un fichier sqlite. Placez-le dans votre /var/www/html/erasme/tmp/dump . Crééz ce dossier si celui-ci n'existe pas.
sudo mkdir /var/www/html/erasme/tmp/dump/
Et pensez bien à lui mettre comme propriétaire apache :
sudo chown -R www-data:www-data /var/www/html/erasme/tmp/dump/www_erasme_org_YYYYMMJJ.sqlite
Sur votre SPIP fraichement installé, connectez-vous dans l'interface et dirigez-vous vers la catégorie ->Maintenance -> Restaurer la base . Il devrait normalement apparaître :
Cochez la checkbox correspondante et Restaurer la base .
Importer les images
Connectez-vous sur le serveur du site et récupérez le contenu du dossier IMG/ . Copiez ces images dans votre répertoire du site ce qui devrait être : /var/www/html/erasme/IMG/
Il est possible que vous ayez besoin, au préalable, de modifier les droits.
sudo chmod 777 -R /var/www/html/erasme/IMG/
Les images sont prêtes, à présent, il faut activer certaines optiones en admin. Allez dans Configuration->Fonctions avancées. Dans la catégorie Génération de miniatures des images, choisissez le mode GD2...
... et choisissez une taille pour les redimensionnements d'image.
Enfin allez dans la catéorie Maintenance->Vider le cache. Videz-y les caches.
Vous pouvez à présent retourner sur le site public et choisissez de Recalculer cette page. Attetion, ce sera long, SPIP est en train de créer à la volée toutes les miniatures.
Options et réglages
Réglage des liens
Lors de votre navigation sur votre version locale du site, vous vous rendrez bien vite compte que les liens ne fonctionnent pas. Pour les rendre fonctionnels en dev, vous aurez deux solutions :
- écrire des règles apache
- changer une option dans le panneau d'administration
Nous choisirons la solution de facilité et opterons pour le changement d'option. Direction le panneau admin ! Configuration -> Configurer les URLs. Dans la catégorie Type d’adresses URL, choisissez l'option URLs Simples.
Activer les articles virtuels
Les liens virtuels permettent d'assigner des urls particulières à des articles et de faire des redirections d'urls. Activez la redirection
Rendre les surtitres disponibles dans les articles
Dans Configuration -> Contenu du site, rendez les surtitres utilisables dans les articles.
Soucis techniques rencontrés
Page blanche durant l'installation
Vérifiez dans les logs d'apache situés en /var/log/apache2/error.log :
cat /var/log/apache2/error.log
Si vous avez l'erreur suivante, c'est que php-xml-htmlsax n'est pas installée. Il s'agit habituellement d'une dépendance de php-xml mais elle ne s'installe pas toujours en fonction du contexte.
Problème :
PHP Fatal error: Uncaught Error: Call to undefined function xml_parser_create() in /var/www/html/erasme/ecrire/xml/sax.php
Solution :
sudo apt-get install php-xml-htmlsax3
htaccess inopérant
Problème :
Solution :
Renommez simplement le htaccess de l'application.
sudo mv /var/www/html/erasme/htaccess.txt /var/www/html/erasme/.htaccess
Erreur lors de l'import du dump
Problème
Si vous avez une erreur du type :
Oups. Une erreur inattendue a empêché de soumettre le formulaire. Vous pouvez essayer à nouveau.
Solution
Il vous manque le module sqlite de PHP, (ré)installez-le :
sudo apt-get install sqlite php-sqlite3 libsqlite3-dev
Notes importantes durant l'utilisation
Génération des miniatures d'images
Il suffit de d'acceder à la section Configuration => Fonctions avancées sous Génération de miniatures des images cliquer sur GD2 et selectioner en dessous Générer automatiquement les miniatures des images. que vous pouvez regler à votre guise (par defaut à 100)
Configuration du plugin notation
Sous Configuration => Gestion des plugins => Configuration notation régler la pondération de la note à 30 afin qu'une évalution seule sur un article aie de la valeur
Plugin Champ extra
Attention. Ces informations n'ont plus l'air bonnes -> à tester.
Dans le cas de la création d'un nouveau avec champs extra
Les champs une fois déclarés dans era_function.php vont bel et bien s'afficher dans l'interface BO mais ne seront pas crées en DB Pour cela il faut les déclarer dans era_administrations.php dans la fonction era_upgrade sous cette forme
$maj['numero_de_version'] = array( array('nom_du_champ'), );
Puis mettre à jour le numéro de version du schéma de db dans le fichier paquet.xml sous
schema="numero_de_version"
Condition spip
[A ALIMENTER] Les conditions spip avec sous conditions sur plusieurs lignes ne fonctionnent pas en général
Aide au développement
Mettre à jour le plugin
Si des champs extra ont été rajoutés, il est nécessaire d'en notifier le plugin du site en mettant à jour sa version et en déclarant ces nouveaux champs dans les fichiers internes du plugin.
Déclarez une nouvelle version du schema
Créer un nouveau champ extra implique une mise à jour de la base de données. Pour s'assurer qu'elle soit comprise par le plugin et installée automatiquement, il faut la déclarer convenablement. Cela requiert plusieurs étapes.
La première est de déclarer une nouvelle version du schema dans le fichier /paquet.xml
:
<paquet
prefix="era"
categorie="squelette"
version="2.0.0"
etat="dev"
logo="era.png"
compatibilite="[3.0;["
schema="1.1.2"
> <!-- Incrémentez votre version du schema sur la ligne ci-dessus. -->
<nom>Erasme - Plugin du site</nom>
<auteur>Patrick Vincent, Kévin Vennitti</auteur>
<licence>GNU/GPL</licence>
<necessite nom="crayons" />
<necessite nom="notation" />
<necessite nom="cextras" compatibilite="[3.0.5;[" />
<necessite nom="accesrestreint" compatibilite="[3.13.3;[" />
<utilise nom="medias" />
<pipeline nom="declarer_champs_extras" inclure="era_cextras.php" />
<chemin path="sq-erasme" />
<chemin path="" />
</paquet>
Cette nouvelle valeur du schema sera lue par SPIP qui lira les informations nécessaires et actions à faire correspondant à cette version du plugin.
Déclarer les actions à faire
Lorsque SPIP aura lu la version du schema, il cherchera les actions à accomplir de ce schema. Ces actions peuvent être
déclarées dans la fonction era_upgrade
du fichier era_administrations.php
.
function era_upgrade($nom_meta_base_version,$version_cible) {
$maj = array();
// La fonction cextras_api_upgrade se trouve dans le module « Champ extra ».
cextras_api_upgrade(era_declarer_champs_extras(), $maj['create']);
// Chaque màj nécessitant une action particulière est notifiée ici :
$maj['1.0.1'] = array(
array('era_ajouter_mots_cles'),
);
$maj['1.0.2'] = array(
array('era_ajouter_mots_cles_champs'),
);
cextras_api_upgrade(era_declarer_champs_extras(), $maj['1.0.3']);
$maj['1.0.4'] = array(
array('era_update_couleurs_onglets'),
);
$maj['1.0.5'] = array(
array('era_ajouter_mots_cles_champs'),
);
cextras_api_upgrade(era_declarer_champs_extras(), $maj['1.0.6']);
cextras_api_upgrade(era_declarer_champs_extras(), $maj['1.0.7']);
cextras_api_upgrade(era_declarer_champs_extras(), $maj['1.1.1']);
// Ajoutez ici votre déclaration de nouveau champ extra.
include_spip('base/upgrade');
maj_plugin($nom_meta_base_version, $version_cible, $maj);
}
Il vous est conseillé de suivre la même manière de faire que les lignes précédentes. C'est à dire :
cextras_api_upgrade(era_declarer_champs_extras(), $maj['X.X.X']);
Décrire explicitement les champs à rajouter
Une fois votre demande de mise à jour effectuée (vu dans le point précédent), vous pouvez décrire votre nouveau champ
extra dans la fonction era_declarer_champs_extras
du fichier era_cextras.php
.
Inspirez-vous des déclarations déjà présentes pour décrire un nouveau champ extra :
// Exemple :
$champs['spip_articles']['description_title'] = array ( // Ici, nous avons un champ nommé « description_title »
// qui est créé et rattaché sur les articles.
'saisie' => 'input',
'options' =>
array (
'nom' => 'description_title',
'label' => 'Titre de la description principale',
'type' => 'text',
'size' => '40',
'autocomplete' => 'defaut',
'sql' => 'text DEFAULT \'\' NOT NULL',
'rechercher' => 'on',
'rechercher_ponderation' => '8',
'defaut' => 'Ex. : Tous à table !'
),
);
Une fois le champs ajouter icrémenter le champ schéma dans paquet.xml de 1 puis dans la BO de spip acceder à l'ur suivante afin de mettre à jour la base de donnée /ecrire/?exec=upgrade
Erreur console js boutonEnvoi is null
Erreur relative a la section infolettre dans la page d'accueil Cette erreur intervient sur la page d'accueil dans deux situations (situations relevées du moins)
Des plugins nécessaires n'ont pas étés activés) Vérifiez que ces plugins ont bien étés activés
- Facteurs
- Mailshot
- Mail Subscribers
- Newsletterù
Soucis de cache Si après avoir vidé les caches spip (sous Maintenance > Vider le cache) ce problème persiste Dépubliez l'article RECEVEZ RÉGULIÈREMENTS NOS ACTUALITÉS ! dans la rubrique Information > Home > page principale erasme > En ce moment et publiez le à nouveau
TODO
- Vérifier que la liste des modules à importer est complète lorsque sortira la V2 du site.