コンポーネントビューページにjoomlaのデフォルトツールバーを追加する


10

私はjoomla 2.5と3の両方のmvcコンポーネントを開発しています。多くのコンポーネントで、管理者側の設定ページの上部に新規、編集、公開、ゴミ箱、オプションなどのjoomlaのデフォルトのコマンドボタンを追加しました。例えば。コンポーネント->ウェブリンク->リンクページに移動すると、右上にあるコマンドボタンについて話しています。

では、コンポーネントの設定ページにコマンドボタンを追加するにはどうすればよいですか?クリックすると、それぞれのアクションが実行され、それぞれのビューが表示されます。たとえば、「新規」ボタンをクリックすると、MVCコンポーネントのエントリの追加ビューがそのまま表示されます。

それで、管理者側のコンポーネントの設定ページに完全に機能するjoomlaのコマンドボタンを追加するにはどうすればよいでしょうか。

回答:


12

ベストプラクティスはaddToolBar()、Viewクラス内にメソッドを作成し、次にJToolBarHelperクラスを使用してコマンドボタンを作成することです。

protected function addToolBar()
{
  JToolBarHelper::addNew('yourcontroller.add');
  JToolBarHelper::editList('yourcontroller.edit');
}

したがって、これらは指定されたコントローラーでタスク/関数「add」/「edit」を呼び出します。次に$this->addToolBar()、Viewのdisplay()メソッドを呼び出すだけです。

リファレンスコンポーネント用のツールバーを作成します


私のコンポーネントにはコントローラーファイルcontroller.phpのみがあり、function add() { JRequest::setVar('view', 'entry'); JRequest::setVar('layout', 'form'); parent::display(); }その中に関数があるので、view.html.phpファイルにJToolBarHelper :: addNewX( 'controller.add');を追加しました。その後、新しいボタンが表示されますが、クリックすると、ビューのフォームに移動せず、代わりに#がURLに追加されます
dev-m

省略して試してみてくださいcontroller.task-JToolBarHelper::addNewX();
ドミトリーRekun

JToolBarHelper :: addNewX();のみを追加しました。動作しません。
dev-m

次に、controllersディレクトリの下に適切なコントローラを作成する必要があります。バックエンドアクションの追加を
Dmitry Rekun 2014

5

ボタンを表示するビューに送信するフォームがあることを確認する必要があります。フォーム名はadminFormにする必要があります。フォームにはtaskという名前の非表示フィールドと動的に生成されたトークンも必要です。私は頭の上からAPIを思い出すことはできませんが、次のようなものですJHtml::_('form.token');(誰かが間違っている場合は、これを修正してください)

これでうまくいきます。


以前に見つけた問題は、adminFormの代わりにフォーム名をadminFormとして使用していたことでした。
dev-m

これはJoomla固有のものではなく、JavaScriptのものです。ボタンをクリックすると、JSフォーム送信機能が実際にトリガーされるため、フォームが見つからない場合は静かに失敗します。
Mathew Lenning 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.