在自定义模块中为 JFactory 添加代码后找不到 JFile
JFile not found after adding code for JFactory in custom module
我创建了一个自定义捐赠模块,其中我 post 从 default.php 到另一个名为 checkout.php 的 php 脚本的一些表单数据。
现在我添加了一些代码以将数据插入 checkout.php
中的数据库
//setup db
$db =& JFactory::getDBO();
//create database table if needed
$createTable = "CREATE TABLE IF NOT EXISTS `#__idealdonaties` ( " .
"`id` int(10) NOT NULL, " .
"`donateur_id` varchar(40) NOT NULL, " .
"`naam` varchar(100) NOT NULL, " .
"`email` varchar(250), " .
"`bedrag` varchar(100) NOT NULL, " .
"`status` int(1) DEFAULT 0, .
PRIMARY KEY (`id`), KEY `donateur_id` (`donateur_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
$db->setQuery($createTable);
$db->query();
//insert data into table
$insertData = "INSERT INTO `#__idealdonaties` ( `donateur_id`, `naam`, `email`, `bedrag`, `status` ) " .
"VALUES (`" . $brq_invoicenumber . "`, `" . $cust_name . "`, `" . $cust_email . "`, `" . $brq_amount . "`, 0)";
$db->setQuery($insertData);
$db->query();
但出现错误:
Fatal error: Class 'JFactory' not found in /home/sitesosimple/public_html/modules/mod_idealdonatie/checkout.php on line 87
现在我通过添加代码修复了这个错误(经过一些搜索):
define( '_JEXEC', 1 );
define( 'JPATH_BASE', realpath(dirname(__FILE__).'/../../' ));
require_once ( JPATH_BASE .'/includes/defines.php' );
require_once ( JPATH_BASE .'/includes/framework.php' );
$mainframe = JFactory::getApplication('site');
但现在我得到一个全新的错误:
Fatal error: Class 'JFile' not found in /home/sitesosimple/public_html/modules/mod_roknavmenu/lib/RokNavMenu.php on line 73
出于某种原因,roknavmenu 模块无法找到 JFile Class,尽管我在那个 php 文件中没有做任何更改,也没有对 file.php 脚本执行任何操作,其中包括JFile class.
我已经将 file.php 的新版本复制到 /public_html/libraries/joomla/filesystem 文件夹中。但无济于事。
不确定这是否是正确的解决方案,但它似乎奏效了。
我删除了行:$mainframe = JFactory::getApplication('site');
.
我创建了一个自定义捐赠模块,其中我 post 从 default.php 到另一个名为 checkout.php 的 php 脚本的一些表单数据。 现在我添加了一些代码以将数据插入 checkout.php
中的数据库//setup db
$db =& JFactory::getDBO();
//create database table if needed
$createTable = "CREATE TABLE IF NOT EXISTS `#__idealdonaties` ( " .
"`id` int(10) NOT NULL, " .
"`donateur_id` varchar(40) NOT NULL, " .
"`naam` varchar(100) NOT NULL, " .
"`email` varchar(250), " .
"`bedrag` varchar(100) NOT NULL, " .
"`status` int(1) DEFAULT 0, .
PRIMARY KEY (`id`), KEY `donateur_id` (`donateur_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
$db->setQuery($createTable);
$db->query();
//insert data into table
$insertData = "INSERT INTO `#__idealdonaties` ( `donateur_id`, `naam`, `email`, `bedrag`, `status` ) " .
"VALUES (`" . $brq_invoicenumber . "`, `" . $cust_name . "`, `" . $cust_email . "`, `" . $brq_amount . "`, 0)";
$db->setQuery($insertData);
$db->query();
但出现错误:
Fatal error: Class 'JFactory' not found in /home/sitesosimple/public_html/modules/mod_idealdonatie/checkout.php on line 87
现在我通过添加代码修复了这个错误(经过一些搜索):
define( '_JEXEC', 1 );
define( 'JPATH_BASE', realpath(dirname(__FILE__).'/../../' ));
require_once ( JPATH_BASE .'/includes/defines.php' );
require_once ( JPATH_BASE .'/includes/framework.php' );
$mainframe = JFactory::getApplication('site');
但现在我得到一个全新的错误:
Fatal error: Class 'JFile' not found in /home/sitesosimple/public_html/modules/mod_roknavmenu/lib/RokNavMenu.php on line 73
出于某种原因,roknavmenu 模块无法找到 JFile Class,尽管我在那个 php 文件中没有做任何更改,也没有对 file.php 脚本执行任何操作,其中包括JFile class.
我已经将 file.php 的新版本复制到 /public_html/libraries/joomla/filesystem 文件夹中。但无济于事。
不确定这是否是正确的解决方案,但它似乎奏效了。
我删除了行:$mainframe = JFactory::getApplication('site');
.