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

WordPress PHP Discussion :

Aide à la création d'un plugin wordpress


Sujet :

WordPress PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Par défaut Aide à la création d'un plugin wordpress
    Bonjour à toute la communauté de Developpez.com

    Je me tourne vers vous car je n'ai pas dans mon entourage des gens compétent pour m'aider dans mon projet.
    Je suis un Guild Master sur Guild Wars 2 et j'ai monté un site à l'aide de WordPress

    J'ai modifié le thème, fais des CSS persos que j'ai intégré sans problème.

    Mais je n'ai aucune connaissance en php pour programmer un plugin WP.

    Dans les articles que je poste, je fais afficher, quand on passe la souris sur un item de jeu, une infobulle donnant les détails de celui-ci grâce à un appel JS sur une base de donnée des objets du jeu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p>Vous aurez besoin d'un <a class="rarity_masterwork" href="http://db.gw2.fr/item/67818" target="_blank" data-gw2-item="67818">Appareil d'extraction de mordrem expérimental</a></p>
    Cela marche très bien comme vous pouvez le constater à cette adresse : http://www.guilde-gdc.fr/hall_de_guilde/?p=710

    Mais imaginez un article comprenant un tableau avec 50 item à lister avec des classes de rareté différentes (légendaire, rare, basique, etc...) + la référence de l'item à mettre deux fois dans le HRef...
    Le travail devient long et fastidieux.

    D'où ma volonté de créer un petit plugin qui rajouterai un bouton dans l'interface d'édition des articles/pages qui ferai apparaitre une fenêtre popup demandant les renseignements et générant directement la balise <a>.....</a>

    Dans le popup, il faudrait une liste déroulante avec les différentes rareté de l'objet, une zone texte pour récupérer l'ID de l'item et une autre pour le texte descriptif de celui-ci ou faire comme la fonction link intégrée dans l'éditeur : on tape le texte, on le mets en surbrillance, on clique sur le bouton et cela récupère le texte pour l'intégrer dans la fenêtre du popup.

    J'avoue que je suis perdu car je ne sais vraiment pas comment faire. J'ai bien pensé à essayer de trouver le code de la fonction Link de wordpress, mais vu la quantité de ligne de code, j'ai abandonné.

    Je me retourne vers vous. Je suis prêt à aider dans la mesure de mes connaissances (vraiment limitée j'avoue... ), mais je suis curieux et j'aime apprendre. C'est grace à votre aide que j'ai réussi à développer mon timer et à le coder.

    Vous pouvez me contacter par skype pour un travail en simultané ou par Team Speak aussi.

    En vous remerciant de votre aide par avance

    TMK

  2. #2
    Membre Expert

    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2011
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 049
    Billets dans le blog
    2
    Par défaut
    Je pense que le popup peut se faire en javascript et je suppose que les items sont dans un array, il est alors possible de les afficher dans le popup

  3. #3
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 573
    Par défaut
    d'après ce que tu as expliqué, je te proposerai juste de créer un "shortcode" au lieu de modifier l'interface d'édition.
    avec ça tu créera le texte suivant dans ton article :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Vous aurez besoin d’un [ObjetGuildWars numero="67818"]
    et ensuite ta page s'affichera de la même façon que ce tu as pour le moment

    est ce que cela te convient ?
    pour créer une extension va dans le répertoire "wp-content/plugins" et crée un répertoire du nom de ton extension par exemple "objet-guild-wars". et dans ce répertoire crée un nouveau fichier du même nom "objet-guild-wars.php" avec ce contenu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    /*
    Plugin Name: Objet Guild Wars
    Version: 1.0
    */
    après va dans l'espace d'administration, partie "extensions" et active ta nouvelle extension même si elle ne fait rien pour le moment


    l'étape d'après est d'ajouter du code PHP dans ce fichier
    pour savoir comment créer un shortocode dans ton extension, regarde là :
    http://codex.wordpress.org/Function_.../add_shortcode

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Par défaut
    Merci mathieu pour ta réponse.

    Effectivement un shortcode pourrait faire l'affaire.

    Je suis allé faire un tour sur le codex de WP et utilisé le générateur de shortcode. Voila ce que j'obtiens :

    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
    // Add Shortcode
    function genbal( $atts ) {
     
    	// Attributes
    	extract( shortcode_atts(
    		array(
    			'itemid' => '',
    			'rarete' => 'junk',
    			'descript' => '',
    		), $atts )
    	);
     
    	// Code
    return '<a class="rarity_' . $atts['rarete'] . '" href="http://db.gw2.fr/item/' . $atts['itemid'] . '" target="_blank" data-gw2-item="' . $atts['itemid'] . '">' . $atts['descript'] . '</a>';
    }
    add_shortcode( 'gw2obj', 'genbal' );
    Je ne sais pas si la partie après le return est bien écrite car comme il y a des " " un peu de partout je ne sais pas si la syntaxe va être tolérée ou s'il faut l'écrire comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '&lt;a class=&#x22;rarity_' . $atts['rarete'] . '&#x22; href=&#x22;http://db.gw2.fr/item/' . $atts['itemid'] . '&#x22; target=&#x22;_blank&#x22; data-gw2-item=&#x22;' . $atts['itemid'] . '&#x22;&gt; ' . $atts['descript'] . '&lt;/a&gt;'
    Voila le code que j'ai créé en html/js :

    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
    36
    37
    <!DOCTYPE html>
    <html>
    <body>
    <form id="genbal">
    Description : <input type="text" name="descritp" value="" required><br>
    Item ID: <input type="text" name="itemID" value="" size="6" maxlength="6" required><br>
    Rareté : <select name="rarete">
    <option value="junk" style="color: #787878;">Inutile</option>
    <option value="basic" style="color: #6E6E6E;">Basique</option>
    <option value="fine" style="color: #217fff;">Rafiné</option>
    <option value="masterwork" style="color: #20a800;">Chef d oeuvre</option>
    <option value="rare" style="color: #cab900;">Rare</option>
    <option value="exotic" style="color: #cb8b00;">Exotique</option>
    <option value="ascended" style="color: #f52176;">Elevé</option>
    <option value="legendary" style="color: #8f00fe;">Légendaire</option>
    </select>
    </form><br>
    <button onclick="recup()">Générer la balise</button>
     
    <p id="test"></p>
     
    <script>
    function recup() {
        var x = document.getElementById("genbal");
        var baldata = new Array();
        var i;
        for (i = 0; i < x.length ;i++) {
            baldata[i] = x.elements[i].value;
        }
     
        balise = "&lt;a class=&#x22;rarity_" + baldata[2] + "&#x22; href=&#x22;http://db.gw2.fr/item/" + baldata[1] + "&#x22; target=&#x22;_blank&#x22; data-gw2-item=&#x22;" + baldata[1] + "&#x22;&gt; " + baldata[0] + "&lt;/a&gt;";
     
        document.getElementById("test").innerHTML = balise;
    }
    </script>
    </body>
    </html>
    Maintenant se pose un problème. Si je serai le seul à écrire des articles j'utiliserai certainement le shortcode, car je connais les valeur de "Rareté" et pourrais mettre les bonnes valeurs à chaque fois. Hors nous sommes plusieurs à écrire des articles et guides sur le site et tous ne sont pas calés en informatique. D'où mon idée du bouton dans l'interface d'édition. Cela éviterai tout problème.
    Pas besoin d'un truc extraordinaire, mais juste un petit popup comme j'ai fait dans mon exemple html avec les 3 champs + un bouton.

    Peux-tu dans un premier temps m'aider à transformer mon code js qui crée le texte de la balise avec les arguments récupéré lors de l'appel du shortcode. Ca me permettrai déjà de le mettre en place en attendant un plugin plus abouti.

    Encore merci de ton aide.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Par défaut
    Bon le shortcode marche parfaitement !!!

    Mais j'aimerai vraiment le développer en plugin avec une fenêtre popup pour les raisons que j'ai donné dans le post précédent.
    De plus je pense que cela pourrai intéresser d'autres personnes.

    Edit : Je viens de penser à une chose. Pour que le shortcode fonctionne, il faut intégrer deux ligne dans le header :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script type="text/javascript" src="http://db.gw2.fr/js/remote-tooltip-jquery.js"></script>
     
    et
     
    <link rel="stylesheet" type="text/css" href="http://www.guilde-gdc.fr/map/media/dbobjet.css" />
    Bien evidement la feuille de style peut être placée ailleurs comme dans le répertoire du plugin

    Comment puis-je intégré automatiquement ces lignes dans le header à l'installation du plugin ?

    Moi je les ai intégré manuellement en éditant le fichier header de mon thème.

    merci de votre aide.

  6. #6
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 573
    Par défaut
    Citation Envoyé par TMKFrench Voir le message
    Comment puis-je intégré automatiquement ces lignes dans le header à l'installation du plugin ?

    Moi je les ai intégré manuellement en éditant le fichier header de mon thème.
    pour ça, utilise les fonctions suivantes dans ton extension :
    http://codex.wordpress.org/Function_...enqueue_script
    http://codex.wordpress.org/Function_..._enqueue_style


    pour ta question, n'y a-t-il pas un service qui permet de récupérer la rareté en fonction du numéro d'objet ? comme pour les données de l'infobulle : http://db.gw2.fr/tooltip/item/67818
    j'ai cherché sur le site gw2.fr mais je n'ai pas trouvé de documentation, comment connaitre les autres services disponibles ?

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

Discussions similaires

  1. Outil d'aide à la création d'une DTD
    Par Elmilouse dans le forum Valider
    Réponses: 1
    Dernier message: 28/02/2006, 01h56
  2. Création d'un plugin pour navigateur web
    Par veuda dans le forum Réseau/Web
    Réponses: 7
    Dernier message: 07/11/2005, 15h56
  3. [MySQL] Aide à la création d'une requête
    Par tom06440 dans le forum Requêtes
    Réponses: 6
    Dernier message: 19/10/2005, 22h05
  4. aide sur création d'un composant
    Par laetus dans le forum C++Builder
    Réponses: 2
    Dernier message: 14/07/2004, 10h45

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