Typo3:在扩展安装期间插入数据(创建表格后)

时间:2012-10-28 21:57:39

标签: php install typo3

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

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

或者,是否可以让PHP代码在安装过程中创建表(使用数据库接口)而不是依赖于ext_tables.sql?再说一遍,如果是这样的话,我该怎么办呢,我该怎么办呢。

2 个答案:

答案 0 :(得分:2)

当然你可以(带着小窍门):

  1. 将ext_conf_template.txt添加到您的扩展程序
  2. 将用户类型条目添加到ext_conf_template.txt

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

    中创建到PHP-File Class.php

    此方法可用于执行某些安装后操作或更常用于修改 扩展配置页面(该方法可以返回将包含的HTML 这里)。

    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 '';
        }
    

    }

  4. 我使用它将一些用户定义的输出添加到扩展的配置页面,但您也可以 你这可以执行一些初始设置操作。

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

答案 1 :(得分:0)

旧EM中至少有一个钩子(TYPO3 4.5及以下版本)。我想新的也有一些。

您可以在视图中添加一些字段,您可以在其中设置设置。

$TYPO3_CONF_VARS['SC_OPTIONS']['typo3/mod/tools/em/index.php']['tsStyleConfigForm'][] = "EXT:yourextension/class.yourextension.php:yourextension->main";