web-dev-qa-db-ja.com

テンプレートマネージャーでカスタムフィールドとカスタムフォーム送信でフィールドをオーバーライドする

Joomla 3.xの新しいテンプレートを作成しています。ユーザーが簡単に使えるようにしたいと思います...

テンプレートマネージャーで、「写真のアップロード」ファイルフィールドが必要です。これは問題ありません。 templateDetails.xmlで定義するだけです。

ただし、写真をさまざまなサイズでさまざまなプリセット名で保存したいと思います。テンプレートはレスポンシブデザインなので、この画像をさまざまな画面サイズ(css @media(max-width:xxxpx)を使用して異なるサイズ)の背景画像として使用したいと思います。

Imagemagickを使用してサイズを変更し、ファイルを希望の場所に保存する方法を知っています。しかし、私の人生では、どこでどのようにしてどこに行くのかわかりません:

  • templateDetailsのをオーバーライドします(必要な場合)。
  • フォーム送信アクションをオーバーライドする

私は:Joomla Override Pluginを見つけましたが、これは古いようです。

ネット上でのオーバーライドについてはかなりの情報がありますが、私が探しているものではありません。

誰か助けてもらえますか?

マルセル

1
Marcel Meijer

最良の方法は、プラグインを作成して適切なイベントを使用することです。

onExtensionAfterSave

または

onExtensionAfterSave

コンテキストは"com_templates.style"になります。

例:

public function onExtensionAfterSave($context, &$templateTableStyle, $isNew = 0)
{
    if(com_templates.style == 'com_templates_style')
    {
        // do your work ...
    }
}

別の方法は、オンザフライで画像を生成することかもしれません。

1
Nils Rückmann