Bonjour,
Je cherche � interfacer Delphi avec l�API de joomla, je n�ai trouv� que peux d�infos sur le d�veloppement entre les deux, auriez-vous des liens utiles qui me ferait gagner du temps sur ce sujet ?
Je vous remercie par avance.
Bonjour,
Je cherche � interfacer Delphi avec l�API de joomla, je n�ai trouv� que peux d�infos sur le d�veloppement entre les deux, auriez-vous des liens utiles qui me ferait gagner du temps sur ce sujet ?
Je vous remercie par avance.
Salut
joomla n'est rien d'autre qu'un cms en php
donc c'est les technos web (Rest, RESTful,...) qui peuvent s'appliquer
Clairement, c'est c�t� Joomla que cela semble peu natif avec la n�cessit� d'installer des plugins pour g�rer les API REST, une fois que tu auras via PostMan un jeu de test fonctionnel avec les API d�sir�, il faudra convertir cela en Delphi, et c'est assez trivial avec un TIdHTTP ou un TRESTClient
Donc
1- Installer les Plugins Joomla
2- Etudier la gestion du Bearer Auth de Joomla
3- Se cr�er un jeu de test sous PostMan (Ce qui semble particuli�rement mal document�)
4- Se cr�er des classes en Delphi pour manipuler la REST API comme des Objets
Aide via F1 - FAQ - Guide du d�veloppeur Delphi devant un probl�me - Pensez-y !![]()
Attention Troll M�chant !
"Quand un homme a faim, mieux vaut lui apprendre � p�cher que de lui donner un poisson" Confucius
Mieux vaut se taire et para�tre idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la m�diocrit� !
L'exp�rience, c'est le nom que chacun donne � ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Je g�re plusieurs site sous joomla qui sont interfac�s avec des applications delphi. Ce qu'il faut savoir c'est que tout le site est contenu dans la base de donn�e. Donc pour r�cup�rer et/ou envoyer des donn�es il faut acc�der � la base de donn�es.
La solution que j'ai adopt�e (qui n'est peut �tre pas la meilleure) est d'utiliser des scripts php que je viens interroger avec le composant du TNetHTTPRequest
Exemple:
Le script php
Pour me faciliter la vie je fait en sorte que le retour du code PHP soit au format json.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <?php $mysqli = new mysqli("host", "identifiant", "motdepasse", "base de données"); if ($mysqli->connect_errno) { $echo = "ERREUR=PAS DE CONNEXION BDD!ERREUR"; } else { $req = "SELECT ref,nom FROM `t_pays`"; if ($_POST['param1']>0) $req.=" WHERE continent=".$_POST['param1']; $req.=" ORDER BY nom"; $resultat = $mysqli->query($req); if (! $resultat) { $reponse[]= array("REQ"=>"ECHECSQL","REQUETE"=>$req,"NUMERRSQL"=>$mysqli->errno,"ERRSQL"=>$mysqli->error); } else { $resultat->data_seek(0); $reponse[]= array("REQ"=>"LISTEPAYS"); while ($repbdd = $resultat->fetch_assoc()) { $reponse[]=$repbdd; } } echo json_encode($reponse); } ?>
Pour interroger le script voici ce que je fais.
J'utilise ensuite la fonction OnRequestCompleted pour r�cup�r� le r�sultat sous la forme d'une liste d'objet json qui seront ensuite d�cod�.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 params := TStringList.Create; params.Add(Format('param1=%d', [Reference])); ReqHTTP.Post(urlreq, params); params.Free;
Et �a fonctionne tr�s bien sous Windows, Android et Mac
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 procedure TdmPDB.retourSite(const Sender: TObject; const AResponse: IHTTPResponse); var ret: string; jsonval: TJsonValue; lstelem: TJSONArray; begin try ret := AResponse.ContentAsString(TEncoding.UTF8); except on E: Exception do ret := ''; end; if pos('[{', ret) = 1 then begin jsonval := TJsonObject.ParseJSONValue(ret); lstelem := jsonval.GetValue<TJSONArray>(); //decodage du json end; end;
Merci Gouyon pour cette excellente piste de r�flexion�
![]()
Partager