MVCっぽい?処理を行うには

2015年5月22日 at 1:26

・お使いのPC
 Windows
・お使いの concrete5 のバージョン (下記の環境情報があればなお可)
 5.6.3.3

はじめまして。
利用し始めて、5日目の初心者です。
JavaでのMVCの開発経験はあります。

商品データ(画像、商品カテゴリー、商品名、商品説明など)を登録し、そのデータを利用して、いろんな体裁のページに引用して表示したいと思ってます。
例えば、商品のページ、商品カテゴリーで抽出した商品一覧ページなど。

商品のページには、商品カテゴリを除いた登録データを表示し、
商品一覧ページには、商品のサムネイル画像と商品名が表示され、商品名の下に商品ページへのリンクボタンを用意する必要があります。
ちなみにトップページは商品一覧ページになります。

まず、商品データを登録するには、コンポーザーを利用すればよいのでしょうか?
コンポーザーを利用する場合、商品データはカスタム属性を追加し、コンポーザーのページにその追加したカスタム属性を表示するようにすれば良いのでしょうか?
コンポーザーで登録できたとして、とある商品の画像を差し替えるとか商品名を間違えた時などの編集処理は可能でしょうか?

やりたい事は全然難しい事ではないのですが、それをconcrete5で実現するにはどうすればよいのか全くわかりません。

納期まで2日しかないので、一番簡単な方法で構いません。
どなたか、ご教授いただければ幸いです。
よろしくお願いします。

タグ:

Re: MVCっぽい?処理を行うには

2015年5月22日 at 2:31
納期まで2日とは...ご愁傷さまです...

concrete5ではブロックレベル、ページレベルでMVC的な実装が可能です。
ブロックレベルでは、ブロックのアクションを使います。
ページレベルではシングルページという物を使います。

Javaで実装した事があるとの事ですので、シングルページを使ったページ単位でのMVCが一番わかりやすいと思います。
詳しくは、下記をご参照ください。
http://concrete5-japan.org/help/5-6/design/customize-single-pages/
 

Re: Re: MVCっぽい?処理を行うには

2015年5月22日 at 2:35
間違えました。
こっちだ
http://notnil-creative.com/blog/archives/1540
 

Re: MVCっぽい?処理を行うには

2015年5月22日 at 2:37
すいません。質問よく読んでませんでした。
この要件であれば、ページの属性使って、一覧はページリストで出すのが一番早いと思います。

どう編集できるかは試してみてください。
 

Re: MVCっぽい?処理を行うには

2015年5月22日 at 2:56
早々のお返事ありがとうございます。
早速、試してみたいと思います。
また、何かありましたら、状況を報告致します。
ありがとうございました。
 

Re: MVCっぽい?処理を行うには

2015年5月22日 at 8:04
ページ属性の表示はhissyさんのブログを参考に
http://notnil-creative.com/blog/archives/3114
 

Re: MVCっぽい?処理を行うには

2015年5月22日 at 23:46
シングルページでは、どのテーブルのフィールドに保存され、それをどうやって抽出するのかわからないので断念しました。
それから、入力されたデータから商品ページを作成し、指定した親ページの配下に作成する必要があるからです。

よって、コンポーザーを利用して、ブログを登録するのと似た動きで、ページを作成しようと考えています。
商品に関するあらゆるデータを属性として持ち、コンポーザーで入力して、入力されたデータをテンプレート化された商品ページに、getAttributeを使ってデータを取得して、決められた位置に配置できるのでは?と思っています。
決められた位置となると、header.php相当の物を用意しなければならないかもしれませんが。。。

ちなみに、getAttributeで商品ページのURLは取得できますか?
商品一覧にサムネイル画像を表示し、リンクを張る必要があります。

まだまだ、わからない事ばかりですが、頭をリフレッシュして考えてみます。
ありがとうございましたm(__)m
 

Re: MVCっぽい?処理を行うには

2015年5月23日 at 3:16
>ちなみに、getAttributeで商品ページのURLは取得できますか?

getLinkToCollectionで出来そうですね。

concrete>blocks>page_list>templates>blog_index_thumbnail.php

このカスタムテンプレートが参考になると思います。
標準で入っているブログをサムネイルで一覧表示していくカスタムテンプレートですね。
blog_index_thumbnail.phpをコピーして
blocks>page_list>templates内にペーストしていじるようにしましょう。

商品詳細ページはproduct.phpとか適当な名前でファイル作って、ページタイプで追加してデフォルト設定をしておくと楽だと思いますよ。
これならheader.phpとか考えなくても大丈夫です。
 

Re: MVCっぽい?処理を行うには

2015年5月23日 at 7:04
おはようございます。
なるほど、大体のイメージがわいてきました。
実作業は月曜日になりますので、また状況報告します。
もしかするとまた質問するかもしれませんが。

ご教授ありがとうございます!