的Joomla! 2.5不读取默认布局

时间:2013-06-17 17:38:33

标签: php joomla joomla2.5

我遇到的问题是制作一个新组件我似乎无法让joomla读取默认布局文件。这在组件的管理员和站点端都发生。将它与我创建的另一个组件进行比较,我认为没有合理的理由,因为两个组件都在同一个环境中工作。

我知道,由于网站和管理员使用相同的方法,将其修复为一个应该在另一个中修复它。所以这是现场的一面。

首先是view.html.php

<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import Joomla view library
jimport('joomla.application.component.view');

class ComponentViewComponent extends JView{
    function display($tpl = null){
        parent::display($tpl);
    }
}


?>

然后是tmpl / default.php

<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted Access');


// load tooltip behavior
JHtml::_('behavior.tooltip');


?>
hello

你可以看到它仍然是准系统,但是当我尝试在网站或管理员上访问它时,它会说“500:布局默认未找到”。

我现在花了超过n小时试图找出可能导致这种情况的错误。

虽然我怀疑这里的重要性是模型/控制器/构造函数

component.php(与实际组件的命名不同)

<?php
//No direct access to this file
defined('_JEXEC') or die ('Restricted access');

// import joomla controller library
jimport('joomla.application.component.controller');

// Get an instance of the controller prefixed by GoTireReviews
$controller = JController::getInstance('Component');

// Perform the Request task
$input = JFactory::getApplication()->input;
$controller->execute($input->getCmd('task'));

// Redirect if set by the controller
$controller->redirect();

?>

模型/ component.php

<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import Joomla modelitem library
jimport('joomla.application.component.modelitem');

class ComponentModelComponent extends JModelItem{

}


?>

Controller.php这样

<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');

// import Joomla controller library
jimport('joomla.application.component.controller');

class ComponentController extends JController{

}


?>

我可能会失明并失去一些东西,但是到目前为止,我花了很多时间尝试进行微调,似乎从头开始重新启动可能是一种耗时较少的方法。

另外注意该组件未命名为“component”,但我用它来使这个例子更具可读性。

编辑:

找出原因,这是因为我在组件的名称中使用了单词review。这样做会欺骗joomla的查看方法并导致错误。 (为了这个目的,我改变了组件的名称而不考虑它可能导致这种情况)

1 个答案:

答案 0 :(得分:1)

在Joomla 2.5中,它使用前缀命名其MVC实例,然后使用方法命名。

像这样:

ComponentViewComponent或ComponentViewDefault

为此,它会在类名的字符串中查找单词视图。因此,如果您将其命名为,则会导致错误:

ComponentReviewViewComponentReview

在这种情况下,你可能觉得命名它审查不会造成伤害,但它确实包含里面的视图。 Joomla给出的错误通常也没有指出正确的方向。