トップページ新着物件の表示順の変更

カテゴリ 【CMS】高機能版(不動産・求人・自治体など)
タイトル トップページ新着物件の表示順の変更
質問者 かがやきさん (1507)
質問日時 2024/04/24 11:46 回答数 6
メディア共有 このエントリーをはてなブックマークに追加
質問内容

現在、トップページに新着物件の一覧を表示させています。不動産物件を登録日順に並ぶようになっていますが、毎週のように並び替えをしたいと思っております。
今の仕様ですと物件をコピー機能を使って登録日を変更させて並びかえを行うしかないので「info×」の項目を利用して並び替えを行いたいです。

・「info39」表示順序ナンバー 1,2,3・・・・を入力して並び替え
・「info40」表示順年月日  年月日をカレンダーから選択して並び替え

FAQをみて以下のようにindex.phpを変更してみました。$ord == 4 を追加して「info39」で並び替え

======================================================================
if ($ord == 0) {
$sql .= " order by reg_date desc"; // 新着
} else if ($ord == 1) {
$sql .= " order by price desc"; // 高い順
} else if ($ord == 2) {
$sql .= " order by price"; // 安い順
} else if ($ord == 3) {
$sql .= " order by up_date desc"; // 更新
} else if ($ord == 4) {
$sql .= " order by info39"; // 表示順項目39
} else if (($ord != "")&&($ord != 0)) {
$sql .= " order by {$ord}"; // 項目指定
} else {
$sql .= " order by reg_date desc"; // 新着
}
======================================================================


そしてindex_html の以下の部分に「&ord=4」を追加してみました。

======================================================================
<a href="?act=bukken&id={val list0/info_id}&ord=4">
======================================================================

上記のように設定してみましたが、並び替えはできていません。
どこが間違っているか、もしくはどうのように設定すればよいか教えてください。

並び替えの項目を「info39」「info40」をどちらを使うかは決定していませんが、両方を試して使いやすい方を採用したいと思います。
簡単に切り替えができるように変更したいです。よろしくお願いいたします。




質問に回答するには、ログインしてください。

回答(6件)

回答者:
かがやきさん (1507)
回答日時:
2024/04/24 15:33

承知いたしました。ありがとうございました。
数値での入力もご検討宜しくお願い致します。


回答者:
q19cms担当者さん (2341)
回答日時:
2024/04/24 15:22

管理画面の並び替えは、数値ではなく辞書順ですので、先頭から文字コードの
大小で並び替えられてしまいます。
現状では、おっしゃる通り、先頭に0を補って桁数を合わせる必要があります。

今後管理画面の並び替えで数値が使えないか検討してみたいとおもいます。
当面は、上記の方法でお願いいたします。


回答者:
かがやきさん (1507)
回答日時:
2024/04/24 15:09

$sql .= " order by info39+0"; // 表示順項目39

に変更いたしました。ありがとうございました。

ただ管理ページで表示順を「昇順」「降順」に変更すると

19・2・20・21・22・・・  になってしまうので管理が難しくなります。

info39 には01・02・03・04・・・・ とした方はよいですよね?

もし100件を超すようであれば 001・002・003・・・ になりますか?


回答者:
q19cms担当者さん (2341)
回答日時:
2024/04/24 13:21

こちらで追試したところ、このままでは並び順が思った通りになりませんでした。
ご質問の

$sql .= " order by info39"; // 表示順項目39



$sql .= " order by info39+0"; // 表示順項目39

と変更してください。
info39は数字を入力しても、文字として保存されているので、これを
数字の扱いにするため、0を加えています。

これで数値の小さい順になります。
もし、大きい順にしたい場合は、

$sql .= " order by info39+0 desc"; // 表示順項目39

としてください。

大変参考になりました


回答者:
q19cms担当者さん (2341)
回答日時:
2024/04/24 12:27

先ほどの回答は、おすすめ物件の一覧になっていましたが、新着の場合は、

$data["list0"] = item_list(0, 4, 0, 12, 1); // 全種類,ord=4,新着

としてください。

大変参考になりました


回答者:
q19cms担当者さん (2341)
回答日時:
2024/04/24 12:21

トップページのおすすめ一覧は、685行付近の

// トップページ
$data["osusume"] = item_list(0, 0, 0, 12, 2); // おすすめ

ここでデータを用意しています。
ordを4にするには、

$data["osusume"] = item_list(0, 4, 0, 12, 2); // おすすめ

これで、おすすめのinfo39の順番になると思います。
ちなみに、先頭から、

0:全種類対象
4:追加した順序指定(ord)
0:ページ数
12:表示項目数
2:おすすめ指定

となっています。

ご質問の様にURLで指定する場合は、一覧を出力する際に利用します。

https://.... /?act=list&kind=1&ord=4

とすることで、物件一覧(この場合1の種類)で並び順を4(info39)とする
事が出来ます。

うまくゆかない様であれば、改めてお知らせください。


6件中 1 ~ 6