Retour : Page Principale > sommaire applications générales
https://beta.tela-botanica.org/preprod
Remplace l'ancien site (Papyrus / SPIP).
Assure également le backend d'annuaire en remplacement des tables annuaire_* de la base de données tela_prod_v4.
Il n'y a pas de logiciel "Site Web", mais une collection de logiciels pour les différentes parties :
Voir le dépot GitHub pour plus d'infos : https://github.com/telabotanica/vvv-wordpress-tela-botanica
Page sur le dépôt de plugins Wordpress : - pas encore
Soumet la création de groupes Buddypress ("projets") à la modération par les super-admin.
Voir le README pour plus de détails.
Page sur le dépôt de plugins Wordpress : - pas encore
Ajoute un système d'actions par lot à la page "membres" de Buddypress.
Voir le README pour plus de détails.
Page sur le dépôt de plugins Wordpress : - pas encore
Modère les messages privés Buddypress, au delà de n destinataires.
Voir le README pour plus de détails.
Synchronise l'Ă©tat du SSO de Tela Botanica au login Wordpress.
Voir le README pour plus de détails.
Forké pour pallier le problème d'apostrophes échappées.
Forké pour pallier le problème d'apostrophes échappées; modifications réintégrées (le fork n'est plus nécessaire).
- Si on désactive la langue anglaise, eFlore ne fonctionne plus.
- Si on met une requête fausse ou on enlève les droits d'écriture sur la table, plus d'insert mais du log php
- On ne peut pas mettre de lock sur une table mariadb
additionner 20,21,22,23,24 pour actu générale, 26,27,28,29 pour événements, 31,32,39 pour offre d'emploi
Approximation du nombre de structures qui publient (nb d'auteurs qui publient offres d'emploi et événement)
Approximation du nombre d'auteurs ayant publié des "posts" par année :
Approximation du nombre d'auteurs ayant publié des "actu" par année (hors offre d'emploi et événements) :
Approximation (manque certains utilisateurs ayant un code différent) du nombre d'inscrits par dept en Occitanie
Liste des pings sur les posts existants par année
Espaces projets créés par années :
- Installation d'un cron qui vide la table toutes les nuits ou d'un trigger qui vide la table tous les 100 000 lignes
Nouveau site Web www.tela-botanica.org
https://beta.tela-botanica.org/preprod
But(s)
Le site Web de Tela Botanica.Remplace l'ancien site (Papyrus / SPIP).
Assure également le backend d'annuaire en remplacement des tables annuaire_* de la base de données tela_prod_v4.
Il n'y a pas de logiciel "Site Web", mais une collection de logiciels pour les différentes parties :
- Wordpress et Buddypress
- le thème Wordpress "Tela Botanica"
- le plugin Buddypress "Espace Projets"
- les différents plugins supplémentaires (voir plus bas dans cette page)
Infos
- Suivi du développement : http://taiga.tela-botanica.net/project/mathias-site-web
- DĂ©pendance : Wordpress, Buddypress
Code source
Il n'y a pas de dépôt de code source unique.- Thème (sur GitHub) : https://github.com/telabotanica/wp-theme-telabotanica
- Espace Projets (sur GitHub) : https://github.com/telabotanica/ep-plugin
- Modération de la création de projets (sur GitHub) : https://github.com/telabotanica/bp-moderate-group-creation
- Intégration SSO (sur GitHub) : https://github.com/telabotanica/wp-plugin-tb-sso
- Actions groupées sur les membres (sur GitHub) : https://github.com/telabotanica/bp-members-directory-actions
- Modération des messages privés (sur GitHub) : https://github.com/telabotanica/bp-moderate-private-messages
- Langage(s) : PHP, Javascript, CSS (SASS), HTML
Environnement de développement
La complexité de l'environnement justifie l'automatisation, pour ça on utilise VVV comme base pour créer une machine virtuelle avec vagrant et virtualbox qui automatise l'installation et la configuration de chaque appli de l'écosystème Tela.Voir le dépot GitHub pour plus d'infos : https://github.com/telabotanica/vvv-wordpress-tela-botanica
Installations
beta (test)
- Serveur : Aphyllanthe : /home/beta/www/test (branches de features en PR, sert Ă tester avant merge)
- URL racine : https://beta.tela-botanica.org/test
- Annuaire lié : https://beta.tela-botanica.org/service:annuaire-test:auth
beta (preprod)
- Serveur : Aphyllanthe : /home/beta/www/preprod (master - représente l'état des fonctionnalités stables)
- URL racine : https://beta.tela-botanica.org/preprod
- Annuaire lié : https://beta.tela-botanica.org/service:annuaire:auth
beta (pretest)
- Serveur : Aphyllanthe : /home/beta/www/pretest (copie de /preprod, sert au nightly-build qui migre les données actuelles)
- URL racine : https://beta.tela-botanica.org/pretest
- Annuaire lié : https://beta.tela-botanica.org/service:annuaire:auth
prod (Ă migrer sur Sycomore - 2017-08-10)
- Serveur : Sequoia : /home/telaorg/www/… (tag de release) pas encore installé (2017-08-30)
- URL racine : https://www.tela-botanica.org
- Annuaire lié : https://www.tela-botanica.org/service:annuaire:auth
Les plugins maison
Trois des plugins développés pour le site sont réutilisables et peuvent rendre service à d'autres utilisateurs de Wordpress : bp-members-directory-actions, bp-moderate-private-messages et bp-moderate-group-creation. Il serait bien de les redistribuer sur le dépôt de plugins de Wordpress afin d'en faire profiter la communauté.bp-moderate-group-creation
Code source : https://github.com/telabotanica/bp-moderate-group-creationPage sur le dépôt de plugins Wordpress : - pas encore
Soumet la création de groupes Buddypress ("projets") à la modération par les super-admin.
Voir le README pour plus de détails.
bp-members-directory-actions
Code source : https://github.com/telabotanica/bp-members-directory-actionsPage sur le dépôt de plugins Wordpress : - pas encore
Ajoute un système d'actions par lot à la page "membres" de Buddypress.
Voir le README pour plus de détails.
bp-moderate-private-messages
Code source : https://github.com/telabotanica/bp-moderate-private-messagesPage sur le dépôt de plugins Wordpress : - pas encore
Modère les messages privés Buddypress, au delà de n destinataires.
Voir le README pour plus de détails.
wp-plugin-tb-sso
Code source : https://github.com/telabotanica/wp-plugin-tb-ssoSynchronise l'Ă©tat du SSO de Tela Botanica au login Wordpress.
Voir le README pour plus de détails.
ep-plugin
Voir plugin Espace Projets.Les plugins forkés
Ces deux plugins ont été forkés pour résoudre un problème d'affichage des libellés de champs de profil étendu Buddypress (apostrophes échappées par des antislashes). Le véritable problème se trouve dans le plugin payant wpml; ses développeurs en ont pris acte (2017-08) et vont le corriger dans une prochaine version. Une fois ceci fait, les forks ci-dessous ne devraient plus être nécessaires.buddypress-multilingual
Code source : https://github.com/telabotanica/buddypress-multilingualForké pour pallier le problème d'apostrophes échappées.
bp-profile-search
Code source : https://github.com/telabotanica/bp-profile-searchForké pour pallier le problème d'apostrophes échappées; modifications réintégrées (le fork n'est plus nécessaire).
problème avec WPML
Le site est tombé les 23 et 24 juillet ainsi que les 10 et 21 août car la table icl_strings_pages passait d'environ 35000 lignes à 3/4 millions. Si on désactive le plugin, les fiches eFlore et la création d'actualités ne fonctionnent plus. Le 21 août, on a enlevé la possibilité de mettre en anglais les pages actualités et profil, à surveiller.- Si on désactive la langue anglaise, eFlore ne fonctionne plus.
- Si on met une requête fausse ou on enlève les droits d'écriture sur la table, plus d'insert mais du log php
- On ne peut pas mettre de lock sur une table mariadb
pour supprimer les événements d'une année
wp post delete --force $(wp post list --post_type=post --format=ids --year=2019 --category_name=expositions,congres-conferences,sorties-de-terrain,stages-ateliers --posts_per_page=10000)
calcul du nombre d'articles par catégorie
SELECT term_id, count(*) FROM `posts` join (SELECT term_id, name, object_id FROM `term_relationships` join terms on term_id = term_taxonomy_id WHERE `term_taxonomy_id` in (SELECT term_id FROM `term_taxonomy` WHERE `parent` in (19,25, 30))) c on object_id = ID WHERE `post_type` = "post" and year(`post_date`) = 2022 and post_status = "publish" group by term_id;
additionner 20,21,22,23,24 pour actu générale, 26,27,28,29 pour événements, 31,32,39 pour offre d'emploi
calcul du nombre de rédacteurs par catégorie
SELECT name, count( distinct post_author) FROM `posts` join (SELECT term_id, name, object_id FROM `term_relationships` join terms on term_id = term_taxonomy_id WHERE `term_taxonomy_id` in (SELECT term_id FROM `term_taxonomy` WHERE `parent` in (19,25, 30))) c on object_id = ID WHERE `post_type` = "post" and year(`post_date`) = 2020 and post_status = "publish" group by name
Approximation du nombre de structures qui publient (nb d'auteurs qui publient offres d'emploi et événement)
SELECT distinct post_author FROM `posts` WHERE `ID` in (SELECT `object_id` FROM `term_relationships` WHERE `term_taxonomy_id`> 25 and `term_taxonomy_id` < 33) and year(post_date) = 2021 and post_status = "publish"
Approximation du nombre d'auteurs ayant publié des "posts" par année :
select count(*) as nb, u.user_nicename, u.user_email from posts join users u on posts.post_author = u.ID where post_status = 'publish' and post_type = 'post' and YEAR(post_date) = 2021 group by post_author order by nb desc
Approximation du nombre d'auteurs ayant publié des "actu" par année (hors offre d'emploi et événements) :
select u.user_nicename, count(*) as nb from posts p join users u on p.post_author = u.ID join (SELECT term_id, name, object_id FROM `term_relationships` join terms on term_id = term_taxonomy_id WHERE `term_taxonomy_id` in (SELECT term_id FROM `term_taxonomy` WHERE `parent` = 19)) c on object_id = p.ID where post_status = 'publish' and post_type = 'post' and YEAR(post_date) = 2023 group by user_nicename order by nb desc;
Approximation (manque certains utilisateurs ayant un code différent) du nombre d'inscrits par dept en Occitanie
SELECT value, count(distinct user_id) FROM `bp_xprofile_data` where field_id = 592 and value in ("09 Ariège", "09 Arièges", "09","11", "11 Aude","12", "12 Aveyron", "34", "34 Hérault","30", "30 Gard", "31", "31 Haute-Garonne", "32", "32 Gers", "46", "46 Lot", "48", "48 Lozère","66", "66 Pyrénées-Orientales", "65", "65 Hautes-Pyrénées", "81", "81 Tarn", "82", "82 Tarn-et-Garonne") group by value;
Liste des pings sur les posts existants par année
SELECT count(*), YEAR(`comment_date`) as year FROM `comments` WHERE `comment_type` LIKE 'pingback' group by year order by year desc
Espaces projets créés par années :
SELECT count(*) as nb, t.name FROM `term_taxonomy` tt join terms t on tt.term_id = t.term_id join term_relationships tr on tt.term_taxonomy_id = tr.term_taxonomy_id join bp_groups bg on bg.id = tr.object_id WHERE `taxonomy` LIKE 'bp_group_type' and YEAR(bg.date_created) = 2021 group by t.term_id
- Installation d'un cron qui vide la table toutes les nuits ou d'un trigger qui vide la table tous les 100 000 lignes
Documentation
- Présentation archi/ergonomie
- Cloner une instance de Wordpress avec Wordmove
- Installation de rbenv (dépendance Wordmove)
- Migration des données de l'ancien site vers le nouveau
- Notes sur la tentative (infructueuse) d'utilisation de VersionPress
- Coûts liés et Algolia