
exécuter du code PHP dans un article
date actuelle :
{up php=echo date('d-m-Y H:i:s');}langage :
{up php=echo JFactory::getLanguage()getTag(); }nom user :
{up php= $user = JFactory::getUser(); echo ($user->guest!=1) ? $user->username : 'invité'; }- php: le code PHP
- authorized-functions: liste des exemptions à la liste des fonctions bannies. séparateur virgule
Style CSS
- tag = div: balise utilisée pour les classes, styles et id si class ou style définis
- id: identifiant
- class: classe(s) ou style pour le bloc retour'
- style: classe(s) ou style pour le bloc retour'
Divers
- filter: conditions. Voir doc action filter (v1.8)
- Version 1.8
- Version 2.8
- tag : permet de choisir la balise qui sera utilisée pour porter les classes et styles
- Version 5.1
- ajout de l'option authorized-functions pour permettre ponctuellement l'utilisation d'une fonction interdite
- suppression des espaces durs (issus de copier-coller) qui bloquent l'évaluation du code
l'action PHP permet d'exécuter du code PHP dans un article.
Ci-dessous, quelques exemples d'utilisation.
La date
<p>Bonjour, nous sommes le : {up php=echo date('d-m-Y H:i:s');}</p>
Bonjour, nous sommes le : 14-01-2026 01:22:04
Calcul sur date
<p>Dans 3 mois, nous serons le : {up php=echo date('d/m/Y', strtotime("+3 Months"));}</p>
Dans 3 mois, nous serons le : 14/04/2026
Le navigateur utilisateur
{up php=
use Joomla\CMS\Factory;
$client = Factory::getApplication()->client;
echo $client->userAgent;
echo ($client->mobile) ? ' sur mobile petit écran' : ' sur grand écran';
}
CCBot/2.0 (https://commoncrawl.org/faq/) sur grand écran
La langue du navigateur
<p> Mon language est :
{up php=
use Joomla\CMS\Factory;
$lang = Factory::getLanguage();
echo $lang->getTag();
}
</p>
Mon language est : fr-FR
L'utilisateur en cours
<p>Sur ce site, je suis connu comme
{up php=
use Joomla\CMS\Factory;
$user = Factory::getUser();
echo ($user->guest!=1) ? $user->name : 'invité';
}</p>
Sur ce site, je suis connu comme invité
Sécurité
Vous êtes responsable de la syntaxe du PHP fourni. Certaines fonctions sont interdites. Si vous essayez de les utiliser, vous aurez le droit à un beau message.
<p>Test avec fonction interdite : {up php=mkdir('foo');}</p>
Test avec fonction interdite : ****** INVALID CODE IN PHP : mkdir ******
Depuis la version 5.1, il est possible, sous votre responsabilité, d'autoriser des fonctions interdites en les ajoutant séparées par des virgules dans l'option authorized-functions
Prefset
Un jeu d'options (prefset) permet au webmaster de définir un comportement pour l'action.
[user]
php="$user = use Joomla\CMS\Factory; Factory::getUser();echo ($user->guest!=1) ? $user->name : 'invité';"Bonjour {up php=user}
Il suffit d'indiquer le nom du jeu d'options comme argument principal de l'action.
⚠ Attention, le code doit être sur une seule ligne et entre guillemets.
Des petits scripts bien pratiques
Vous avez des scripts utiles, partagez-les en nous envoyant un message ...
- Retour sur la page d'accueil, même en localhost avec le site dans un sous-dossier
-
<a href="/{up php=use Joomla\CMS\Uri\Uri; echo Uri::root();}"> - Nombre de jours avant une date
-
{up filter | datemax=YYYYMMJJ} <p class="b tc t-rouge">Plus que <span class="fs200">{up php=echo abs(ceil((strtotime('YYYYMMJJ')-time())/86400));}</span> jours à patienter</p> {/up filter}
- Adresse IP du visiteur
-
{up php=echo (!empty($_SERVER['HTTP_CLIENT_IP'])) ? $_SERVER['HTTP_CLIENT_IP'] : ((!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']);}
- La version PHP du serveur
-
{up php=echo 'Version de PHP : ' . phpversion();}
Depuis la version 5.2, vous pouvez utiliser l'action get pour l'url de la page d'accueil, l'IP du visiteur ou la version PHP.
Option tag
Avec la nouvelle option tag, nous pouvons écrire le dernier exemple comme ceci :
{up div=b tc t-rouge}Plus que {up php=echo abs(ceil((strtotime('YYYYMMJJ')-time())/86400)); | tag=span | class=fs200} jours à patienter{/up div}
upactionslist (1) readmore (1) csv2def (1) modal (1) php (7) flexbox (1) icon (1) div (1) jcontent-info (1)
