我遇到的问题是制作一个新组件我似乎无法让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的查看方法并导致错误。 (为了这个目的,我改变了组件的名称而不考虑它可能导致这种情况)
答案 0 :(得分:1)
在Joomla 2.5中,它使用前缀命名其MVC实例,然后使用方法命名。
像这样:
ComponentViewComponent或ComponentViewDefault
为此,它会在类名的字符串中查找单词视图。因此,如果您将其命名为,则会导致错误:
ComponentReviewViewComponentReview
在这种情况下,你可能觉得命名它审查不会造成伤害,但它确实包含里面的视图。 Joomla给出的错误通常也没有指出正确的方向。