2017-08-13 3 views
2

J'ai une liste avec beaucoup d'articles. Lorsque l'utilisateur sélectionne les éléments dirigera l'utilisateur vers la page de l'article qui ont plusieurs image et texte. Le nom de l'image à afficher et le texte à afficher dépendent de la valeur transmise.Joomla - Comment passer et récupérer le paramètre de l'URL dans l'article

J'ai implémenté cette fonction auparavant avec la page HTML et java en utilisant la chaîne de requête. La valeur de la chaîne de requête utilisée pour donner à l'image la valeur de l'attribut 'src' en utilisant l'attribut 'id' pour trouver cette image. Je voudrais mettre en place la même fonction avec joomla.
J'ai utilisé le code suivant dans Java avant Dans URL /class.html?id=2gb

</script> 
     <script type="text/javascript"> 
      window.onload = func 
      function func() { 
       var className = getParameterByName('id'); 
       document.getElementById("classimage").src = "../images/banner/" + className + ".jpg"; 
       document.getElementById("className").innerHTML = className; 
       document.getElementById("className").href = "class.html?id=" + className 
         } 
      function getParameterByName(name) { 
       name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); 
       var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), 
        results = regex.exec(location.search); 
       return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 
      } 
    </script> 

En HTML

<img id="classimage" > 
<a id="className" href=""></a> 

Répondre

0

vous pouvez d'abord créer un override de votre modèle de l'article

TEMPLATE_NAME/html/EXTENSION_NAME/VIEW_NAME/FILE_NAME.php

dans votre cas ce serait:

TEMPLATE_NAME/html/com_content/article/default.php

une fois que vous avez fait cela, alors son temps à utiliser jinput

comprennent cette méthode JFactory en haut de votre fichier default.php modèle surchargée (TEMPLATE_NAME/html/com_content/article/default.php):

$jinput = JFactory::getApplication()->input; 
$variable = $jinput->get('varname', 'default_value', 'filter'); 

dans votre cas, il devrait être: $variable = $jinput->get('id', 'default_value', 'STRING');

maintenant vous pouvez utiliser $variable partout où vous voulez montrer.

PS: javascipt cane être mis en cache et non suggestible. J'espère que cela aide, bon codage.