Lire les informations de l'article actif

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

  • Lire les informations de l'article actif

    Bonjour,
    Je recherche en vain dans les sources de Joomla comment je peux avoir accès aux données de l'article actif en fonction du nom des colonnes (par exemple "alias" ou "modified")
    Comment est-ce possible ?

    D'autre part en consultant les sources Joomla, j'ai rencontré un opérateur antislach " \ " dans des instructions de test et je ne connais pas la signification de cet anitslach : " if (\is_array($array)) {". Malgré mes recherches dans "w3schools.com" , cela est resté un mystère.

    Bien cordialement

  • #2
    Bonjour,

    Concernant l'antislash, il y a déjà eu une discussion sur le sujet : https://forum.joomla.fr/forum/joomla...fined-ou-autre

    Pascal
    If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

    Commentaire


    • #3
      Concernant la 1ere question, je ne suis pas sûr d'avoir compris, mais, peut-être l'action sql de UP peut-elle répondre ? https://up.lomart.fr/demo/action-sql

      Pascal
      If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

      Commentaire


      • #4
        Bonjour pmleconte,

        Merci pour ta réponse à la deuxième question.

        Pour la première question, je pense que tu n'as pas compris ma question, je la précise :

        Quand une page s'affiche, le contenu de l'enregistrement de l'article contenant la page est dans Joomla et Joomla y prélève des informations et je voudrai, moi aussi, y prélever des données pour mes traitements sans avoir à accéder à la base dont Joomla a déjà descendu le contenu sous une forme accessible. une forme objet.

        Bien cordialement.
        Dernière édition par SousLeSoleil à 01/04/2024, 16h27

        Commentaire


        • #5
          Dans quel type d'extension as-tu besoin de ces informations ?

          S'il s'agit d'un plugin, plugin de contenu plus particulièrement, l'objet article contient les infos de la base de données en fonction de l'événement appelé.

          S'il s'agit d'un module, on peut accéder au modèle Joomla\Component\Content\Site\Model\ArticleModel, mais cela refera une requête sql avec l'id de l'article.

          Pascal

          If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

          Commentaire


          • #6
            Bonjour pmleconte,

            Je pense que tu n'as pas saisie ma question.
            • Oui, je pourrai aller lire l'article dans la base de données, étant donné que par l'Uri je connais l'id de l'article. Je trouve que c'est un travail inutile, étant donné que l'article a été lu par Joomla et que Joomla y pèche des données qu'il affiche sur l'écran comme par exemple le nombre de clics, le nom de l'auteur et le contenu de l'article..
            • Toutes les données de l'enregistrement de l'article sont dans Joomla et Joomla utilise des "primitives" pour accéder à ces données et les afficher et les modifier.
            • Il me semble plus normal de ponctionner ces données directement dans Joomla qui les a déjà descendues de la base que d'aller une nouvelle fois dans la base chercher des données qui sont accessibles dans Joomla avec des risques d'interaction néfaste que cela peut provoquer avec Joomla
            • Les primitives d'accès aux données de l'enregistrement ou l'objet recevant l'enregistrement sont–ils des secrets-défense de joomla ?
            Pour accéder à un module, tu nommes le chemin :
            Joomla\Component\Content\Site\Model\ArticleModel
            • Joomla ne figure pas sur la root www,
            • Component y figure, mais Content ne figure pas dans Component, mais il y a de très nombreux Content ! le quel prendre ?
            • Autant rechercher Model. Il n'y aucun répertoire qui s'appelle Model.
            • Finalement la recherche s'arrête là !
            Enfin, si je pars d'un module qui affiche le nombre de clics, en remontant je devrais trouver l'objet que je cherche. Mais les modules sont tellement imbriqués les uns dans les autres que l'on se perd dans les imbrications

            Je me demande si ce que je cherche n'est pas dans le répertoire
            www \libraries\vendor\joomla\database\src
            Mais je préfèrerai utiliser les primitives écrites par Joomla pour accéder aux données qui m'intéressent.

            Bien cordialement.

            Commentaire


            • #7
              Bonjour,
              utiliser ou analyser le code de https://up.lomart.fr/demo/action-jcontent-info
              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
                Bonjour,

                En PHP, pour accéder au modèle Joomla, il suffit de mettre : use Joomla\Component\Content\Site\Model\ArticleModel en début de fichier. Cela charge l'objet.

                Ensuite, on peut accéder aux informations d'un article :

                $model = new ArticleModel(array('ignore_request' => true));
                $onearticle = $model->getItem(<id de l'article>);

                ​Pascal
                If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

                Commentaire


                • #9
                  Bonjour pmleconte et Iomart,
                  Merci pour vos réponses .

                  Il me semble que le lienhttps://up.lomart.fr/demo/action-jcontent-info​ apporte la réponse à ce que je recherche, quoique la première lecture que j'ai faite, me pose beaucoup de questions. Je vais étudier plus profondément ce document et faire des essais.

                  Avec les compléments d'information de Pascal, je comprends pourquoi ma recherche sur Joomla\Component\Content\Site\Model\ArticleModel n'a rien donné, étant donné que cette expression est un paramètre d'un Use et que sa transposition en une cascade de répertoires n'est pas évidente. Je me demande même comment le processeur fait pour s'y retrouver.

                  Bien cordialement.


                  Commentaire


                  • #10
                    Juste un de lecture sur la notion de namespace introduite en Joomla 4 : https://manual.joomla.org/docs/gener...ts/namespaces/
                    If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

                    Commentaire


                    • #11
                      Hello.
                      On peut se dispenser du namespace pour charger un model.

                      D'ailleurs il me semble que c'est la méthode conseillée pour acceder au model d'un autre composant.

                      Voici ce que je fais en général pour accéder au model de com_content (dans mon cas pour publier automatiquement un article) :
                      Code PHP:
                              $app=\Joomla\CMS\Factory::getApplication();
                              
                      $contentComponent Factory::getApplication()->bootComponent('com_content');
                              if(
                      $app->isClient('site')){
                                  
                      $model $contentComponent->getMVCFactory()->createModel('Form''Site', ['ignore_request' => true]);
                              }else{
                                  
                      $model $contentComponent->getMVCFactory()->createModel('Article''Administrator', ['ignore_request' => true]);
                              }
                      ​ 
                      L'avantage avec ce système, c'est que l'on est sûr de charger toutes les dépendances nécessaires au bon fonctionnement du model vu que l'on execute le "serviceprovider" du composant en question (s'il n'est pas en mode legacy bien sûr).

                      Bon dev.
                      Dernière édition par roland_d_alsace à 02/04/2024, 16h35
                      A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
                      Rejoignez le Joomla Users Groupe Alsace...
                      roland_d_alsace va-t-il devenir roland_du_grand_est ?

                      Commentaire


                      • #12
                        Bonjour Iomart,

                        Comme, je l'avais dit dans mon précédent message, j'ai étudié la primitive UP.
                        J'ai activé le premier lien : https://up.lomart.fr/demo/action-jcontent-info qui semble correspondre à ce que je recherche. Même si je ne vois pas encore comment l'intégrer pour obtenir le résultat escompté.

                        De cette première approche, j'ai voulu en connaître plus et j'ai appelé https://up.lomart.fr/ , et j'ai eu une révélation : c'est un outil tellement puissant que j'en suis resté estomaqué, cela dépasse l'imagination. Mais comment intégrer un tel outil dans les séquences php que j'écris. Je sens confusément que {up jcontent_info…} est l'outil dont j'ai besoin.

                        J'ai remarqué une documentation très poussée, à faire peur tant elle est grande…

                        J'ai pris le risque de me lancer dans l'inconnu et de téléchargé plg_content_up-v5.0.1.zip, je suis en version Joomla 5.0.3. Et je me suis arrêté là. Ayant un peu peur de l'inconnu !

                        Je pense qu'il faut l'installer comme un "plugin" ou peut-être comme une "extension" ?

                        Je suis persuadé qu'une fois installé, j'aurai besoin de vos conseils pour obtenir ce que je désire.

                        Bien cordialement.

                        Commentaire


                        • #13
                          Bonjour et merci pour votre appréciation,

                          Et je me suis arrêté là. Ayant un peu peur de l'inconnu !
                          UP ne peut pas planter votre site; en cas d'erreur ou de warning, il suffit de retirer le shortcode.

                          je ne vois pas encore comment l'intégrer pour obtenir le résultat escompté.
                          UP ne s'intègre pas à un script. C'est ce que je voulais dire par "utiliser ou analyser le code".
                          Vous pouvez vous inspirer du code d'un script pour créer votre php. Mais ce n'est pas la philosophie de UP qui veut que tout soit visible dans l'article. Si l'action n'existe pas ou ne vous convient pas, vous pouvez créer ou dériver la vôtre.

                          Pour la doc, il y a un mode d'emploi de la documentation sur ce lien : https://up.lomart.fr/infos
                          Vous y trouverez le lien vers les deux heures d'exposé lors du Joomladay de Bruxelles. Un bon moyen de faire le tour de UP

                          Bonne journée et bonne découverte

                          PS. si vous voulez conditionner l'affichage du module comportant les shortcode à la présence d'un article dans la zone centrale de votre site, jetez un oeil à https://lomart.fr/extensions-blog/37...lm-custom-site
                          Dernière édition par lomart à 03/04/2024, 07h14
                          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


                          • #14
                            Bonjour Iomart,

                            Je me suis lancé. J'ai installé avec succès le package de UP.

                            Sous HTML, j'ai écrit la première séquence avec UP :
                            Code HTML:
                                 <p class = "mchag">
                                       <?php echo $Aujourdhui; ?><br>
                                        Édité le 15 septembre 2009<br>
                                        mis &agrave; jour le {up jcontent_info=date-modif}
                                 </p>


                            Cependant le résultat obtenu n'est pas le résultat escompté.
                            Cliquez sur l'image pour l'afficher en taille normale

Nom : dataurl573651.png 
Affichages : 89 
Taille : 5,6 Ko 
ID : 2061474
                            J'ai loupé quelque chose, mais quoi ?

                            Bien cordialement.

                            Commentaire


                            • #15
                              Le plugin UP est-il bien activé dans les paramètres ?
                              Si le code se trouve dans un module personnalisé, la prise en charge des contenus n'est pas activé
                              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

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X