web-dev-qa-db-fra.com

Importation du CMS Joomla dans un script personnalisé PHP (en dehors du dossier racine)

J'essaie d'importer Joomla CMS dans un script personnalisé PHP par ceci:

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

Mais cela ne semble fonctionner que lorsque le script PHP est placé dans le répertoire racine de l'installation de Joomla. Si je déplace le script dans un autre répertoire, l'erreur suivante est générée:

Warning: require_once(C:\xampp\htdocs\newfolder/includes/defines.php):
failed to open stream: No such file or directory in C:\xampp\htdocs\newfolder\index.php on line 56

Fatal error: require_once(): Failed opening required
 'C:\xampp\htdocs\newfolder/includes/defines.php' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\newfolder\index.php on line 56

Je teste sur Xampp. Dans mon cas, Joomla est installé dans le répertoire racine " htdocs " ( http: // localhost ) et le PHP script est placé dans un répertoire appelé newfolder ( http: //localhost/newfolder/index.php ).

L'aide serait appréciée.

2
saibbyweb

C'est parce que le JPATH_BASE La valeur doit être mise à jour lorsque vous avez déplacé le fichier dans un nouveau répertoire.

Alors remplacez ceci:

define('JPATH_BASE', realpath(dirname(__FILE__).'/')); 

avec ça:

define('JPATH_BASE', realpath(dirname(__FILE__).'/../')); 
3
Lodder