2009-07-28 60 views
0

我对Joomla非常陌生,我从创建数据库和创建组件的教程开始。我创建了一个名为com_joomlabook的文件夹。在该文件夹中有2个文件。Joomla组件中的致命错误

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

你只需要通过 'HTML',以JApplicationHelper::getPath,例如:

JApplicationHelper::getPath('html')

仅供参考,你可以看看这里:JApplicationHelper::getPath

-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