在clean typo3包中安装我们的扩展时,没有执行创建和更新查询

问题描述 投票:1回答:1

我们通过以下方式创建了主题扩展:

  1. 从站点包构建器(https://sitepackagebuilder.com/new/)下载扩展包
  2. 下载并安装TYPO3 V8.7.9软件包。
  3. 然后将扩展包放在文件夹typo3conf / ext /下,并在Extension部分中安装扩展包
  4. 安装了MASK和Power邮件扩展,因为为了实现模板扩展,我们使用MASK和PowerMail进行表单提交。
  5. 然后将主题相关的模板,样式,Js,typoscript放在扩展文件夹中。
  6. MASK内容元素模板在文件夹fileadmin // templates / content,fileadmin // templates / preview下管理,页面内容图像在fileadmin // images下管理,文件夹下管理的mask.json文件//。为了实现上述过程,我们修改了掩码后端配置。
  7. 实现主题扩展后,大多数功能都有效,除非我们尝试在另一个干净的typo3包中安装我们的扩展时它不起作用。为了解决这个问题,我们做了以下更改:

7.1。在我们的扩展文件夹下创建了一个新文件夹Initialisation,Initialisation / Extensions,Initialisation / Files。

7.2。将依赖项扩展包放入Initialisation / Extensions。

7.3。将所有fileadmin文件()放入Initialisation / Files。

7.4。修改了文件ext_emconf.php以提及扩展细节及其依赖项扩展。

7.5。将导出的T3d pagetree文件放在Initialisation文件夹下,名称为data.t3d

7.6。在文件ext_localconf.php中添加了以下代码,用于更改掩码后端配置

<pre>
<code>
$GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['mask'] = serialize([
'json' => 'typo3conf/ext/key-name/mask.json',
'content' => 'fileadmin/key-name/templates/content/',
'layouts' => 'fileadmin/key-name/templates/content/Layouts/',
'partials' => 'fileadmin/key-name/templates/content/Partials/',
'backend' => 'fileadmin/key-name/templates/backend/',
'layouts_backend' => 'fileadmin/key-name/templates/backend/Layouts/',
'partials_backend' => 'fileadmin/key-name/templates/backend/Partials/',
'preview' => 'fileadmin/key-name/templates/preview/',
]);
</code>
</pre>

7.7。如果我们在掩码中添加新的内容元素,掩码将向tt_content表添加一个新字段,并创建一个用于存储该内容元素值的新表。由于此主题包含太多内容元素,因此我们在ext_tables.sql文件中添加了ALTER和CREATE TABLE查询。我们还为掩码内容元素值添加了UPDATE和INSERT查询。

问题:现在的问题是,7.6和7.7点(创建和更新查询没有被执行),即在干净的typo3包中安装我们的扩展时不能正常工作。

请让我知道我们哪里出错了。

非常感谢沙米斯塔

typo3 typo3-extensions
1个回答
1
投票

这个答案是基于应该创建“TYPO3分发包”的假设。如果没有使用用于呈现网站前端的模板或后端布局定义,则原始答案中提到的“站点包”方法可能是多余的。

这里简要介绍了为TYPO3创建分发包https://docs.typo3.org/typo3cms/CoreApiReference/ExtensionArchitecture/CreateNewDistribution/Index.html

扩展的一般文件位置记录在这里https://docs.typo3.org/typo3cms/CoreApiReference/ExtensionArchitecture/FilesAndLocations/Index.html - 特别是看看ext_tables_static+adt.sql,这将需要例如INSERTUPDATEext_tables.sqldata明确。

关于SQL声明和调整,以下解释很重要:

  • CREATE只支持表的声明,因此只支持和执行UPDATE - 不考虑像INSERText_table.sql这样的修改
  • 每次安装扩展(或手动调用TYPO3安装工具中的数据库分析器)时,将当前数据库模式与ext_table.sql文件中的定义进行比较,并在存在差异时进行调整(更改) - 所有已安装扩展的ALTER TABLE文件均为在这一步考虑并合并
  • ext_table.sql语句不在CREATE中进行评估 - 如果您想调整字段声明,请使用包含新字段的其他ext:felogin语句或要更改的类型 - 例如TYPO3核心的fe_groups改变了fe_users现有的桌子https://github.com/TYPO3/TYPO3.CMS/blob/TYPO3_8-7/typo3/sysext/felogin/ext_tables.sqlINSERT
  • 具体的ext_tables_static+adt.sql语句必须是ext:extensionmanager文件的一部分,请参阅https://github.com/TYPO3/TYPO3.CMS/blob/TYPO3_8-7/typo3/sysext/extensionmanager/ext_tables_static%2Badt.sql中使用该功能的TYPO3核心的Initialisation/data.t3d
  • 基本上应该使用文件qazxswpoi进行分发包中的导入,该文件可以使用“导入/导出模块”创建,作为TYPO3核心包的一部分

希望有所帮助。如果还有其他问题,请提供错误消息或警告,并描述您想要实现的目标。谢谢

© www.soinside.com 2019 - 2024. All rights reserved.