Insérer des class dans un plugin Joomla

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [Problème] Insérer des class dans un plugin Joomla

    Bonsoir,

    Je souhaite développer un plugin en utilisant une library PHP utilisant API REST de Twitter. Le but étant de m'exercer à développer des plugins.

    L'objectif est d'automatiser la publication des nouveaux articles sur Twitter dés qu'ils sont enregistrés. J'utilise donc
    onContentAfterSave()

    Je souhaite importer les class de cette librairie dans Joomla afin de pouvoir les utiliser ensuite dans mon plugin.

    Pouvez vous m'indiquer la méthode à suivre ? Dois-je utiliser JLoader ? Dois-je créer un composant ?

    Actuellement j'ai créé un plugin comme ceci

    Code PHP:

       <?php
    // The general information at the top of each file
    /**
    * @version              $Id$
    * @package              Joomla
    * @copyright    Copyright (C) 2005 - 2009 Open Source Matters, Inc. All rights reserved.
    * @license              GNU General Public License, see LICENSE.php
    */
     
    // No direct access allowed to this file
    defined'_JEXEC' ) or die( 'Restricted access' );
     
    // Import Joomla! Plugin library file
    jimport('joomla.plugin.plugin');
     
    //The Content plugin Loadmodule
    class plgContentAutosocial extends JPlugin
    {

       

          public function 
    onContentAfterSave($context, &$article$isNew)
       {
          
          
    // Paramètres Twitter
       
    $consumerKey    $this->params->get('twitter_ConsumerKey');
       
    $consumerSecret $this->params->get('twitter_ConsumerSecret');
       
    $oAuthToken     $this->params->get('twitter_oauthToken');
       
    $oAuthSecret     $this->params->get('twitter_oauthSecret');
       
    $articleId $article->id;


       include (
    'twitteroauth/OAuth.php');
       include (
    'twitteroauth/twitteroauth.php');

          
    $tweet = new TwitterOAuth($consumerKey$consumerSecret$oAuthToken$oAuthSecret);
          
    $tweetmsg 'Article ID'.$articleId'Saved';
          
    $tweet->post('statuses/update',array('status' => $tweetmsg));
        
     
         

       }
     
    }
       
    ?>
    autosocial.php

    Code:
    <?xml version="1.0" encoding="utf-8"?>
       <extension version="2.5" type="plugin" group="content" method="upgrade">
          <name>AutoSocial</name>
          <author>Florian P</author>
          <creationDate>Mars 2013</creationDate>
          <copyright>(C) 2005 - 2012 Open Source Matters. All rights reserved.</copyright>
          <license>GNU General Public License version 2 or later; see LICENSE.txt</license>
          <authorEmail>florian@joomladsgn.com</authorEmail>
          <authorUrl>www.joomladsgn.com</authorUrl>
          <version>1.0.0</version>
          <description>PLG_CONTENT_AUTOSOCIAL_XML_DESCRIPTION</description>
     
          <files>
             <folder>language</folder>
             <folder>twitteroauth</folder>
             <filename plugin="autosocial">autosocial.php</filename>
             <filename>index.html</filename>
          </files>
    
          <languages folder="language">
             <language tag="fr-FR">fr-FR/fr-FR.plg_content_autosocial.ini</language>
          </languages>
     
          <config>
             <fields name="params">
                <fieldset name="basic">
                   <field
                      name="twitter_ConsumerKey"
                      type="text"
                      label="PLG_CONTENT_AUTOSOCIAL_ITEM_FIELD_TWITTER_CONSUMER_KEY_LABEL"
                      description="PLG_CONTENT_AUTOSOCIAL_ITEM_FIELD_TWITTER_CONSUMER_KEY_CLASS_DESC"
                   />
    			   
    			    <field
                      name="twitter_ConsumerSecret"
                      type="text"
                      label="PLG_CONTENT_AUTOSOCIAL_ITEM_FIELD_TWITTER_CONSUMER_SECRET_LABEL"
                      description="PLG_CONTENT_AUTOSOCIAL_ITEM_FIELD_TWITTER_CONSUMER_SECRET_CLASS_DESC"
                   />
    			   
    			    <field
                      name="twitter_oauthToken"
                      type="text"
                      label="PLG_CONTENT_AUTOSOCIAL_ITEM_FIELD_TWITTER_OAUTHTOKEN_LABEL"
                      description="PLG_CONTENT_AUTOSOCIAL_ITEM_FIELD_TWITTER_OAUTHTOKEN_CLASS_DESC"
                   />
    			   
    			    <field
                      name="twitter_oauthSecret"
                      type="text"
                      label="PLG_CONTENT_AUTOSOCIAL_ITEM_FIELD_TWITTER_OAUTHSECRET_LABEL"
                      description="PLG_CONTENT_AUTOSOCIAL_ITEM_FIELD_TWITTER_OAUTHSECRET_DESC"
                   />
    			   
                </fieldset>
             </fields>
          </config>
       </extension>
    autosave.xml

    la librairie que je souhaite intégrée est disponible ici :

    Tutoriaux et Templates pour Joomla 2.5
    http://www.joomladsgn.com

  • #2
    Re : Insérer des class dans un plugin Joomla

    Bonsoir

    Je ne saisis pas immédiatement ton problème... Le fait de faire un require_once n'est-il pas suffisant (je vois que tu utilises un include; mauvaise idée).
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
    Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

    Commentaire


    • #3
      Re : Insérer des class dans un plugin Joomla

      Oui je suis passé par un require_once et ca a fonctionné, par contre j'ai souvent lu sur les forums US qu'ils déconseillaient le require_once, Vous savez pourquoi ?

      "_requireOnce is a protected function never use it directly"

      je suis un pur autodidacte (Economiste) mais je cherche à comprendre
      Tutoriaux et Templates pour Joomla 2.5
      http://www.joomladsgn.com

      Commentaire


      • #4
        Re : Insérer des class dans un plugin Joomla

        En fait, je pensais qu'il fallait que je load mes class dans l'application Joomla avec Jloader ou autre avant de pouvoir les utilisées dans un plugin ou un composant.
        Tutoriaux et Templates pour Joomla 2.5
        http://www.joomladsgn.com

        Commentaire

        Annonce

        Réduire
        Aucune annonce pour le moment.

        Partenaire de l'association

        Réduire

        Hébergeur Web PlanetHoster
        Travaille ...
        X