PHP pour Joomla

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

  • [RÉGLÉ] PHP pour Joomla

    Bonjour,
    J'ai préparé un PHP qui me permet de créer un tableau avec le plugin jQuery Dynatable.

    Ce tableau doit être affiché par un lien de menu uniquement pour les visiteurs enregistrés (et connectés bien sûr)

    Dans ce tableau, j'ai besoin d'afficher l'id de ce visiteur.

    Dans mon PHP j'ai mis:
    Code:
    <input type="text" id="IdduTA" value="<?php echo JFactory::getUser()->id; ?>" />
    Mais je ne sais pas comment dire à mon PHP qu'il est utilisé dans Joomla pour que mon INPUT affiche l'ID du visiteur.

    Que me faut-il comme en-tête dans le PHP ?

    Quelqu'un peut-il m'aider ?

    Cordialement.
    Eric

  • #2
    Re : PHP pour Joomla

    Bonjour,

    Pour qu'un script PHP utilise les fonctions de Joomla, il faut utiliser un code de ce genre
    Code PHP:
    /* Chargement framework Joomla */
    // Definition constante d'execution
    define('_JEXEC'1);
    // Definition chemin vers Joomla
    define('JPATH_BASE''../../');  // <--- a adapter en fonction de l'emplacement de son script !!!
    // Definition des variables globales de chemin d'acces
    require_once(JPATH_BASE.'includes/defines.php');
    require_once(
    JPATH_BASE.'includes/framework.php');
    // creer l'objet application
    $app JFactory::getApplication('site');
    // Test sur utilisateur
    $user JFactory::getUser();
    //var_dump($user);
    if ($user->guest) { 
        die(
    'Acces interdit');

    UP, le plugin universel à découvrir sur https//up.lomart.fr
    bgMax
    , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

    Commentaire


    • #3
      Re : PHP pour Joomla

      Bonjour lomart,
      Merci pour ton aide.
      Je regarde et essaie de mettre ça en oeuvre.
      Cordialement.
      Eric

      Commentaire


      • #4
        Re : PHP pour Joomla

        Bonjour,
        je bute sur cette ligne:

        // Definition chemin vers Joomla
        define('JPATH_BASE', '../../'); // <--- a adapter en fonction de l'emplacement de son script !!!

        Quand tu parles de l'emplacement de mon script, c'est quoi ?
        Le chemin du fichier PHP ?

        J'ai essayé cela:

        define('JPATH_BASE', '/../../../../..');
        (mon fichier PHP est dans: components/com_crmform/views/projetform/tmpl)


        Mais j'ai un message d'erreur:

        Warning: require_once(/../../../../..includes/defines.php): failed to open stream: No such file or directory in /home/editinfo/www/crm/components/com_crmform/views/projetform/tmpl/id_des_ta.php on line 8

        Fatal error: require_once(): Failed opening required '/../../../../..includes/defines.php' (include_path='.:/usr/local/php5.4/lib/php') in /home/editinfo/www/crm/components/com_crmform/views/projetform/tmpl/id_des_ta.php on line 8

        Cordialement.

        Eric
        Dernière édition par Agrepe à 13/08/2016, 09h44

        Commentaire


        • #5
          Re : PHP pour Joomla

          J'ai trouvé un peu de doc, j'ai essayé cela:

          <?php
          define( '_JEXEC', 1 );
          define('JPATH_BASE', '../../../../../..' );

          require_once ( JPATH_BASE .'/includes/defines.php' );
          require_once ( JPATH_BASE .'/includes/framework.php' );

          $app = JFactory::getApplication('site');
          $user = JFactory::getUser();

          }

          print_r ($user);
          ?>


          <!-- Récupérer l'ID de l'utilisateur -->
          <input type="text" id="IdduTA" value="<?php echo JFactory::getUser()->id; ?>" />

          Avec le print_r j'affiche:

          JUser Object ( [isRootrotected] => [id] => 0 [name] => [username] => [email] => [password] => [password_clear] => [block] => [sendEmail] => 0 [registerDate] => [lastvisitDate] => [activation] => [params] => [groups] => Array ( ) [guest] => 1 [lastResetTime] => [resetCount] => [requireReset] => [_paramsrotected] => Joomla\Registry\Registry Object ( [datarotected] => stdClass Object ( ) [separator] => . ) [_authGroupsrotected] => [_authLevelsrotected] => [_authActionsrotected] => [_errorMsgrotected] => [userHelperrotected] => JUserWrapperHelper Object ( ) [_errorsrotected] => Array ( ) [aid] => 0 )

          Bon, à chaque fois qu'il y a : dans mon copier/coller ça me met cet émoticône, désolé.

          Je m'attendais à voir la liste des utilisateurs.

          Aussi, quand j'ajoute :
          if ($user->guest) {
          die('Acces interdit');
          }


          L'accès est toujours interdit.
          Dernière édition par Agrepe à 13/08/2016, 10h06

          Commentaire


          • #6
            Re : PHP pour Joomla

            Ha voilà,
            j'ai du mal interpréter le chemin du fichier.
            en faisant:
            define('JPATH_BASE', '../../../../..');
            Cela fonctionne.

            Merci beaucoup lomart.

            Commentaire


            • #7
              Re : PHP pour Joomla

              je bute sur cette ligne:

              // Definition chemin vers Joomla
              define('JPATH_BASE', '../../'); // <--- a adapter en fonction de l'emplacement de son script !!!
              ...
              (mon fichier PHP est dans: components/com_crmform/views/projetform/tmpl)
              JPATH_PATH étant utilisé par require_once ( JPATH_BASE .'/includes/defines.php' );
              Il faut donc remonter de 5 niveaux (components/com_crmform/views/projetform/tmpl), soit ../../../../.. pour revenir à la racine du site
              UP, le plugin universel à découvrir sur https//up.lomart.fr
              bgMax
              , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

              Commentaire


              • #8
                Re : PHP pour Joomla

                Dans un composant, le code:
                Code PHP:
                /* Chargement framework Joomla */ 
                // Definition constante d'execution 
                define('_JEXEC'1); 
                // Definition chemin vers Joomla 
                define('JPATH_BASE''../../');  // <--- a adapter en fonction de l'emplacement de son script !!! 
                // Definition des variables globales de chemin d'acces 
                require_once(JPATH_BASE.'includes/defines.php'); 
                require_once(
                JPATH_BASE.'includes/framework.php'); 
                // creer l'objet application 
                $app JFactory::getApplication('site'); 
                // Test sur utilisateur 
                $user JFactory::getUser(); 
                //var_dump($user); 
                if ($user->guest) {  
                    die(
                'Acces interdit'); 

                ne sert strictement à rien car vous êtes déjà dans Joomla est toutes les fonctions de base sont déjà connu.
                de plus
                Code PHP:
                <input type="text" id="IdduTA" value="<?php echo JFactory::getUser()->id?>" />
                est certainement inutile, car vous pouvez toujours récupérer l'ID de l'utilisateur en cours par cette même fonction JFactory::getUser()->id.
                Donc la question est :
                A quoi vous sert cette valeur, ou souhaitez vous la conserver ?
                PS: d'ailleur ajouter cette ID dans une forme peut être une faille de sécurité, car l'utilisateur peut la modifier en éditant le code html.
                Dernière édition par electrocity à 13/08/2016, 15h34
                http://www.st42.fr : Astuce et téléchargement d’extension Joomla! et virtuemart
                http://shop.st42.fr Catalogue extentions gratuit et Pro pour Virtuemart et Joomla

                Commentaire


                • #9
                  Re : PHP pour Joomla

                  ne sert strictement à rien car vous êtes déjà dans Joomla est toutes les fonctions de base sont déjà connu.
                  de plus
                  VRAI si l'on est dans Joomla. Je pensais qu'il s'agissait d'un script externe appelé hors Joomla.
                  Si le script fait partie d'une extension, c'est l'implantation de celle-ci qu'il faut revoir.
                  UP, le plugin universel à découvrir sur https//up.lomart.fr
                  bgMax
                  , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

                  Commentaire


                  • #10
                    Re : PHP pour Joomla

                    Bonjour,
                    Il s'agit d'un fichier PHP que j'ajoute en parallèle du fichier defaut.php (dans le tmpl d'une vue), c'est un formulaire qui contient un chronomètre.
                    En fait je dois afficher le username de l'utilisateur dans ce formulaire dans un INPUT en lecture seule.
                    Et l'ID (qui n'est pas affichée) me sert à afficher une valeur par défaut dans une liste de choix (un foreygnkey de la colonne des username de la table USERS)

                    Vos remarques m'intéressent, car cela va me permettre d'une part de simplifier mon code te d'autre part de sécuriser mon fichier.

                    Cordialement.

                    Eric

                    Commentaire

                    Annonce

                    Réduire
                    Aucune annonce pour le moment.

                    Partenaire de l'association

                    Réduire

                    Hébergeur Web PlanetHoster
                    Travaille ...
                    X