2

config/cd_deployer_conf.xml のデフォルト プロセッサにカスタム モジュールを追加しました。

<Processor Action="Deploy" Class="com.tridion.deployer.Processor">
            ...
            <Module Type="MyCustomModuleDeploy" Class="com.tridion.new.extensions.MyCustomModule">
            </Module>
</Processor>

モジュールのコードは次のようになります。

public class MyCustomModule extends com.tridion.deployer.modules.PageDeploy {

     static Logger logger = Logger.getLogger("customDeployerFirst");

    public MyCustomModule(Configuration config, Processor processor)
            throws ConfigurationException {
        super(config, processor);
        // TODO Auto-generated constructor stub
    }

    public void processPage(Page page, File pageFile) throws ProcessingException {
        // TODO Auto-generated method stub
            Date d = new Date();
        log.info("WORKING");
        log.info("Page ID: " + page.getId().toString());
        log.info("Publication date: "+ d.toString());
    }

}

ページが公開されるたびに、必要な情報がログ ファイルに記録されます。

次にやりたいことは、以前に作成したテーブルで、ページ ID と発行日を Microsoft SQL データベースに書き込むことです。どうやってやるの?MyCustomModule からデータベース テーブルにアクセスするにはどうすればよいですか?

ありがとう

4

2 に答える 2

3

要件はわかりませんが、デプロイヤー拡張モデルとストレージ拡張モデルを既に選択しています。ストレージ拡張により、Tridion はストレージを拡張する方法に関するモデルを提供します (拡張可能な JPAFramework や Base DAOEntities など)。Quirin と Nuno が述べたように、Deployer 拡張ルートを使用する場合は、他のアプリと同様に標準の JDBC コードを作成するようなものです。

ただし、ストレージ拡張モデルも見て、要件に適合するかどうかを確認することをお勧めします。非常に良い出発点は、次の記事を見ることです

于 2012-07-06T16:38:25.923 に答える
1

わかりましたので、問題を解決するためにここで行ったことは、Quirijn が提案したこととまったく同じです。JDBC ドライバーを使用してデータベースに接続し、SQL 更新クエリを実行しました。

int sqlStatement = st.executeUpdate("insert into Pages values ('" + page.getId().toString()+ "', '" + ... + "')");

このようにして、ページが公開されるたびに、いくつかのデータがデータベースに書き込まれます。

于 2012-07-16T11:45:09.530 に答える