Я создал специальный модуль для пожертвований, где я публикую некоторые данные формы из default.php в другой php-скрипт с именем checkout.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();
но получил ошибку:
Неустранимая ошибка: класс ‘JFactory’ не найден в /home/sitesosimple/public_html/modules/mod_idealdonatie/checkout.php в строке 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');
Но теперь я получаю совершенно новую ошибку:
Неустранимая ошибка: класс ‘JFile’ не найден в /home/sitesosimple/public_html/modules/mod_roknavmenu/lib/RokNavMenu.php в строке 73
По какой-то причине модуль roknavmenu не может найти класс JFile, хотя я ничего не изменил в этом файле php и ничего не сделал со скриптом file.php, который включает класс JFile.
Я уже скопировал новую версию file.php в папку / public_html / library / joomla / filesystem. Но безрезультатно.
Не уверен, что это правильное решение, но, похоже, это сработало.
Я удалил строку: $mainframe = JFactory::getApplication('site');
,
Других решений пока нет …