私の質問は:
検索ボタンをクリックした後に、検索/フィルター/順序付けフィールドをリンクに表示できるようにするにはどうすればよいですか。モデルコントローラービューレイアウトファイルがあります。モデル ファイルでは、必要なフィールドが populateState 関数の状態変数として設定され、buildWhereQuery 関数によって取得され、クエリ文字列で使用できるようになります。この時点まで、すべてが正しく進んでいます。しかし、今から私の問題は、ユーザーがリストのリンクを友人に送信して同じリストを表示したい場合に発生します。この目的のためのリンクを設定する必要がありますが、その方法がわかりません。
ビューファイルでこの関数を次のように記述しましたが、この作成されたリンクを使用して機能させる方法がわかりませんでした。(変数 query は、JObject の形式で $query = $this->get('state'); です。
protected function preQuery($query){
$params = array();
foreach ($query as $key => $value) {
if(!isset($query->$key) || empty($value) || $value == ''){
unset($query->$key);
}else{
if(strpos($key,'filter') || in_array($key, array('limit','limitstart','order','order_Dir'))){
$params[$key] = $value;
}else{
unset($query->$key);
}
}
}
$que = JURI::buildQuery($params);
$cur = JURI::current();
return (strpos($cur,'?') ? ($cur.'&'. $que) : ($cur.'?'.$que));
}
編集:
レイアウト ファイルには、joomla が必要とするビュー タスク レイアウト コンポーネントのようなリダイレクト用のすべての入力を含むフォームが含まれています。フィルタリングまたは検索用の一部。そのため、フォームにGETメソッドを使用できませんでした:/