Php 类型3:在扩展安装期间插入数据(创建表之后)

Php 类型3:在扩展安装期间插入数据(创建表之后),php,installation,typo3,Php,Installation,Typo3,对于我正在编写的自定义扩展,我有一个ext_tables.sql文件,该文件将在安装时加载 我想在安装例程期间使用PHP代码将一些动态数据插入从ext_tables.sql创建的表中。这可能吗?如果是,我必须做什么?我必须在哪里做 或者,是否可以让PHP代码在安装过程中创建表(使用DB接口),而不是依赖ext_tables.sql?再说一次,如果是这样的话,我该怎么做?我该在哪里做 旧EM中至少有一个钩子(类型3 4.5及以下)。我想新的也有一些 您可以向视图中添加一些字段,从中可以设置设置 $

对于我正在编写的自定义扩展,我有一个ext_tables.sql文件,该文件将在安装时加载

我想在安装例程期间使用PHP代码将一些动态数据插入从ext_tables.sql创建的表中。这可能吗?如果是,我必须做什么?我必须在哪里做


或者,是否可以让PHP代码在安装过程中创建表(使用DB接口),而不是依赖ext_tables.sql?再说一次,如果是这样的话,我该怎么做?我该在哪里做

旧EM中至少有一个钩子(类型3 4.5及以下)。我想新的也有一些

您可以向视图中添加一些字段,从中可以设置设置

$TYPO3_CONF_VARS['SC_OPTIONS']['typo3/mod/tools/em/index.php']['tsStyleConfigForm'][] = "EXT:yourextension/class.yourextension.php:yourextension->main";
当然你可以(用一个小技巧):

  • 将ext_conf_template.txt添加到扩展名中
  • 将用户类型条目添加到ext_conf_template.txt

    # cat=basic; type=user[EXT:<EXTNAME>/Path/To/Class.php:Tx_Path_To_Class->postInstall]; label=
    postInstallAction=0
    
    }

  • 我使用它向扩展的配置页面添加一些用户定义的输出,但是您也可以 您可以使用此选项执行一些初始设置操作


    安装扩展后,您现在可以单击“进行更新”按钮来执行脚本。

    为什么不在ext_tables.sql文件的底部添加插入项?虽然这是可能的,但值来自配置PHP类。。。因此,更干净/正确的方法是在创建表后动态插入这些值。
    class Tx_Path_To_Class {
        /**
         * Generates and returns an message.
         *
         * @param array               $params      Name and value from ext_conf_template.txt
         * @param t3lib_tsStyleConfig $styleConfig Instance of config style editor
         *
         * @return string HTML code
         */
        public function postInstall(array $params, t3lib_tsStyleConfig $styleConfig) {
            // Do your stuff
            return '';
        }