Load Joomla 3.x Framework and Modules in external PHP file

…衆ロ難τιáo~ 提交于 2019-12-29 07:53:06

问题


I am migrating my Joomla 2.5 site to Joomla 3.3.

Now I'm struggling with loading the joomla framework and displaying a module in a phpbb-Template. Loading the Joomla framework worked fine in Joomla 2.5 with this code:

define( '_JEXEC', 1 );
define('JPATH_BASE', '/var/customers/webs/tf2swiss/joomlasite');
define( 'DS', DIRECTORY_SEPARATOR );
require_once('../configuration.php');
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
require_once ( JPATH_BASE .DS.'libraries'.DS.'joomla'.DS.'factory.php' );
require( JPATH_LIBRARIES. '/import.php');
// Joomla! library imports
jimport( 'joomla.environment.uri' );
jimport( 'joomla.user.user');
jimport('joomla.application.module.helper');

/* Create the Application */
$mainframe =& JFactory::getApplication('site');
jimport('joomla.plugin.helper');

But I doesn't work in Joomla 3.x now. The page stopps loading where this code is. Using PHP in phpbb template files is enabled in the Security options.

Does anyone know how to load the joomla 3.x framework in external files?


回答1:


The following works perfectly for me:

define('_JEXEC', 1);
define('JPATH_BASE', '../');
require_once JPATH_BASE . 'includes/defines.php';
require_once JPATH_BASE . 'includes/framework.php';

// Create the Application
$app = JFactory::getApplication('site');

Try changing this line which you currently have to a relative path as shown above. You may been to change ../ according to where you have your Joomla root in relation to your external file.

define('JPATH_BASE', '/var/customers/webs/tf2swiss/joomlasite');

To test if it's working, simply use something like this:

var_dump($app);

If you see data being shown, then your have successfully imported the framework



来源:https://stackoverflow.com/questions/23937651/load-joomla-3-x-framework-and-modules-in-external-php-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!