exécuter du code PHP dans un article

🆙 php : permet d'exécuter du code PHP dans un article.

Cliquer pour lire la documentation

Exemples :
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é'; }
@author: LOMART @version: UP-1.0 @license: GNU/GPLv3 @tags: Expert
  • php: le code PHP

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

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 : 20-04-2024 06:03:42

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 : 20/07/2024

Le navigateur utilisateur

{up php=
$client = JFactory::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=
$lang = JFactory::getLanguage();
echo $lang->getTag();
}
</p>

Mon language est : fr-FR

L'utilisateur en cours

<p>Sur ce site, je suis connu comme 
{up php=
$user = JFactory::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 ******

Prefset

Un jeu d'options (prefset) permet au webmaster de définir un comportement pour l'action.

La section dans prefs.ini

[user]
php="$user = JFactory::getUser();echo  ($user->guest!=1) ? $user->name : 'invité';"
Le shortcode

Bonjour {up php=user}

Il suffit d'indiquer le nom du jeu d'options comme argument principal de l'action.

Le résultat

Bonjour invité

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=echo JURI::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']);}

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}

 

Pour info, cette page utilise 14 action(s) :
upactionslist (1) readmore (1) csv2def (1) modal (1) php (7) flexbox (1) icon (1) jcontent-info (1)