我是Joomla的新手,我开始创建数据库和创建组件的教程。我创建了一个名为com_joomlabook的文件夹。在该文件夹中有2个文件。
joomlabook.php:
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
require_once (JApplicationHelper::getPath('joomlabook_html'));
$document=&JFactory::getDocument();
$document->setTitle('Example component Joomla! book');//set the page title
switch(JRequest::getCmd('task'))
{
case 'free':
// more display possibilities
break;
default:
JoomlabookController::listJoomlabook();
break;
}
class JoomlabookController
{
function listJoomlaBook()
{
$db =& JFactory::getDBO();
$db->setQuery('SELECT * from #_joomla_book');
$rows = $db->loadObjectList();//get the results from the table
Joomlabookdetails::view($rows);
}
}
我将该文件放在与joomlabook.html.php相同的目录中。在这个文件中,我有一个包含方法的类来查看我从joomlabook.php文件中检索到的结果。
如:
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
class Joomlabookdetails
{
function view($rows)
{
foreach ($rows as $row)
{
echo $row->text;
}
}
}
但是当我在浏览器中使用:
运行它时http://localhost/joomla/Joomla_1.5.7-Stable-Full_Package/administrator/index.php?option=com_joomlabook
我收到错误:
Fatal error: require_once() [function.require]: Failed opening required '' (include_path='.:/usr/share/php:/usr/share/pear')
in /home/ntdg/public_html/joomla/Joomla_1.5.7-Stable-Full_Package/administrator/components/com_joomlabook/joomlabook.php
on line 6
这发生在getPath()调用上。谁能告诉我为什么?
答案 0 :(得分:0)
您只需将'html'传递给JApplicationHelper::getPath
,例如:
JApplicationHelper::getPath('html')
供参考,您可以在此处查看:JApplicationHelper::getPath
答案 1 :(得分:-1)
JApplicationHelper现已在J3.0中弃用
require_once(JApplicationHelper::getPath('admin_html'));
似乎可以使用:
适用于管理员
require_once(JPATH_COMPONENT.DIRECTORY_SEPARATOR.'admin'.DIRECTORY_SEPARATOR.'admin.html.php');
为前端
require_once(JPATH_COMPONENT.DIRECTORY_SEPARATOR.'admin.html.php');
将您的文件admin.componentname.php重命名为componentname.php
以上步骤使非MVC组件在J3.x中运行