web-dev-qa-db-fra.com

Exécuter un script php personnalisé sur le site Joomla

Joomla est nouveau pour moi et je crée un site Web de test pour en savoir plus.Pour le site que j'ai créé, je souhaite créer des scripts php personnalisés, qui doivent être appelés principalement à partir d'éléments javascript dans les pages du navigateur et renvoyer des résultats spécifiques en fonction de informations de l'utilisateur.

Donc, pour commencer, j'ai créé un script php dans le répertoire parent du site Joomla, et des impressions aléatoires ont fonctionné. Ensuite, j'ai essayé d'utiliser certains éléments des bibliothèques Joomla.

Malgré mon objectif final, depuis que j'ai rencontré des problèmes, j'ai essayé de faire quelque chose de simple, tel que l'impression du nom du site:

<?php $config = JFactory::getConfig();
echo 'Site name is ' . $config->get( 'sitename' ); ?>  

C'est l'erreur que j'obtiens:

Fatal error: Class 'JFactory' not found in /home/ubuntu/workspace/JP-27/testphp.php on line 1

Généralement, chaque fois que j'essaie d'utiliser un élément des bibliothèques Joomla, les éléments ne sont pas trouvés. Aucun conseil?

1
Noob Doob

Les scripts personnalisés qui ne sont pas associés à une extension Joomla ou au cœur nécessitent l'importation de l'API Joomla.

Vous pouvez le faire en ajoutant ce qui suit en haut de votre fichier personnalisé PHP:

define( '_JEXEC', 1 );
define('JPATH_BASE', '../');
require_once ( JPATH_BASE .'/includes/defines.php' );
require_once ( JPATH_BASE .'/includes/framework.php' );
$app = JFactory::getApplication('site');

Veuillez noter que vous devrez peut-être modifier define('JPATH_BASE', '../'); sur la deuxième ligne, en fonction de l'emplacement de votre fichier personnalisé PHP) par rapport à la racine de votre site Joomla.

Une fois importé correctement, vous ne recevrez pas l'erreur que vous avez mentionnée.

J'espère que cela t'aides

2
Lodder