在Typo3 6.2上,我有一个扩展名:
我的目标是允许后端用户通过在任何页面上添加插件来创建事件,然后通过flexform(或类似)配置属性。
我注意到flexform中的数据存储在tt_content表的数据库中,位于“pi_flexform”列中...但我想要的是使用我的实体系统而不创建任何后端模块!
我想这是可能的,因为一些现有的扩展是以这种方式开发的(powermail ...)
编辑:关于我的问题的更多代码/细节:
我的实体“事件”:
<?php
namespace MyCompany\MyCompanyevents\Domain\Model;
class Event extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
{
/**
* name
*
* @var string
*/
protected $name = ''
/**
* eventdate
*
* @var integer
*/
protected $eventdate = 0;
/**
* eventlocation
*
* @var string
*/
protected $eventlocation = '';
/**
* eventdescription
*
* @var string
*/
protected $eventdescription = '';
// ALL the setters and the getters
}
?>
我的控制器:
<?php
namespace MyCompany\MyCompanyevents\Controller;
class EventController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController
{
/**
* eventRepository
*
* @var \MyCompany\MyCompanyevents\Domain\Repository\EventRepository
* @inject
*/
protected $eventRepository = NULL;
/**
* action list
*
* @return void
*/
public function listAction() {
$events = $this->eventRepository->findAll();
$this->view->assign('events', $events);
}
// Other Actions generated by the Extension builder : add, edit, update, delete, show
}
?>
我的插件有效,我知道如何链接flexform文件。
通过一些TCA配置,后端用户可能已经在任何他们想要的地方逐个创建事件。我正在寻找的是将flexform文件链接到我的插件,这将允许用户创建一个事件并将所有细节(名称,位置等)直接填充到插件中。
这样,该插件应如下所示:
..并保存插件会在数据库中保存一个新的Event实例。