所以我试图创建我的第一个组件,为此我创建了以下控制器:
<?php
defined('_JEXEC') or die ('Access denied!');
/**
* Created by JetBrains PhpStorm.
* User: Marc
* Date: 18-08-13
* Time: 02:18
* To change this template use File | Settings | File Templates.
*/
jimport( 'joomla.application.component.controller' );
class MyCompController implements JController{
function create(){
echo "Welcome to create";
}
function delete (){
$id =JRequest::getVar('id');
echo "you want to delete "-$id;
}
}
现在我对joomla不是很熟悉,只能找到2.5的文档
$controller = JController::getInstance('MyComp');
是获取控制器实例的相关方法。
我查看了界面,JController interface没有提供getInstance方法因为我试过这个:
$controller = JController::getApplication('MyComp');
但没有运气。
那你怎么得到控制器?
答案 0 :(得分:3)
您的组件具有与组件同名的引导脚本。在您的情况下,那将是mycomp.php
。只要出现option=mycomp
的请求,Joomla就会包含该文件。在那里你设置并打电话给你的控制器:
$controller = new MyCompController;
$controller->execute(JFactory::getApplication()->input->getCmd('task'));
$controller->redirect();
答案 1 :(得分:1)
我不确定你想要完成什么。但我认为你需要的是Joomla 2.5 tutorial。
您需要有一个名为MyComp.php
的文件,就像他们在上面的链接中定义HelloWorld.php
一样。
就是这样。然后,当您使用某些代码创建视图时,请说出一个表单:
<form action='index.php?option=com_MyComp&task=delete'>
....
</form>
这将访问控制器的删除功能代码。
另一方面,使用Component Creator创建组件所需的模板可能更容易。很好的免费在线工具,可以构建模板,所有孩子都可以使用它。