2010-03-02 7 views
1

Lorsque j'inclus un script PHP via Jumi, il semble rompre le mot-clé global. Exemple:Jumi (plugin Joomla) briser mot-clé PHP global

<?php 

$a = 5; 

function foo() 
{ 
     global $a; 
     if (isset($a)) 
       echo $a; 
     else 
       echo '$a is not set'; 
} 

foo(); 

?> 

Quand je lance ce script PHP (nommé test.php) par lui-même, il imprime correctement 5. Lorsque je le lance inclus via Jumi dans un article Joomla contenant uniquement ceci:

{jumi test.php}{/jumi} 

Il imprime $a is not set.

Est-ce un bug dans Jumi ou Joomla, ou y a-t-il un moyen (non) documenté de le contourner?

Lorsque j'inclus un script PHP via Jumi, il semble rompre le mot-clé global. Exemple:

<?php 

$a = 5; 

function foo() 
{ 
     global $a; 
     if (isset($a)) 
       echo $a; 
     else 
       echo '$a is not set'; 
} 

foo(); 

?> 

Quand je lance ce script PHP (nommé test.php) par lui-même, il imprime correctement 5. Lorsque je le lance inclus via Jumi dans un article Joomla contenant uniquement ceci:

{jumi test.php}{/jumi} 

Il imprime $a is not set.

Est-ce un bug dans Jumi ou Joomla, ou y a-t-il un moyen (non) documenté de le contourner?


MISE À JOUR: Si je marque un $ comme mondial dans le cadre en haut du script:

<?php 

global $a; 
$a = 5; 
function foo() 
{ 
     global $a; 
     if (isset($a)) 
       echo $a; 
     else 
       echo '$a is not set'; 
} 
foo(); 

?> 

test.php fonctionne correctement à la fois géré par lui-même et inclus via Jumi. Ma meilleure estimation est que les scripts Jumi sont inclus dans le contexte de la fonction, pas dans le contexte global.

+0

Votre solution global-at-top ne fonctionne pas pour moi (J1.5/jumi 1.2.0) :( –

+0

Le marquez-vous globalement à l'intérieur et à l'extérieur? –

Répondre

1

Vous pouvez essayer une approche peu différente like this, car je crois que les limites Joomla portée par défaut

0

Travailler avec Jumi est très facile à joomla car il est pris en charge 2,5, 3.0 versions
J'ai une solution:

  1. Installez Jumi.
  2. Accédez au tableau de bord (panneau d'administration). Cliquez sur Composants -> Nouveau.
  3. Entrer le titre.
  4. Dans un script personnalisé, vous pouvez mettre votre PHP/code JavaScript directement ou
  5. Vous pouvez mettre un nom de fichier, il en utilisant la syntaxe Jumi: {jumi[directory/filename.php]}

Mais rappelez-vous de créer le menu pour en sorte que il peut apparaître sur onclick événement de menu.