4

私が書いているカスタム拡張機能の場合、インストール時にロードされているext_tables.sqlファイルがあります。

PHPコードを使用したインストールルーチン中にext_tables.sqlから作成されたテーブルに動的データを挿入したいと思います。これは可能ですか?もしそうなら、私は何をしなければならず、どこでそれをしなければなりませんか?

または、ext_tables.sqlに依存するのではなく、インストール中にPHPコードで(DBインターフェイスを使用して)テーブルを作成することはできますか?繰り返しますが、もしそうなら、私はこれのために何をしなければなりませんか、そしてどこでそれをしなければなりませんか。

4

2 に答える 2

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への作成-パス/Path/Toのファイル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 '';
        }
    

    }

これを使用して、拡張機能の構成ページにユーザー定義の出力を追加しますが、これを使用して初期セットアップアクションを実行することもできます。

拡張機能をインストールした後、[更新を行う]ボタンをクリックしてスクリプトを実行できます。

于 2013-03-22T11:54:44.207 に答える
0

古いEM(TYPO34.5以下)には少なくともフックがあります。新しいものにもあると思います。

ビューにいくつかのフィールドを追加して、設定を行うことができます。

$TYPO3_CONF_VARS['SC_OPTIONS']['typo3/mod/tools/em/index.php']['tsStyleConfigForm'][] = "EXT:yourextension/class.yourextension.php:yourextension->main";
于 2012-10-30T13:10:27.640 に答える