エクスプレスを使って表示される詳細画面をカスタマイズしたい

エクスプレスを使ってメンバー一覧と詳細画面を表示されるページを作成中です。
【やりたいこと】
詳細画面で、メンバーの顔写真を表示したいのですが、デフォルトだと画像はリンク形式で設置され、画像がそのまま表示されません。

以下の過去フォーラムのページを見てみたのですが、解決方法がわからず、このフォーラムであらためて投稿しました。

初心者です。エクスプレスの一覧・詳細ページでの画像 :: Concrete CMS Japan 日本語公式サイト (旧 concrete5) (concrete5-japan.org)

サンプルとしてアップされていたサイトもローカルにセットして確認しましたが、カスタマイズのphpの書き方がわかりませんでした。

【やっていること】
application/blocks/express_entry_detail/templates/members.php
このファイルを新規作成し、ここにカスタマイズ用のphpを記載しようとしています。

$members = $entry;
$members->getId();
これで詳細画面のデータIDは取得できることはわかっているのですが、
詳細画面の各属性値を取得する方法が、マニュアルなどを見てもうまく理解できませんでした。

上記のサイトでサンプルとしてアップされているものを見ると、
$curryStore = $entry;
$storeName = $curryStore->getStoreName();
として店舗名を取得しているようでしたが、この「getStoreName()」という部分が理解できませんでした。
各属性のハンドル名に指定しているものを使って、get~と書くと取れるのかとも思いましたが違うようでした。

【質問】
データオブジェクト:
ハンドル:test_menber
複数形ハンドル:test_members
属性:
ハンドル:member_name
名前:メンバー名

となっているエクスプレスの詳細画面(details)で、上記のメンバー名を取得して表示させるにはどうすればよろしいでしょうか。

画像の表示は、サンプルにある通り
$menuPhoto = $storeMenu->getCurryPhoto();
$menuPhotoURL = $menuPhoto->getThumbnailURL(‘file_manager_detail’);
if ($menuPhotoURL==‘’) $menuPhotoURL = $menuPhoto->getRelativePath();
として、
if ($menuPhotoURL) {
$thumbnail = \HtmlObject\Image::create($menuPhotoURL);
echo $thumbnail;
}
とすれば表示されるんだろうと思っていますが、そもそも属性値をどうやって取得すればいいかわかっていません。

どなたかご教授お願いいたします。

@backy こんにちは。
取り急ぎの返信、すいません。

作成したのがだいぶ前なので、
コードが古かったりするのですが、
サンプルを作っています。

僕のは、食べログのカレーレストランに絞ったバージョンみたいなサンプルです。

一覧、詳細で、写真を表示するコードが入っているので、参考にしてみてください。

公式のドキュメントで一番参考になるページがはこちらです

@katz515 さん
情報ありがとうございます。
ドキュメントの以下の文章で正しく理解できました。
Once you have an express entry object, it’s easy to get data from it. Simply call $entry->get* where the * matches the camelcased handle of the attribute. So in the example of our attribute named teacher_first_name , if we had a teacher entry, we’d call

こちらと、作成されているサンプルソースをもとに画像表示ができるようになりました。
ありがとうございます。

1 Like