Bonjour,
Je veux créer un script qui me permette générer des articles depuis des fichiers textes sous Joomla 3
Le souci est que je ne sais pas où commencer et comment agencer ce script pour son intégration avec Joomla.
Après mes recherches, la voie que j'ai choisi est de créer donc de créer mes objets articles et de les enregistrer en BDD Joomla dans la table prefix_content avec JTable.
Voici l'état de mon idée :
- Étant habitué des API comme ceux de JAVA, PHP ou Javascript, je ne m'y retrouve pas et ne comprend pas comment rechercher ce que j'ai besoin.
# Structure du projet
Je n'ai pas besoin de composants, de modules ou d'extension Joomla, seulement un script.php.
# Structure des articles
J'ai effectivement trouvé certains bouts de codes qui me permettent de construire un article bien que certains champs ne soient pas renseignés.
Comme je le disais certains champs sont absents comme tags par exemple
# Vérifier et Enregistrer ma requête
# Gestion des erreurs et log de debug
Lorsque j'ai essayé ces codes j'ai bien vu que de nombreuses entités étaient indéfinis, à commencer par JTable, c'est pourquoi j'ai include le loader.php qui me permet de ce que j'ai compris d'inclure dynamiquement en fonction de mon code les classes, constantes etc .. nécessaires.
Mais aucun message d'erreur(echo) ne s'affichent après cette include, JError non plus (deprecated).
En cherchant j'ai vu la gestion d'erreur se faisait donc avec php maintenant donc avec le catch(Exception $e) mais bon rien ne s'affiche.
# Code complet testé (ne marche pas)
J'ai bien sur commencé par ces sites https://api.joomla.fr/joomla3 et https://api.joomla.org/cms-3 mais je vous avoue être un peu perdu en ce qui concerne l'utilisation de cet API et comment charger les entités que j'ai besoin d'utiliser.
De plus, le code du CMS semble avoir changer https://ordi-genie.com/joomla/develo...partir-de-j3-8 et j'ai encore du mal à différencier le code du Joomla 1.x, 2.5 et 3.
Bref, si vous auriez quelques indications ou ressources a me conseiller, je suis preneur.
Cordialement,
D.Fertane
Je veux créer un script qui me permette générer des articles depuis des fichiers textes sous Joomla 3
Le souci est que je ne sais pas où commencer et comment agencer ce script pour son intégration avec Joomla.
Après mes recherches, la voie que j'ai choisi est de créer donc de créer mes objets articles et de les enregistrer en BDD Joomla dans la table prefix_content avec JTable.
Voici l'état de mon idée :
- Étant habitué des API comme ceux de JAVA, PHP ou Javascript, je ne m'y retrouve pas et ne comprend pas comment rechercher ce que j'ai besoin.
# Structure du projet
Je n'ai pas besoin de composants, de modules ou d'extension Joomla, seulement un script.php.
# Structure des articles
J'ai effectivement trouvé certains bouts de codes qui me permettent de construire un article bien que certains champs ne soient pas renseignés.
Code:
$article [COLOR=#f92772]= [/COLOR][COLOR=#ffffff]JTable[/COLOR][COLOR=#f92772]::[/COLOR][COLOR=#a7ec21]getInstance[/COLOR][COLOR=#f9faf4]([/COLOR][COLOR=#e6da74]'7cob_content'[/COLOR][COLOR=#f9faf4])[/COLOR][COLOR=#f92772]; [/COLOR] $article[COLOR=#f92772]->[/COLOR][COLOR=#66d9ee]title [/COLOR][COLOR=#f92772]= [/COLOR][COLOR=#e6da74]'This is my super cool title!'[/COLOR][COLOR=#f92772]; [/COLOR]$article[COLOR=#f92772]->[/COLOR][COLOR=#66d9ee]alias [/COLOR][COLOR=#f92772]= [/COLOR][COLOR=#ffffff]JFilterOutput[/COLOR][COLOR=#f92772]::[/COLOR][COLOR=#a7ec21]stringURLSafe[/COLOR][COLOR=#f9faf4]([/COLOR][COLOR=#e6da74]'This is my super cool title!'[/COLOR][COLOR=#f9faf4])[/COLOR][COLOR=#f92772]; [/COLOR]$article[COLOR=#f92772]->[/COLOR][COLOR=#66d9ee]introtext [/COLOR][COLOR=#f92772]= [/COLOR][COLOR=#e6da74]'<p>This is my super cool article!</p>'[/COLOR][COLOR=#f92772]; [/COLOR]$article[COLOR=#f92772]->[/COLOR][COLOR=#66d9ee]catid [/COLOR][COLOR=#f92772]= [/COLOR][COLOR=#ae81ff]9[/COLOR][COLOR=#f92772]; [/COLOR]$article[COLOR=#f92772]->[/COLOR][COLOR=#66d9ee]created [/COLOR][COLOR=#f92772]= [/COLOR][COLOR=#ffffff]JFactory[/COLOR][COLOR=#f92772]::[/COLOR][COLOR=#a7ec21]getDate[/COLOR][COLOR=#f9faf4]()[/COLOR][COLOR=#f92772]->[/COLOR][COLOR=#a7e22e]toSQL[/COLOR][COLOR=#f9faf4]()[/COLOR][COLOR=#f92772];; [/COLOR]$article[COLOR=#f92772]->[/COLOR][COLOR=#66d9ee]created_by_alias [/COLOR][COLOR=#f92772]= [/COLOR][COLOR=#e6da74]'Super User'[/COLOR][COLOR=#f92772]; [/COLOR]$article[COLOR=#f92772]->[/COLOR][COLOR=#66d9ee]state [/COLOR][COLOR=#f92772]= [/COLOR][COLOR=#ae81ff]1[/COLOR][COLOR=#f92772]; [/COLOR]$article[COLOR=#f92772]->[/COLOR][COLOR=#66d9ee]access [/COLOR][COLOR=#f92772]= [/COLOR][COLOR=#ae81ff]1[/COLOR][COLOR=#f92772]; [/COLOR]$article[COLOR=#f92772]->[/COLOR][COLOR=#66d9ee]metadata [/COLOR][COLOR=#f92772]= [/COLOR][COLOR=#e6da74]'{"page_title":"","author":"","robots":""}'[/COLOR][COLOR=#f92772]; [/COLOR]$article[COLOR=#f92772]->[/COLOR][COLOR=#66d9ee]language [/COLOR][COLOR=#f92772]= [/COLOR][COLOR=#e6da74]'*'[/COLOR][COLOR=#f92772];[/COLOR]
# Vérifier et Enregistrer ma requête
Code:
[COLOR=#808080]// Check to make sure our data is valid, raise notice if it's not. [/COLOR]$article[COLOR=#f92772]->[/COLOR][COLOR=#a7e22e]check[/COLOR][COLOR=#f9faf4]()[/COLOR][COLOR=#f92772]; [/COLOR] [COLOR=#808080]// Now store the article, raise notice if it doesn't get stored. [/COLOR]$article[COLOR=#f92772]->[/COLOR][COLOR=#a7e22e]store[/COLOR][COLOR=#f9faf4]([/COLOR][COLOR=#f92772]TRUE[/COLOR][COLOR=#f9faf4])[/COLOR][COLOR=#f92772];[/COLOR]
# Gestion des erreurs et log de debug
Lorsque j'ai essayé ces codes j'ai bien vu que de nombreuses entités étaient indéfinis, à commencer par JTable, c'est pourquoi j'ai include le loader.php qui me permet de ce que j'ai compris d'inclure dynamiquement en fonction de mon code les classes, constantes etc .. nécessaires.
Mais aucun message d'erreur(echo) ne s'affichent après cette include, JError non plus (deprecated).
En cherchant j'ai vu la gestion d'erreur se faisait donc avec php maintenant donc avec le catch(Exception $e) mais bon rien ne s'affiche.
# Code complet testé (ne marche pas)
Code:
[COLOR=#f92772]<?php [/COLOR][COLOR=#f92772]require_once[/COLOR][COLOR=#f9faf4]([/COLOR][COLOR=#e6da74]"../libraries/loader.php"[/COLOR][COLOR=#f9faf4])[/COLOR][COLOR=#f92772]; [/COLOR][COLOR=#808080]// require_once ('../libraries/import.legacy.php'); [/COLOR][COLOR=#808080]// use Joomla\CMS\Table\Table as JTable; [/COLOR] [COLOR=#f92772]try [/COLOR][COLOR=#f9faf4]{ [/COLOR][COLOR=#ffffff]JLoader[/COLOR][COLOR=#f92772]::[/COLOR][COLOR=#a7ec21]discover[/COLOR][COLOR=#f9faf4]([/COLOR][COLOR=#e6da74]'scripts'[/COLOR][COLOR=#f92772], [/COLOR][COLOR=#66d9ee]JPATH_LIBRARIES [/COLOR][COLOR=#f92772]. [/COLOR][COLOR=#e6da74]'../scripts'[/COLOR][COLOR=#f9faf4])[/COLOR][COLOR=#f92772]; [/COLOR] [COLOR=#808080]/*if (version_compare(JVERSION, '3.9.3', 'lt')) { [/COLOR][COLOR=#808080] JTable::addIncludePath(JPATH_PLATFORM . 'joomla/database/table'); [/COLOR][COLOR=#808080] JTable::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_recipes/tables'); [/COLOR][COLOR=#808080] }*/ [/COLOR] $article [COLOR=#f92772]= [/COLOR][COLOR=#ffffff]JTable[/COLOR][COLOR=#f92772]::[/COLOR][COLOR=#a7ec21]getInstance[/COLOR][COLOR=#f9faf4]([/COLOR][COLOR=#e6da74]'7cob_content'[/COLOR][COLOR=#f9faf4])[/COLOR][COLOR=#f92772]; [/COLOR] $article[COLOR=#f92772]->[/COLOR][COLOR=#66d9ee]title [/COLOR][COLOR=#f92772]= [/COLOR][COLOR=#e6da74]'This is my super cool title!'[/COLOR][COLOR=#f92772]; [/COLOR]$article[COLOR=#f92772]->[/COLOR][COLOR=#66d9ee]alias [/COLOR][COLOR=#f92772]= [/COLOR][COLOR=#ffffff]JFilterOutput[/COLOR][COLOR=#f92772]::[/COLOR][COLOR=#a7ec21]stringURLSafe[/COLOR][COLOR=#f9faf4]([/COLOR][COLOR=#e6da74]'This is my super cool title!'[/COLOR][COLOR=#f9faf4])[/COLOR][COLOR=#f92772]; [/COLOR]$article[COLOR=#f92772]->[/COLOR][COLOR=#66d9ee]introtext [/COLOR][COLOR=#f92772]= [/COLOR][COLOR=#e6da74]'<p>This is my super cool article!</p>'[/COLOR][COLOR=#f92772]; [/COLOR]$article[COLOR=#f92772]->[/COLOR][COLOR=#66d9ee]catid [/COLOR][COLOR=#f92772]= [/COLOR][COLOR=#ae81ff]9[/COLOR][COLOR=#f92772]; [/COLOR]$article[COLOR=#f92772]->[/COLOR][COLOR=#66d9ee]created [/COLOR][COLOR=#f92772]= [/COLOR][COLOR=#ffffff]JFactory[/COLOR][COLOR=#f92772]::[/COLOR][COLOR=#a7ec21]getDate[/COLOR][COLOR=#f9faf4]()[/COLOR][COLOR=#f92772]->[/COLOR][COLOR=#a7e22e]toSQL[/COLOR][COLOR=#f9faf4]()[/COLOR][COLOR=#f92772];; [/COLOR]$article[COLOR=#f92772]->[/COLOR][COLOR=#66d9ee]created_by_alias [/COLOR][COLOR=#f92772]= [/COLOR][COLOR=#e6da74]'Super User'[/COLOR][COLOR=#f92772]; [/COLOR]$article[COLOR=#f92772]->[/COLOR][COLOR=#66d9ee]state [/COLOR][COLOR=#f92772]= [/COLOR][COLOR=#ae81ff]1[/COLOR][COLOR=#f92772]; [/COLOR]$article[COLOR=#f92772]->[/COLOR][COLOR=#66d9ee]access [/COLOR][COLOR=#f92772]= [/COLOR][COLOR=#ae81ff]1[/COLOR][COLOR=#f92772]; [/COLOR]$article[COLOR=#f92772]->[/COLOR][COLOR=#66d9ee]metadata [/COLOR][COLOR=#f92772]= [/COLOR][COLOR=#e6da74]'{"page_title":"","author":"","robots":""}'[/COLOR][COLOR=#f92772]; [/COLOR]$article[COLOR=#f92772]->[/COLOR][COLOR=#66d9ee]language [/COLOR][COLOR=#f92772]= [/COLOR][COLOR=#e6da74]'*'[/COLOR][COLOR=#f92772]; [/COLOR] [COLOR=#808080]// Check to make sure our data is valid, raise notice if it's not. [/COLOR]$article[COLOR=#f92772]->[/COLOR][COLOR=#a7e22e]check[/COLOR][COLOR=#f9faf4]()[/COLOR][COLOR=#f92772]; [/COLOR] [COLOR=#808080]// Now store the article, raise notice if it doesn't get stored. [/COLOR]$article[COLOR=#f92772]->[/COLOR][COLOR=#a7e22e]store[/COLOR][COLOR=#f9faf4]([/COLOR][COLOR=#f92772]TRUE[/COLOR][COLOR=#f9faf4])[/COLOR][COLOR=#f92772]; [/COLOR][COLOR=#f9faf4]} [/COLOR][COLOR=#f92772]catch [/COLOR][COLOR=#f9faf4]([/COLOR][COLOR=#ffffff]Exception [/COLOR]$t[COLOR=#f9faf4]) [/COLOR][COLOR=#f9faf4]{ [/COLOR][COLOR=#f92772]echo [/COLOR][COLOR=#e6da74]'error = '[/COLOR][COLOR=#f92772].[/COLOR]$t[COLOR=#f92772]; [/COLOR][COLOR=#f9faf4]}[/COLOR]
J'ai bien sur commencé par ces sites https://api.joomla.fr/joomla3 et https://api.joomla.org/cms-3 mais je vous avoue être un peu perdu en ce qui concerne l'utilisation de cet API et comment charger les entités que j'ai besoin d'utiliser.
De plus, le code du CMS semble avoir changer https://ordi-genie.com/joomla/develo...partir-de-j3-8 et j'ai encore du mal à différencier le code du Joomla 1.x, 2.5 et 3.
Bref, si vous auriez quelques indications ou ressources a me conseiller, je suis preneur.
Cordialement,
D.Fertane
Commentaire