ありがとうございます!
使ってみます!
Expressエンティティをページ属性として表示したい
2021年5月27日 at 15:51
ブログページを作成する際、作成担当者を選択すると、ページに名前、所属、アイコン画像が自動的に表示されるように考えています。
そこでまず、Expressでエンティティ(staff)を作成し、属性(name,department,images)を追加しました。
これをブログページのページ属性(att_staff)として設定し、コンポーザで選択するところまではできました。
次に、選択された担当者の情報を表示するプログラムをテンプレート(blog.php)へ
追加したいのですが、その表記方法がわかりません。
同じようなことをやられた経験がある方、もしくは参考文献などあれば、ご教示いただけますでしょうか。
こんな書き出しで始まると思うのですが。
$c = Page::getCurrentPage();
$ent = $c->getAttribute('att_staff');
if (!empty($ent)){
:
:
}
よろしくお願いいたします。
タグ:
Re: Expressエンティティをページ属性として表示したい
2021年5月27日 at 20:43
▼Expressエンティティをページ属性として表示
1)ページタイプの「出力」でページタイプの初期表示画面を開いて、
Express詳細ブロックを任意の場所へ追加。
2)「Expressエントリー詳細を編集」画面で
エントリー:「このページのカスタム属性のエントリーを取得」
エクスプレスエントリー属性:該当する属性を選択
データを表示するエンティティフォーム:該当するフォームを選択
これで値自体は表示されるようになりましたが、新たに疑問が出てきました。
各要素に別々のクラスを与えたいのですが、その方法がわかりません。
また、画像属性もエンティティに含まれているので、画像として表示したいのですが、
のようにファイル名で表示されてしまいます。
/concrete/elements/express/form/view/form.php 内のforeach()で値が動的に取得されているのかな、
という程度までは理解できましたが、具体的に各属性を判別するにはどうしたらよいのでしょうか?
最適な方法があればご教示いただければ幸いです。
よろしくお願いいたします。
1)ページタイプの「出力」でページタイプの初期表示画面を開いて、
Express詳細ブロックを任意の場所へ追加。
2)「Expressエントリー詳細を編集」画面で
エントリー:「このページのカスタム属性のエントリーを取得」
エクスプレスエントリー属性:該当する属性を選択
データを表示するエンティティフォーム:該当するフォームを選択
これで値自体は表示されるようになりましたが、新たに疑問が出てきました。
各要素に別々のクラスを与えたいのですが、その方法がわかりません。
また、画像属性もエンティティに含まれているので、画像として表示したいのですが、
<div class="form-group">
<div>
<label class="control-label">アイコン画像</label>
</div>
<div>
<a target="_blank" href="/download_file/7/266" class="ccm-attribute-image-file ccm-attribute-image-file-画像">avatar.png</a>
</div>
</div>
のようにファイル名で表示されてしまいます。
/concrete/elements/express/form/view/form.php 内のforeach()で値が動的に取得されているのかな、
という程度までは理解できましたが、具体的に各属性を判別するにはどうしたらよいのでしょうか?
最適な方法があればご教示いただければ幸いです。
よろしくお願いいたします。
Re: Expressエンティティをページ属性として表示したい
2021年5月28日 at 7:38
この辺りを参考にしてください。
http://documentation.concrete5.org/developers/express/using-the-express-entry-block-to-output-entry-data
http://documentation.concrete5.org/developers/express/using-the-express-entry-block-to-output-entry-data
Re: Expressエンティティをページ属性として表示したい
2021年5月28日 at 12:50
hissyさん、ありがとうございます!
無事カスタムテンプレートで値を取得することが出来ました。
※Name、Department、Memo等はエンティティ名
エンティティ名で自動的にメソッドを作ってくれるんですね!(スゴイ。)
大変勉強になりました、ありがとうございました!
無事カスタムテンプレートで値を取得することが出来ました。
if (isset($entry) && is_object($entry)) {
$name = $entry->getName();
$department = $entry->getDepartment();
$memo = $entry ->getMemo();
$img = $entry ->getImages();
}
※Name、Department、Memo等はエンティティ名
エンティティ名で自動的にメソッドを作ってくれるんですね!(スゴイ。)
大変勉強になりました、ありがとうございました!
Your post has been saved and will be published after approval by the forum moderator.
takuro hishikawa
Re: Expressエンティティをページ属性として表示したい