Migration d'un site Joomla avec Python
- Détails
- 637
J'ai régulièrement besoin d'organiser le transfert des données de sites Joomla vers une copie de ces sites, pour plusieurs raisons (nettoyage, mise-à-jour, sauvegardes spécifiques, évolutions...).
Là-dessus, vous allez me dire : beh euuuh, tu connais pas Akeeba ? Si si, je connais, et je valide. J'utilise AkeebaBackup sur tous mes sites Joomjoom, à des fins de sauvegardes. Mais ça ne correspond pas à tous mes besoins. Soit trop lourd, soit trop spécifique, soit trop long...
Imaginez par exemple que vous souhaitiez préparer la nouvelle version d'un site - en modifiant des menus, modules, catégories, etc - tout en y insérant les données du site en production😎Pas simple hein ? Maintenir la cohérence des données tout en travaillant sur les évolutions est un vrai défi, et Akeeba ne fait plus du tout l'taf.
Il s'agit donc de transférer les données cœur de Joomla : articles, catégories, tags, utilisateurs, groupes, droit d'accès, etc - comprenant également certaines tables, lignes ou valeurs spécifiques : id super-utilisateur, #_assets, #_ucm, #_workflows, etc - sans toucher aux données structurelles de Joomla. Ce qui peut être un sacré bazar, car Joomjoom a parfois ses raisons que l'amour irradie... ou ignore... ou... bref🥴
De plus, dans certains cas, ce n'est pas seulement les données cœur que je souhaite transférer, mais aussi certaines tables métiers, créées à côté de Joomla (avec Fabrik par exemple).
Dans d'autres cas, j'ai besoin de le faire régulièrement, parfois même très, très, très régulièrement😥: pour tester des templates, des mises-à-jour suspectes, des triggers SQL... Avec donc le besoin d'être rapide et depouvoir vidanger le site de destination à chaque opération.
Expressions régulières
- Détails
- 65466
Les expressions régulières (regex) sont très pratiques pour standardiser un fichier de données avant import par exemple, récupérer des données, corriger des chaînes particulières, avec des conditions, etc...
Ici quelques astuces propres à mon usage personnel.
L'article est écrit en partant du principe qu'on utilise Notepad++ , sauf quand c'est précisé en rouge (il peut y avoir des différences quand on utilise des regex avec Python par exemple).
Et en parlant de Python, des exemples plus spécifiques d'usage de regex avec Pandas se trouve sur cet autre article.
Automatiser les tags sur des articles Joomla avec un trigger SQL et Python
- Détails
- 2116
Joomla 4 | MySQL 5.7 | Python 3.9 | Selenium 4.16 |
C'est quand même sympa les tags sur les articles Joomla. Ça permet de personnaliser certaines pages, créer des thématiques, des filtres... Ils font aussi office de sous-catégories, mais sans les inconvénients des sous-catégories (plusieurs tags possibles pour un même article). Et en plus, ça attire l'œil, notamment sous les titres ou dans un joli nuage de tags. Bref : moi j'aime bien 😀
Le seul truc relou, c'est que les utilisateurs ne pensent jamais à les mettre, arf !
Du coup je me suis dis : Ok, on va automatiser tout ça ! L'avantage est aussi d'être exhaustif quant à l'utilisation des tags, et ainsi de pouvoir les utiliser dans la logique même de son site.
Ci-dessous un exemple de trigger SQL assignant automatiquement des tags aux articles d'un site Joomla en fonction de leur titre.
Automatiser les tags sur des articles Joomla avec un trigger SQL et Python
Installer Postgres 15 et son extension GIS sous Windows
- Détails
- 2581
...et afficher quelques données géographiques sous QGIS
Salut toi ! Prêt à bénéficier de toute la puissance de Postgres 15 ? Tu as bien mis ta ceinture de sécurité ?
Maîtrise tes tremblements, bien compréhensibles face à ce déluge de technologies aux performances abyssales, et prépare-toi à entrer dans un monde nouveau, où l'imagination est la seule limite !
🤖🤟🌐💪🧭🐘
Zones de chalandise avec QGIS, Python, l'API ORS et les données OSM, IGN et INSEE
- Détails
- 28751
Nous allons calculer les zones isochrones à 15 minutes des magasins Décathlon français, et les coupler avec les données géographiques de l'IGN croisées avec les données statistiques de l'INSEE.
L'ensemble formera de supposées zones de chalandise des magasins, particulièrement pertinentes car couplées avec de vraies zones isochrones. Nous calculerons aussi la cannibalisation des magasins, ainsi que leur proximité avec des équipements sportifs.
Pour ce faire nous n'utiliserons que des données en open-source, l'API d'openrouteservice, le logiciel libre QGIS et peut-être un peu de code Python.
Mots-clefs : géomarketing, IRIS, INSEE, IGN, OSM, SIG, BDD, traitement de données, SQL, zones de chalandise, indicateur, requête de regroupement, zones isochrones, Python
Enseignants responsables : Georges Hinot
Pré-requis : des notions sur QGIS ou autres SIG, des notions sur Excel ou autres tableurs.
Compétences visées : maîtrise théorique et technique des notions de base du géomarketing (zones isochrones, zones de chalandise, indicateurs, jointures et requêtes de regroupement).
Enjeux du cours : rendre autonome les étudiants sur la recherche et l’usage de données autour de problématiques géomarketing, faire « parler » la donnée, créer des indicateurs, veiller à la pertinence des données représentées.
Programme pédagogique : mise en situation autour d'une commande géomarketing impliquant la récupération, le traitement et la représentation de données. Selon l'avancée du cours, nous irons jusqu'à utiliser des fonctionnalités avancées de QGIS (SQL spatial) et Python (création de zones isochrones via une API et customisation du comportement de QGIS).
Le sommaire de droite et la navigation sous le texte vous permettent de vous déplacer dans ce tutoriel.
Zones de chalandise avec QGIS, Python, l'API ORS et les données OSM, IGN et INSEE
Auto submit a form with Python, Selenium and Chromium
- Détails
- 6925
December 15, 2023: warning: the article below is from an old Selenium version. Another article with an example using the last Selenium version (4.16) is available here (go to the bottom)! We do not need the Chromedriver anymore with last Selenium version.
Here a simple Selenium example where we go to fill then submit a form from data previously converted in XML.
I choose XML because this flat format is easy to grab with Python, and it can be created from an Excel file with Access for example. Morever, if the auto-submit crashs during the execution (it is possible even with a good code, depending on the website providing the form), Chromium will stop on the last record and you could remove the begining of the XML before to re-execute the same code (to avoid duplicates).
For those in a hurry (🧐) my code is here on GitHub. But for a full understanding just see below.
Page 2 sur 6