这是T3 v7.7.25,我尝试构建我的第一个扩展。我的想法是在后端有一个可选择的内容元素,其html模板文件除了php回声之外什么都不做。
我的emconf:
<?php
$EM_CONF[$_EXTKEY] = [
'title' => 'Robert PHP',
'description' => 'An extension to use PHP.',
'category' => 'plugin',
'author' => 'John Doe',
'author_company' => 'John Doe Inc.',
'author_email' => 'john.doe@example.com',
'state' => 'alpha',
'clearCacheOnLoad' => true,
'version' => '0.0.0',
'constraints' => array(
'depends' => array(
'extbase' => '6.0',
'fluid' => '6.0',
'typo3' => '6.0',
)
)
];
我的ext_tables:
<?php
if(!defined('TYPO3_MODE')) die ('Access denied.');
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
$_EXTKEY,
'Robert',
'Beschreibung fuer Auswahl'
);
我的localconf:
<?php
if(!defined('TYPO3_MODE')) die ('Access denied.');
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
$_EXTKEY,
'Robert',
array(
'Php' => 'include'
),
array()
);
我的控制器:
<?php
class Tx_RobertPhp_Controller_PhpController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController
{
public function includeAction() {
}
}
我的模板:
<?php
echo "echo aus der ext";
?>
我无法在后端选择插件,因此registerPlugin必定存在问题。但是,由于我没有看到任何错误消息,我发现很难找到问题吗?
答案 0 :(得分:0)
首先,您无法在Fluid模板中使用PHP标记。 Extbase Controller中的操作是使用流体模板。
Fluid模板必须位于正确的位置:Resources/Private/Templates/[ControllerName]/[ActionName].html
。在您的情况下,它应该是Resources/Private/Templates/Php/Include.html
。
请使用名称空间,它是在PHP 5.3中引入的。
只需查看其他扩展程序,例如博客示例。
答案 1 :(得分:0)
TYPO3前端插件已在ext_localconf.php
文件中注册。如果你想添加Backend模块,那么你需要在ext_tables.php
中添加registerPlugin,否则这不是必需的。
您的ext_localconf.php
文件插件配置如下所示。
<?php
defined('TYPO3_MODE') || die('Access denied.');
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'MyVendor.extensionkey',
'plugin_name',
array(
'Controller' => 'action',
),
// non-cacheable actions
array(
'Controller' => '',
)
);
您还需要根据上述答案指定流体模板路径。有关extbase扩展的更多详细信息,请Extbase Extension