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

Langage PHP Discussion :

Appeler un webservice dans un plug-in WordPress [PHP 5.6]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Appeler un webservice dans un plug-in WordPress
    Bonjour à tous.

    Je ne connais pas le langage PHP et je dois programmer un PlugIn WordPress (tout de même, j'ai pas le choix). Je suis bloquer sur un point qui me parait assez simple mais qui me pose souci parce que je ne troue pas de réponse sur le net malgré mes recherche commencées ce matin.

    J’ai créer un plug in pour faire un widget. Ce widget doit appeler un webservice qui génère une chaîne de caractère (qui est une chaîne HTML complète) et l’afficher dans la sidebar du WordPress.
    Mais il ne se passe rien. J’ai testé la chose avec du HTML en dur et ça marche bien.
    Là il n’y a rien en dessous du titre du Widget, comme si mon appel était juste ignoré. Et je n’ai pas de message d’erreur ou quoi que ce soit pour me mettre sur la voie.

    Voici l’état de mon code actuel :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <?php
    class Ablanore_Rotation_Widget extends WP_Widget
    {
        public function __construct()
        {
    	parent::__construct('Ablanore_Rotation_Widget', 'Rotation', array('description' => 'Affichage de la rotation hebdomadaire'));
        }
     
    public function widget($args, $instance)
    {
        echo $args['before_widget'];
        echo $args['before_title'];
        echo apply_filters('widget_title', $instance['title']);
        echo $args['after_title'];
    $url = ‘http://statheroes.ozouf.com/StatHeroes/Rotation.ashx?Type=RotationHebdo&Lang=fr-FR’; 
    $nameFunc = ‘’;
    $param= array(‘’ => ‘’)
     
    $client = new soapclient($url);
    $result = $client->call($nameFunc, $param);
    echo $result;
        echo $args['after_widget'];
    }
     
    public function form($instance)
    {
        $title = isset($instance['title']) ? $instance['title'] : '';
        ?>
        <p>
            <label for="<?php echo $this->get_field_name( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>
            <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo  $title; ?>" />
        </p>
        <?php
    }
    }
    Je maîtrise le webservice puisque c'est moi qui l'ai programmé (en .NET puisque c'est mon langage de prédilection).
    Je ne sais pas si c'est l'appel du webservice qui ne se fait pas bien ou le renvoi vers la page.

    Auriez vous quelques minutes pour m'apporter un peu d'aide ?
    Merci et bonne journée.

  2. #2
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    $client = new soapclient($url);
    $result = $client->call($nameFunc, $param);
    call est une méthode de ton webservice n'est ce pas ? et elle ne prend rien en paramètre ou en tout cas blanc et un tableau vide?
    Perso, avant de m'amuser avec le webservice, je testerai mon code pour vérifier si j'arrive à le joindre et ensuite si j'arrive à exploiter les infos. le tout avec des info un peu en dure à la base. ensuite je ferai évoluer le code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $client = new soapclient($url);
    try
    {
    $result = $client->call($nameFunc, $param);
    ..........
    }
     catch( Exception $e )
    {
     echo "Erreur : ".$e->getMessage();
    }
    si déjà tu n'a pas de message d'erreur c'est que tu à pus joindre le webservice, après voir si tu définie bien l'appel et les méthodes.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci pour ton aide.

    Visiblement il y a un souci sur la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $client = new soapclient(‘http://statheroes.ozouf.com/StatHeroes/Rotation.ashx?Type=RotationHebdo&Lang=fr-FR’);
    Je me demande si ce n'est pas à cause de la déclaration de la variable $client qui ne doit pas être déclarée dans WordPress. Et je ne sais pas comment la déclarer.

    Je suis désolé, je me doute que ce n'est pas simple de donner un coup de main à quelqu'un qui ne maîtrise pas le langage.

    Merci encore pour ton aide.

  4. #4
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    J'ai essayé de mon côté, le problème viens plus du fait que l'on n'arrive pas à obtenir le wsdl de ton webservice. Du coup impossible de connaitre sa structure etc ...

    comme dans ceci : https://www.developpez.net/forums/d1...ng-wsdl-error/
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Ok, je vois ce que tu veux dire.
    L'ennui c'est je n'ai pas fait de structure WSDL. Je fabrique juste une chaîne HTML, rien de plus.
    Au bout du compte je me demande même s'il s'agit bien d'un webService.

    Je ne sais pas mettre en place une structure WSDL en .NET.

    Mais alors, est-ce qu'il n'y a pas un autre moyen en PHP pour "parser" la chaîne ?
    En fait, si tu mets directement l'URL dans un navigateur tu obtiens juste du HTML de manière brutale. En .NET tu fabriques un WebClient et tu prends la fonction DownLoadString et tu place tout ça dans un conteneur viable, un Div.InnerHTML fait parfaitement l'affaire, par exemple.

    Dans le cas qui m'occupe, l'idée est de récupérer cette chaîne HTML et de la coller tout simplement dans la page, donc peut-être pas de passer par un WebService avec du WSDL.

    Vois tu ce que je veux dire ?

  6. #6
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    J'ai trouvé un bout de code qui me semble pas mal pour ce que je veux faire mais je n'arrive pas à exploiter la chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Récupérer code source HTML de la page web
    	$url = "http://statheroes.ozouf.com/StatHeroes/Rotation.ashx?Type=RotationHebdo&Lang=fr-FR";
    	$html = file_get_contents($url);	
    	$doc = new DOMDocument();
    	$doc->loadHTML($html);
    Je ne sais pas qui faire du $doc. J'ai tenté un echo, mais ça donne rien.

  7. #7
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Bon, j'ai fini par trouver un truc marche, enfin qui me donne satisfaction surtout.
    Je ne sais pas si c'est super optimisé, ni même si ça relève de la programmation standard, mais ça fait ce que je veux.

    Donc voici ma solution et je rappelle, pour mémoire, le contexte :
    - j'ai fait un ASHX en .NET qui donne une chaîne HTML (je ne suis pas sûr que l'on puisse appeler cela un WebService, mais ça y ressemble).
    - j'ai fait un Widget pour WordPress en partant de la base la plus stricte.
    - Je veux afficher dans la place du Widget sur le site WordPress la chaîne HTML littéralement, les CSS devant encore être ajoutés par ailleurs dans le thème WordPress

    Voici donc le code de la fonction Widget du Plug-In WordPress, si vous voulez d'autres renseignements, le MP est votre bon ami et si vous êtes un tout petit peu curieux vous n'aurez aucun mal à me retrouver quelque part sur le NET !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public function widget($args, $instance)
    {
        echo $args['before_widget'];
        echo $args['before_title'];
        echo apply_filters('widget_title', $instance['title']);
        echo $args['after_title'];
    	$homepage = file_get_contents('http://statheroes.ozouf.com/StatHeroes/Rotation.ashx?Type=RotationHebdo&Lang=fr-FR');
    	echo $homepage;
        echo $args['after_widget'];
    }
    Et c'est tout.

    Je vais continuer à développer mon Plug In avec des ShortCode maintenant, si ça vous tente, n'hésitez pas à me contacter, j'adore partager mes trouvailles.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appel WebService dans une page HTML
    Par kaba90 dans le forum Services Web
    Réponses: 1
    Dernier message: 25/11/2012, 15h11
  2. appel de webservice dans un managedBean
    Par theboss0 dans le forum JSF
    Réponses: 0
    Dernier message: 11/10/2012, 03h16
  3. Appel à une transaction dans un webservice
    Par safisafi dans le forum Services Web
    Réponses: 5
    Dernier message: 06/06/2009, 00h25
  4. [Web Service][SOAP] Appel d'un WebService dans PHP
    Par ggjedi dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 09/02/2008, 11h36

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