サイト上で昇順降順を切り替えるボタンを設置したい

質問全般・改善要望
dimm
メンバー
メンバー
記事: 28
登録日時: 2009年11月25日(水) 16:57

サイト上で昇順降順を切り替えるボタンを設置したい

投稿記事by dimm » 2011年5月11日(水) 10:39

dittoを使って商品情報の一覧を出力しているのですが、
サイト上で昇順降順を切り替えるボタンを設置したいのですが方法はありますか?
また、新着順や価格順など、ソートの基準を切り替えるボタンを設置することも可能でしょうか?
よろしくお願いします。
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: サイト上で昇順降順を切り替えるボタンを設置したい

投稿記事by sama55 » 2011年5月11日(水) 15:45

昇順降順を切り替えるだけなら、Dittoに与える引数用にテンプレート変数を1つこさえて、コンテンツを丸ごとチャンクにしてから、同じページを2つ作れば事足りますが、指示項目が多いとそうもいきませんよね。 ;)
PHPのコーディングスキルが必要な例ですが、下記のような方法はどうでしょう? ※並び替えてからURLパラメータに着目
http://mx.quickart.jp/na/searchitem.html
上記のサイトはMODxでの構築例を分かりやすく見てもらうために、URLパラメータ($_GET)とクッキーでクライアントからの指示をDittoに渡してますが、本実装では$_POSTやDB経由で渡した方がいいでしょうね。また、受け取ったパラメータを解析する処理はスニペットで作り、当該スニペットからDittoをコールするMODx API(runSnippet)等の知識も必要になります。若干レベルの高い実装になりますが、ご参考まで。
dimm
メンバー
メンバー
記事: 28
登録日時: 2009年11月25日(水) 16:57

Re: サイト上で昇順降順を切り替えるボタンを設置したい

投稿記事by dimm » 2011年5月12日(木) 15:15

なるほど、同じページを複数作るというのは思いつきませんでした(汗
私はデザイナーなので、教えていただいた高度な内容の方は残念ながら難しそうです。申し訳ないです。
初歩的な質問で恐縮なのですが、値段用に作ったテンプレート変数(入力タイプ:text、ウィジェット:なし)をorderByで指定すると、順番が99万円→6万円→20万円→12万円のように
文字列的?な順序になってしまいました、適切な順序にする手立てはございますでしょうか。
よろしくお願い致します。
sama55
メンバー
メンバー
記事: 816
登録日時: 2009年8月03日(月) 08:16

Re: サイト上で昇順降順を切り替えるボタンを設置したい

投稿記事by sama55 » 2011年5月12日(木) 16:20

dimm さんが書きました:私はデザイナーなので、教えていただいた高度な内容の方は残念ながら難しそうです。申し訳ないです。

いえいえ。私はデザインできませんから・・・餅は餅屋(笑)。
dimm さんが書きました:値段用に作ったテンプレート変数(入力タイプ:text、ウィジェット:なし)をorderByで指定すると、順番が99万円→6万円→20万円→12万円のように文字列的?な順序になってしまいました、適切な順序にする手立てはございますでしょうか。

入力タイプをNumberに変えて、990000→60000→200000→120000 と入力すれば・・・
【&orderBy=`tv DESC`】 : 990000→200000→120000→60000
【&orderBy=`tv ASC`】  : 60000→120000→200000→990000
の順になるかと思います。但し、Number型にしても数字以外の文字(例:”万円”等の全角文字など)も入力できてしまいます(この辺MODxの甘いところ(笑)。本来はリソース保存イベントで動作するプラグインをこさえて入力値をバリデートした方が良いですが、閲覧者にフロント画面から入力させるわけではないと思うので、その辺は気をつけるっちゅーことで。 :lol: