在干净的typo3包

时间:2018-01-03 11:56:01

标签: typo3 typo3-extensions

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

  1. 从站点包构建器(https://sitepackagebuilder.com/new/
  2. 下载扩展包
  3. 下载并安装TYPO3 V8.7.9软件包。
  4. 然后将扩展包放在文件夹typo3conf / ext /下并在扩展部分中安装扩展包
  5. 安装了MASK和Power邮件扩展,因为为了实现模板扩展,我们使用MASK和PowerMail进行表单提交。

  6. 然后将主题相关的模板,样式,Js,typoscript放在扩展文件夹中。

  7. MASK内容元素模板在文件夹fileadmin // templates / content,fileadmin // templates / preview和 页面内容图像在文件夹fileadmin // images下管理, 在fileadmin //下管理的mask.json文件。 为了实现上述过程,我们修改了掩码后端配置。
  8. 实现主题扩展后,大多数功能都有效,除非我们尝试在另一个干净的typo3包中安装我们的扩展时它不起作用。 为了解决这个问题,我们做了以下更改:
  9. 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包中安装我们的扩展时不能正常工作。

    请告诉我们哪里出错了。

    非常感谢 问候 Sharmistha

1 个答案:

答案 0 :(得分:1)

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

在此https://docs.typo3.org/typo3cms/CoreApiReference/ExtensionArchitecture/CreateNewDistribution/Index.html

简要介绍了为TYPO3创建分发包

此处记录了扩展程序的常规文件位置https://docs.typo3.org/typo3cms/CoreApiReference/ExtensionArchitecture/FilesAndLocations/Index.html - 尤其要查看ext_tables_static+adt.sql所需的内容,例如INSERT数据明确。

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

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

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