属性の「選択」の表示のカスタマイズについて
下記内容で作成した属性の「選択」のカスタマイズする方法を教えて頂けると助かります。
一覧用と詳細用のページにカスタマイズした内容を表示したい。
・属性で「選択」を作成
・「選択」の作成内容
- ハンドル:select
- 名前:選択
- 複数のオプションを選択可能にする。:チェック
- 並び順:表示順
- 値:下記値を作成
hoge01:hogeA
hoge02:hogeB
hoge03:hogeC
hoge04:hogeD
◇詳細ページ
・下記内容をphpに記載
・ページを作成し、「選択」の表示したい値にチェック
・ブロック追加でページ属性表示を選択
・表示するプロパティで上記で作成した属性を選択
・「選択」の値の下記内容がソース上に表示される
hoge02:hogeB
hoge03:hogeC
・この時HTMLのソース上で下記内容で書き出したい。
<ul class="XXXX">
<li class="hoge02"><span>hogeB</span></li>
<li class="hoge03"><span>hogeC</span></li>
</ul>
◇一覧ページ
・下記内容をphpに記載
・ページを作成し、ブロック追加でページリストを選択
・一覧に表示する各詳細ページに詳細ページ同様にHTMLのソース上で下記内容で書き出したい。
詳細1
<ul class="XXXX">
<li class="hoge02"><span>hogeB</span></li>
<li class="hoge03"><span>hogeC</span></li>
</ul>
詳細2
<ul class="XXXX">
<li class="hoge03"><span>hogeC</span></li>
<li class="hoge04"><span>hogeD</span></li>
</ul>
-------------
・使用PC:windows8
・concrete5 のバージョン:5.7.5.1
-------------
Re: 属性の「選択」の表示のカスタマイズについて
1.application/blocksディレクトリ内に
page_attribute_displayデレクトリ作成します。
2.page_attribute_displayディレクトリ内に
templatesディレクトリを作成します。
3.templatesディレクトリ内に
attribute_ul_li.phpファイルを作成します。
4.attribute_ul_li.phpファイルに下記を記述します。
<?php
defined('C5_EXECUTE') or die(_("Access Denied."));
echo $controller->getOpenTag();
echo "<span class=\"ccm-block-page-attribute-display-title\">".$controller->getTitle()."</span>";
$category = explode("\n",$controller->getContent());
echo '<ul class="XXXX">';
foreach($category as $ctg){
$spec = explode(":",$ctg);
echo '<li class="' . h($spec[0]) . '"><span>' . h($spec[1]) . '</span></li>';
}
echo '</ul>';
echo $controller->getCloseTag();
保存し、カスタムテンプレート適用すれば、可能だと思います。
多摩勉強会/遠藤
Re: 属性の「選択」の表示のカスタマイズについて
ulリストをページリストブロックのカスタムテンプレートで出力する事を想定して、
カスタムテンプレートの例を記載させて頂きます。
半角の":"で分割する為に、PHPの関数「split()」等を使用しています。
表示のパターンの違いがある場合は、それぞれカスタムテンプレートで対応して頂ければいいかと思いますので、1パターンのサンプルで・・・
ページ属性が選択されていない場合などの、ロジックは記載しておりませんが、ご参考にしてください。