Je veux charger du JS mais uniquement sur la page où cela est nécessaire.
J'essaie d'utiliser l'alias de l'article actif pour déterminer cela.
Mon code dans le fichier Component.php est:
$path = &JFactory::getURI()->getPath();
$length = strlen($path);
for ($i = $length; $i >= 0 ; $i--)
if ($path[$i] == '/')
return substr($path, $i + 1, $length - $i - 1);
$alias = $path;
et cette partie dans la <tête>:
if ($alias == "elearning")) { ?>
<script src="/media/system/js/ddslick.js" type="text/javascript"></script>
<?php } ?>
Ça ne semble pas fonctionner.
Des suggestions où je vais mal?
Une possibilité consiste à modifier légèrement la disposition pour autoriser davantage de contrôles de modèle. Ce n'est pas directement lié à l'obtention du pseudonyme de l'article, mais à une autre approche.
Pour ce faire, ajoutez ce champ dans le fichier templateDetails.xml
<field name="htmllayout" type="list" default="center"
label="HTML Layout"
description="Dynamic layout style from index.php"
filter="Word"
>
<option value="main">main</option>
<option value="raw">Raw</option>
</field>
Vous pouvez ajouter autant d’options que vous le souhaitez, j’en ai 2 à titre d’exemple. Cela créera un paramètre dans le gestionnaire de modèles. L'ouverture du modèle dans le gestionnaire de modèles devrait également vous permettre de modifier ce paramètre. La clé consiste à laisser le modèle actuel en mode principal, puis à le dupliquer (il ne fait que dupliquer les paramètres, pas les fichiers). Dans ce deuxième modèle, vous pouvez modifier la présentation HTML et utiliser l'onglet "Affectation de menu" pour spécifier quelle page peut l'utiliser. Ainsi, dans le cas d'un alias d'un article, tant que l'article est associé à un élément de menu (probablement avec le même alias), il devrait être assez facile d'affecter ce modèle à l'alias spécifié (et à tous les autres).
Donc, fondamentalement, vous aurez un modèle spécifié pour une utilisation uniquement avec des pages spécifiques.
Cela nécessite également quelques modifications du index.php
Également.
ajoutez ce qui suit en haut du fichier, dans le premier bloc php:
$htmllayout = $this->params->get('htmllayout');
Ensuite, partout où vous devez spécifier quelque chose de différent pour une mise en page spéciale, procédez comme suit:
<?php if($htmllayout=='LAYOUTNAME'): ?>
anything you need here
<?php endif; ?>
Si vous parlez de l'alias d'article, appelez le modèle de contenu ou lisez-le à partir de la base de données.
Si vous parlez de l'alias dans l'URL, il n'est pas facile de l'obtenir: Joomla a tellement de façons de le générer: ce sera différent si vous arrivez à l'article:
Et ceci ne concerne que la dernière section du pseudonyme; la première partie (ou "chemin") dépend de la navigation qui vous a conduit à l'article.
Pour vous donner une idée de la complexité de cette opération, une extension SEF grand public appelle le client afin d'obtenir le pseudonyme, car ils ont de toute évidence découvert qu'il n'était pas fiable de générer un pseudonyme dans le backend.
En bout de ligne: oubliez l'alias.
Manières autour de ceci: $ input = JFactory :: getApplication () -> input;
J'espère que ça répond à ta question.
Si vous souhaitez charger un JS uniquement sur certaines pages, essayez d’utiliser Jumi. Ce wokerd pour moi. http://extensions.joomla.org/extensions/core-enhancements/coding-a-scripts-integration/custom-code-in-content/102