IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Delphi et Joomla


Sujet :

Delphi

  1. #1
    Membre chevronné Avatar de der§en
    Homme Profil pro
    Bretagne
    Inscrit en
    Septembre 2005
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bretagne
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 002
    Par défaut Delphi et Joomla
    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.

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 477
    Par défaut
    Salut

    joomla n'est rien d'autre qu'un cms en php
    donc c'est les technos web (Rest, RESTful,...) qui peuvent s'appliquer

  3. #3
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 997
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 997
    Par défaut
    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

  4. #4
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 132
    Billets dans le blog
    5
    Par défaut
    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
    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 me faciliter la vie je fait en sorte que le retour du code PHP soit au format json.

    Pour interroger le script voici ce que je fais.

    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;
    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
    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;
    Et ça fonctionne très bien sous Windows, Android et Mac

  5. #5
    Membre chevronné Avatar de der§en
    Homme Profil pro
    Bretagne
    Inscrit en
    Septembre 2005
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bretagne
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 002
    Par défaut
    Merci Gouyon pour cette excellente piste de réflexion…


Discussions similaires

  1. Différences entre Delphi et Visual Basic ?
    Par Anonymous dans le forum Débats sur le développement - Le Best Of
    Réponses: 75
    Dernier message: 30/03/2009, 20h09
  2. Réponses: 1
    Dernier message: 13/05/2002, 09h19
  3. [Kylix] Migration delphi -> kylix
    Par Christian dans le forum EDI
    Réponses: 1
    Dernier message: 03/04/2002, 22h50
  4. Réponses: 4
    Dernier message: 27/03/2002, 11h03
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo