it-swarm.dev

カスタムコンポーネント3レベルの深さ

コンポーネントを作成しているIMと、これを行う方法を考え出そうとしているIM

予約/注文/注文

予約ビューとフォームがあります注文ビューとフォームがあります

しかしながら...

予約IDに基づいて注文を表示するために予約を取得するのに問題があります。モデルファイルに追加しましたWHERE bid = GET [bid]

ただし、注文の編集から戻ってくると、状況がめちゃくちゃになります。

手順は

  • 予約をクリック
  • 予約IDに基づいて注文を表示する(注文のモデルファイルのカスタムハック)
  • オープンオーダー
  • 注文を編集
  • 保存をクリックします
  • 予約ID =予約IDである注文ビューに戻る

コントローラのorder.phpファイルに小さなハックを追加することでこれを管理できます

だが...

これは保存して戻るために機能しますが、パブリッシュ、アーカイブなどの他のすべてのアクションをクラッシュさせます。

追加の&bid = $ _ GET ['bid']を配置できるmvcのセクションが必要であり、すべての送信アクションで機能します。

互いに親であるビューを持つコンポーネントを構築する正しい方法は何ですか。

私はコードを提供してうれしいですが、かなりたくさんあります。ですから、最初に私を指示することができれば。

その他の注意事項:

これは、予約ビューからの注文への私のリンクです

JRoute::_('index.php?option=com_tourbookings&view=orders&bid='.(int) $row->id)

これがmodels/orders.php内の私のハックです

$query->where('a.bid = '.$_GET['bid']);

これまでのところそれはうまくいきます、私がそれをクリックした場合、入札に基づいて注文を得ます。

それから私は迷っています。私がここからハックしようとすると、クラッシュせずに入札に基づく注文に戻らないので、私は完全に行き詰まっています。

Controllers/order.phpをハッキングした場合(joomla 3.3以降で再び変更されました)

私はそれが一種の作品であり、bid = bidが添付された状態で前のページに戻ることができることを見つけましたが、アーカイブしたり、非公開にしたり、そのようなことをしたりすると、スタックします。

乾杯ジョン

1
Jonnypixel

質問は非常に一般的です。一目見ただけで:

  • 問題は、Joomla!でMVCをどのように実装するかによって異なります。そして、どのコントローラーフレーバーをフォローしていますか。私の見解では、Joomla 2.5、3、または3.xでネイティブコントローラーを実装する方法を説明する代わりに、 FoF をリレーするだけでMVCの問題を回避します。
  • セキュリティ上の理由から、$ _ GETは使用しないでください。生の変数を使用する代わりに、JInputを実装します。たとえば、FoFはF0FInputを実装し、JInputを拡張します。
2
Anibal