Comment récupérer la variable du LIEN A de l'article?

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

  • [RÉGLÉ] Comment récupérer la variable du LIEN A de l'article?

    Bonjour à tous,

    Je souhaite récupérer la variable du LIEN A de mon article pour l'utiliser dans un autre script.
    J'ai beau chercher dans les sites qui présentent la liste des variables joomla, je ne trouve pas.
    Quelqu'un pour m'aider?
    Ce lien apparait dans la classe "content-links-a"
    Merci
    Dernière édition par jimmy42 à 04/09/2019, 08h52
    Jimmy 42

  • #2
    Voilà ce que j'ai dans mon script (module owl carousel)

    <figure class="item_img img-intro img-intro__<?php echo htmlspecialchars($params->get('intro_image_align')); ?>">
    <a href="<?php echo $item->link;?>">
    <img src="<?php echo htmlspecialchars($item_images->image_intro); ?>" alt="<?php echo htmlspecialchars($item_images->image_intro_alt); ?>">
    <?php if ($item_images->image_intro_caption): ?>
    <figcaption><?php echo htmlspecialchars($item_images->image_intro_caption); ?></figcaption>
    <?php endif; ?>
    </a>
    </figure>


    Or moi je ne veux pas que lorsque l'on clique sur l'image, le lien nous renvoi vers l'article complet mais vers le LIEN A défini dans l'article.
    EN rouge l'emplacement où je dois mettre la variable LIEN A
    Jimmy 42

    Commentaire


    • #3
      Bonjour, essayez
      $item->urls->urla
      Je n'en suis pas sûr. Sinon un print_r du $item devrait vous dévoiler tout l'array !
      I love overrides
      -------
      UX/UI Designer - Grenoble - greendog.fr

      Commentaire


      • #4
        dans le fichier default_links.php on as ceci :
        Code:
                    $urlarray = array(
                    array($urls->urla, $urls->urlatext, $urls->targeta, 'a'),
                    array($urls->urlb, $urls->urlbtext, $urls->targetb, 'b'),
                    array($urls->urlc, $urls->urlctext, $urls->targetc, 'c')
                    );

        Commentaire


        • #5
          Envoyé par wabaw Voir le message
          Bonjour, essayez
          $item->urls->urla
          Je n'en suis pas sûr. Sinon un print_r du $item devrait vous dévoiler tout l'array !
          J'ai essayé mais ça me renvoi sur la page d'accueil
          Jimmy 42

          Commentaire


          • #6
            $item_url->urls->urla
            $item_url->urls->urla>targeta
            $item->urls->urla->targeta

            J'en essaie pas mal... Tout me renvoie sur la home
            Jimmy 42

            Commentaire


            • #7
              Je vois que ma variable est écrit en noir au lieu de bleu je pense qu'il faut la déclarer en amont, non?
              Cliquez sur l'image pour l'afficher en taille normale

Nom : Capture.JPG 
Affichages : 73 
Taille : 5,1 Ko 
ID : 2005918
              Dernière édition par jimmy42 à 02/09/2019, 11h52
              Jimmy 42

              Commentaire


              • #8
                Bonjour,

                il ne faut pas oublier également que le stockage des liens A B C est au format json. (comme indiqué dans default_link.php )

                Code PHP:

                $urls 
                json_decode($this->item->urls); 
                Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

                Commentaire


                • #9
                  Envoyé par daneel Voir le message
                  Bonjour,

                  il ne faut pas oublier également que le stockage des liens A B C est au format json. (comme indiqué dans default_link.php )

                  Code PHP:

                  $urls 
                  json_decode($this->item->urls); 
                  Ok mais qu'est-ce qui change du coup?
                  Jimmy 42

                  Commentaire


                  • #10
                    Cela veux dire qu'il faut ajouter la ligne donnée par daneel.
                    Certaines partie du code d'un article sont encodées, comme les images ou les liens.
                    Comme par exemple pour un lien qui est constitué de 3 parties, le texte porteur du lien, l'URL et la target.
                    De la sorte cela doit marcher.
                    I love overrides
                    -------
                    UX/UI Designer - Grenoble - greendog.fr

                    Commentaire


                    • #11
                      J'ai donc ajouté le script mais le site est en erreur page blanche :Using $this when not in object context
                      Voici le code de ma page :

                      <?php
                      /**
                      * @package Joomla.Site
                      * @subpackage mod_owl_carousel
                      *
                      * Copyright Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
                      * @license GNU General Public License version 2 or later; see LICENSE.txt
                      */

                      defined('_JEXEC') or die;
                      $item_images = json_decode($item->images);
                      require_once (JPATH_BASE.'/components/com_content/helpers/icon.php');
                      jimport( 'joomla.filter.filteroutput' );
                      if($layout!='edit'){
                      $canEdit = $item->params->get('access-edit');
                      if ($canEdit) : ?>
                      <!-- Icons -->
                      <?php if ($canEdit || $item->params->get('show_print_icon') || $item->params->get('show_email_icon')) : ?>
                      <?php echo JFilterOutput::ampReplace(html_entity_decode(JLayo utHelper::render('joomla.content.icons', array('params' => $item->params, 'item' => $item, 'print' => false)))); ?>
                      <?php endif;
                      endif;
                      }
                      $urls = json_decode($this->item->urls);
                      $item_heading = $params->get('item_heading', 'h4');

                      if ($params->get('item_title')) : ?>
                      <<?php echo $item_heading; ?> class="item_title item_title__<?php echo $params->get('moduleclass_sfx'); ?>">
                      <?php if ($params->get('link_titles') && $item->link != '') : ?>
                      <a href="<?php echo $item->link;?>"><?php echo $item->title;?></a>
                      <?php else : ?>
                      <?php echo $item->title; ?>
                      <?php endif; ?>
                      </<?php echo $item_heading; ?>>
                      <?php endif;

                      if (!$params->get('intro_only')) :
                      echo $item->afterDisplayTitle;
                      endif;

                      if ($params->get('show_tags', 1) && !empty($item->tags)) :
                      $item->tagLayout = new JLayoutFile('joomla.content.tags');

                      echo $item->tagLayout->render($item->tags->itemTags);
                      endif;

                      if ($params->get('published')) : ?>
                      <time datetime="<?php echo JHtml::_('date', $item->publish_up, 'Y-m-d H:i'); ?>" class="item_published">
                      <?php echo JHtml::_('date', $item->publish_up, JText::_('DATE_FORMAT_TPL1')); ?>
                      </time>
                      <?php endif;

                      echo $item->beforeDisplayContent;

                      if ($params->get('intro_image')):
                      if (isset($item_images->image_intro) and !empty($item_images->image_intro)) :
                      $imgfloat = (empty($item_images->float_intro)) ? $params->get('float_intro') : $item_images->float_intro; ?>
                      <!-- Intro Image -->
                      <figure class="item_img img-intro img-intro__<?php echo htmlspecialchars($params->get('intro_image_align')); ?>">

                      <a href="<?php echo $urls->urla;?>">
                      <img src="<?php echo htmlspecialchars($item_images->image_intro); ?>" alt="<?php echo htmlspecialchars($item_images->image_intro_alt); ?>">
                      <?php if ($item_images->image_intro_caption): ?>
                      <figcaption><?php echo htmlspecialchars($item_images->image_intro_caption); ?></figcaption>
                      <?php endif; ?>
                      </a>
                      </figure>
                      <?php endif;
                      endif;

                      echo $item->introtext; ?>

                      <!-- Read More link -->
                      <?php if (isset($item->link) && $item->readmore != 0 && $params->get('readmore')) :
                      $readMoreText = JText::_('TPL_COM_CONTENT_READ_MORE');
                      if ($item->alternative_readmore){
                      $readMoreText = $item->alternative_readmore;
                      }
                      echo '<a class="btn btn-info readmore" href="'.$item->link.'"><span>'. $readMoreText .'</span></a>';
                      endif; ?>
                      Jimmy 42

                      Commentaire


                      • #12
                        Bonjour,

                        En programmation objet, $this correspond à l'objet sur lequel vous êtes. Donc, s'il ne le reconnait pas c'est que vous n'êtes pas sur un objet...(voir https://www.php.net/manual/fr/language.oop5.basic.php)

                        Sur votre code, en amont, vous avez $item->images qui semble fonctionner. Pourquoi avez-vous mis $this->item ?

                        Pascal
                        Dernière édition par pmleconte à 03/09/2019, 08h32
                        If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

                        Commentaire


                        • #13
                          J'ai ajouté la ligne de code donnée par daneel. J'aurais peut-être dû la modifier avant?
                          Que me conseillez-vous?
                          Comme vous l'avez vu, moi et la programmation ça fait 2...
                          Jimmy 42

                          Commentaire


                          • #14
                            J'ai réussiiiiiiiiiii !!!!!!!!
                            Voici le code que j'ai inséré en amont : $urls = json_decode($item->urls);
                            Merci à tous pour vos précieux conseils !!!
                            Jimmy 42

                            Commentaire


                            • #15
                              Avec un peu de persévérance et quelques conseils, on finit par y arriver....

                              Bonne continuation,

                              Pascal

                              PS: pensez à mettre cette discussion sur "Réglé"
                              If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X