「有料会員」と「無料会員」とを設け、有料会員のデータを一覧ページの冒頭に優先表示させる方法を用いて登録者ごとの物件一覧を作成したい

カテゴリ 【CMS】ポータルサイト向け
タイトル 「有料会員」と「無料会員」とを設け、有料会員のデータを一覧ページの冒頭に優先表示させる方法を用いて登録者ごとの物件一覧を作成したい
質問者 yo326さん (479)
質問日時 2023/06/28 15:55 回答数 8
メディア共有 このエントリーをはてなブックマークに追加
質問内容

引き続き、購入前提で試用版にて機能確認中です。

タイトルのとおり、
マニュアル記載の有料会員のデータを一覧ページの冒頭に優先表示させる方法から登録者ごとの物件一覧を表示させたいのですが、
カスタマイズ可能かどうか教えていただけないでしょうか。

途中まで、試用版にて試してみましたができませんでした。
<やったこと>
①index.phpに、詳細ページへのリスト表示を追加
//詳細
if (($act == "detail")||($act == "bukken")) {
~~
$data["list2"] = item_list(2, 0, 0, 10, 1); // ←これを記述
}

②item.htmlに、下記を記載。
<!--{each list1}-->
<!--{def list1/name_"{val item/user}"}--> ←※Aこれがなければitem.htmlに物件情報が表示されます
物件情報
{val list/info1}
<!--{/def}-->
<!--{/each}-->

※Aの表記が無ければ、詳細ページ(item.html)に物件情報のリストを表示できますが、
この記述を加えても、詳細ページの登録者のみが登録した情報にはなりませんでした。

違うやり方でできるのであればいいのですが、
無理な場合は、カスタマイズが可能かどうか教えてください。

やりたいことは、リスト表示を登録者で表示制限したいということです。
URLリンクで~~&user_id=1などとすれば、登録者で制限できることは分かったのですが、
今回は、詳細ページにてリスト表示のうえ、登録者で表示制限したいのです。
詳細ページなので、{val item/user}で登録者名が取得できます。
できれば、<!--{def list1/name_"{val item/user}"}-->のように
{val item/user}の部分が動的であればいいのですが。

よろしくお願いいたします。

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

回答(8件)

回答者:
yo326さん (479)
回答日時:
2023/07/06 10:09

有償カスタマイス可能とのこと、了解いたしました。

詳細が分からない段階で、費用概算も出ないと思いますので、
クライアント様にて購入が決まりましたら、改めてご相談させていただきます。


回答者:
q19cms担当者さん (2341)
回答日時:
2023/07/06 08:47

テンプレート処理(HTMLを生成する処理)では、

<!--{def list2/name/{val item/{user_id}}-->

の様な{}タグ内に{}を入れ子で使用することはできません。
このため、index.phpで条件を判断して、必要なタグを出力するようにする必要があります。

index.phpのカスタマイズは可能です。
具体的な内容をご相談させていただき、費用や期間をお見積もりさせていただきます。


回答者:
yo326さん (479)
回答日時:
2023/07/05 17:14

下記ありがとうございます。
===========================
<!--{def list1/name_田中}-->
登録者が田中さんの場合のみ、この部分が出力されます。
<!--{/def}-->
これだと名前が固定されてしまうので、・・・・・・
===========================
このname_田中の「田中」の部分を変数的にしたいのです。
理由は、item.html(詳細ページ)にて「この会社のその他の物件」などとしてリスト表示させたいとの要望です。

とりあえず、URLにてパラメータ指定すれば可能なので、
./?act=list&kind=2&user_id=5&html=sample.html
として、javascriptにてsanple.htmlの高さを取得し、item.html(詳細ページ)に
iframeにて表示させて、クライアント様に確認していただいています。

このURL ./?act=list&kind=2&user_id=5 で表示されるデータのみ
<!--{each list2}-->
<!--{def list2/name/{val item/{user_id}}-->
<!--{/def}-->
<!--{/each}-->
のように、出力タグでuser_id=5のデータのみ一覧表示できればベストです。
※詳細ページのためuser_idは{val item/user_id}で取得でき、
 詳細ページごとにその会社の物件一覧を表示させることができます。

現状で対応が難しいようでしたら、
カスタマイズで可能なのかどうかをお教え願います。

お手数をおかけしますが、よろしくお願いいたします。


回答者:
q19cms担当者さん (2341)
回答日時:
2023/06/28 18:38

回答がちょうど重複してしまったようです。

当方の回答内容に不足があるようであれば、お手数ですが、改めてご質問ください。


回答者:
q19cms担当者さん (2341)
回答日時:
2023/06/28 18:36

先ほどの回答は不十分だったので、改めて回答させていたd先ます。

登録者の名前で判定をしたいという事であれば、一覧の出力項目に登録者名を追加して、それを使って出力の判定をすることができます。
具体的には、index.phpの992行付近に1行追加します。

$user = User::getData($val["user_id"]);
$list["user"] = $user["name"];
$list["name_" . $user["name"]] = $user["name"]; // この行を追加
$list["user_item1"] = $user["item1"];

これで次のようにして特定の名前を参照できます。

<!--{def list1/name_田中}-->
登録者が田中さんの場合のみ、この部分が出力されます。
<!--{/def}-->

これだと名前が固定されてしまうので、ユーザー別にまとめて出したいのであれば、検索条件にuser_idの順番に出力されるようにする方が良いかもしれません。(この場合は、user_idの降順、昇順どちらかになります)

複数の名前を順番に出したいなどの場合は、name_田中の部分を配列で用意して、{foreach }で繰り返し処理する方法も可能です。


回答者:
yo326さん (479)
回答日時:
2023/06/28 18:34

ご回答ありがとうございます。

<!--{def list1/user/item1_1}-->
の様にして、ユーザーの特定の設定項目(上記ではitem1が1の場合に有料会員)の情報を設定して、それを判定して表示を制御することができると思います。

確認です。
登録者に「A」と「B」が登録され、item1に「A」「B」ともに1を設定している場合、
上記の方法ですと、リスト表示に「A」の登録物件情報と「B」の登録物件情報が表示されてしまいませんか。
やりたいことは、「A」の登録物件情報と「B」の登録物件情報の一覧リストをそれぞれ別々に表示させたいのです。
上記の方法で可能でしょうか。

クライアント様の要望が、
kind1に不動産会社情報
kind2に物件情報
kind3にスタッフ情報を登録し、
list.htmlでは、不動産会社をエリアなどの条件にて検索させます。
不動産会社一覧リストから、特定の不動産会社の詳細ページ(item_html)に移った際に、
不動産会社の詳細ページ(item.html)に「この会社のスタッフ一覧」「この会社の物件情報」などを一覧表示させたいのです。
これらの情報を、できれば不動産会社詳細ページ(item.html)内にてタブ切り替えなどで同じページ内で表示させたいため
URLでの表示制限ではない方法で行いたいのです。

(例)
不動産会社Aが、物件あ/物件い/物件う と スタッフ1/スタッフ2/スタッフ3 を登録します。
不動産会社Bは、物件え/物件お/物件か と スタッフ4/スタッフ5/スタッフ6 を登録します。

不動産会社の一覧リスト(list.html)から、
不動産会社Aの詳細ページ(item.html)を表示した際、
このページ内にてタブ切り替えなどで、「不動産会社Aが紹介できる物件」情報一覧として、物件あ/物件い/物件う をリスト表示
「不動産会社Aのスタッフ」情報一覧として、スタッフ1/スタッフ2/スタッフ3をリスト表示

不動産会社の一覧リスト(list.html)から、
不動産会社Bの詳細ページ(item.html)を表示した際、
このページ内にてタブ切り替えなどで、「不動産会社Bが紹介できる物件」情報一覧として、物件え/物件お/物件か をリスト表示
「不動産会社Bのスタッフ」情報一覧として、スタッフ4/スタッフ5/スタッフ6をリスト表示

を行いたいのです。
ですので、<!--{def list1/user/item1_1}-->の「_1」の部分がuser_idなど動的に変更されなければならないと思います。
システム仕様を全く理解していませんが、
当方のイメージとしては、
<!--{def list1/user/item1_{val item/user_id}}-->という感じです。

不動産会社Aのuser_idが1
不動産会社Bのuser_idが2
とすると、

不動産会社Aの詳細ページ(item.html)にアクセスすると、user_idの1が取得でき、
物件情報のuser_idが1、スタッフ情報のuser_idが1のものをリスト表示。

不動産会社Bの詳細ページ(item.html)では、user_idの2が取得でき、
物件情報のuser_idが2、スタッフ情報のuser_idが2のものをリスト表示。

有償カスタマイズの範疇であれば、おおよその費用を教えていただけますと助かります。
よろしくお願いいたします。


回答者:
q19cms担当者さん (2341)
回答日時:
2023/06/28 16:41

index.phpの修正をすることで、対応は可能です。
特定の条件のデータを出力させるには、index.phpで各データに条件を付与するような修正が必要になります。

②の表記はできませんので、一覧にユーザーのデータを含めるようにindex.phpを修正して、

<!--{def list1/user/item1_1}-->

の様にして、ユーザーの特定の設定項目(上記ではitem1が1の場合に有料会員)の情報を設定して、それを判定して表示を制御することができると思います。

index.phpの修正サンプルを提供することは可能です。
また、ご購入後であれば、有償のカスタマイズも可能です。


回答者:
yo326さん (479)
回答日時:
2023/06/28 16:24

先の記述にて
①$data["list2"]は$data["list1"]の間違いです。


8件中 1 ~ 8