Utilisation de la classe JVersion

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

  • [RÉGLÉ] Utilisation de la classe JVersion

    Bonjour à tous,

    Je suis en train de créer un patch qui ira copier différents fichiers dans leurs répertoires respectifs mais cela ne devra se faire que en fonction de la version de joomla.

    Je cherche donc à utiliser la classe joomla JVersion qui permet de récupérer cette version.

    Problème je n'arrive même pas à la récupérer ...

    C'est un joomla Verson 1.5.26 qui est concerné.

    Je dois faire une erreur en utilisant L'API Joomla mais je ne trouve pas d'ou viens l'erreur.

    Voici le code concerné:

    Code PHP:
    require_once ( '../libraries/loader.php' );

    jimport('joomla.version');
    $versionJoomla JVersion::getShortVersion();
    echo 
    $versionJoomla
    Si quelqu'un pouvait m'éclairer ce serait super sympa

    D'avance merci à tous

  • #2
    Re : Utilisation de la classe JVersion

    Bonjour,
    Envoyé par jeff9600 Voir le message
    Voici le code concerné:

    Code PHP:
    require_once ( '../libraries/loader.php' );

    jimport('joomla.version');
    $versionJoomla JVersion::getShortVersion();
    echo 
    $versionJoomla
    La classe JVersion n'ayant pas de méthode statique et getShortVersion utilisant $this pour accéder aux éléments:
    Code PHP:
    jimport('joomla.version');
    $v = new JVersion ;

    $versionJoomla $v->getShortVersion();
    echo 
    $versionJoomla
    Pas de demande de support par MP.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

    Commentaire


    • #3
      Re : Utilisation de la classe JVersion

      Bonjour et merci de ta réponse,

      J'avais déjà essayé d'afficher la version avec ce code

      Code PHP:
      jimport('joomla.version');
      $v = new JVersion() ;

      $versionJoomla $v->getShortVersion();
      echo 
      $versionJoomla
      Malheureusement cela ne fonctionne pas non plus.

      En réalité c'est après l'appel de la classe JVersion (avec jimport) que quelque chose ne marche pas.

      La fonction jimport ne suffit peut être pas à charger la classe, il y a une autre fonction à utiliser pour charger une classe dans joomla ?

      Commentaire


      • #4
        Re : Utilisation de la classe JVersion

        Bonjour

        Ci-dessous le code que j'utilise dans l'installateur de mon composant AllEvents et il fonctionne, c'est une certitude. Ceci sous toutes les versions de Joomla depuis la version 1.5

        Code PHP:
        $jVersion=new JVersion();

        // Version de Joomla 1.5, 1.6, 1.7, 2.5, ...
        $ae_vars['jVer']=$jVersion->RELEASE;
        $ae_vars['jVerShort']=$jVersion->getShortVersion();   

        unset(
        $jVersion); 
        Quel est précisement ton problème ? Tu as un message d'erreur ? Lequel ?
        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


        • #5
          Re : Utilisation de la classe JVersion

          Bonjour,
          Envoyé par jeff9600 Voir le message
          Malheureusement cela ne fonctionne pas non plus.

          En réalité c'est après l'appel de la classe JVersion (avec jimport) que quelque chose ne marche pas.

          La fonction jimport ne suffit peut être pas à charger la classe, il y a une autre fonction à utiliser pour charger une classe dans joomla ?
          Hum, la classe JVersion étant quasi autonome, si ça ne fonctionne pas, c'est certainement parce que tu tentes de travailler hors contexte Joomla!, et dans ce cas, il faut commencer par importer et initialiser le framework.

          Si dans un contexte non Joomla!, tu insères le loader avant d'avoir importté et initialisé le framework (ou au moins avoir includes/defines.php chargé), les chemins sont indéfinis, et le loader échouera.
          Pas de demande de support par MP.
          S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

          Commentaire


          • #6
            Re : Utilisation de la classe JVersion

            Bonjour,

            J'ai fais encore plusieurs tests et je pense effectivement que tu as raison.

            Pour essayer de savoir si c'est le cas je vais être un peu plus précis dans mes explications.

            En fait j'ai créer un dossier la racine de l'instance joomla(la ou il y a les dossiers administrator, components, modules etc...), dans ce dossier j'ai plusieurs patchs étant déjà fonctionnels mais utilisant du code php 5.3 et non le framework joomla.

            Le patch que je suis en train de développer, contrairement aux autres, ne doit être déployé que si la version de joomla est inférieur à la 1.5.23.

            Je voulais donc utiliser la classe JVersion pour récupérer cette fameuse version.

            Mon code est pratiquement prêt (toujours en php 5.3) et il ne manque que le test permettant de savoir si je suis bien dans une version inférieure.

            Du coup j'ai créé une page toute simple toujours dans le dossier se trouvant à la racine permattant d'afficher cette valeur (le code que je vous ai montrés hier).

            Tu parles donc de l'initialisation du framework, je pensais qu'il fallait simplement faire un include_once de la page loader.php pour importer des classses.

            Que faut-il faire donc de plus pour charger ce framework?
            Car c'est à mon avis la que je ne fais pas les choses correctement

            Je vous mets à nouveau le code complet de cette page de test :

            Code PHP:
            require_once ( '../libraries/loader.php' );

            jimport('joomla.version');
            $jVersion = new JVersion() ;

            $versionJoomla $jVersion->getShortVersion();
            echo 
            $versionJoomla
            Encore une fois merci d'avance

            Commentaire


            • #7
              Re : Utilisation de la classe JVersion

              Re bonjour à tous,

              Je viens de régler mon problème.

              C'était effectivement le framework qui devait être chargé.

              C'est la première fois que j'utilisais le framework joomla alors je ne le savais pas...

              Encore merci pour votre aide

              Je mets le code qui m'a permis de solutionner la chose:

              Code PHP:
              // On définie que c'est un fichier familier à Joomla
              define('_JEXEC');

              define('JPATH_BASE''../' );

              define'DS','/' );

              // On inclue les constantes
              require_once ( JPATH_BASE.DS.'includes'.DS.'defines.php' );
              // On inclue le framework
              require_once ( JPATH_BASE.DS.'includes'.DS.'framework.php' );

              require_once ( 
              '../libraries/loader.php' );

              jimport('joomla.version');
              $jVersion = new JVersion() ;

              $versionJoomla $jVersion->getShortVersion();
              echo 
              $versionJoomla

              Commentaire

              Annonce

              Réduire
              Aucune annonce pour le moment.

              Partenaire de l'association

              Réduire

              Hébergeur Web PlanetHoster
              Travaille ...
              X