ページ構造は、
トップ
ーあああ
ーいいい
ーお知らせ
ー新着情報
*新着記事1 (a)
*新着記事2 (b)
ーリリース情報
*リリース記事1 (c)
*リリース記事2 (d)
*リリース記事3 (e)
ー採用情報
*採用記事1 (f)
ー情報
*情報伝達1 (g)
*情報伝達2 (h)
となっているとします。
第一階層である、「ーお知らせ」の子ページが3階層になっています。
質問は、この時ページリストとして、(a),(b),(c),(d),(e),(f),(g),(h)
のみを時系列(あるソート順に並べて)表示できるようにしたいのです。
が、しかし、設定では、「ーお知らせ」配下の2階層目の親ここでは、
ー新着情報
ーリリース情報
ー採用情報
ー情報
と3階層の(a)-(h)が両方表示されてしまいます。
★方法として、第2階層をカスタムテンプレートで除くのですが、
抽出後の情報なので、これをやると、ページナビを4件づつとしていると、
あたり前ですが、1ページで、2階層を除くので、3件とかになります。
★3階層の(a)-(h)に is_featured 属性をつけて、特集ページなど、
属性をキーでの抽出でもいいですが、
できれば、親子、階層をキーで、
お知らせの配下の2階層親を除き、3階層の子のみを抽出としたいのです。
※2階層の親は、サイドバーとかの、オートナビで、リンク作成します。
これは行けると思います。
※補足ですが、「お知らせ」は、オートナビから除く設定になっています。
一般的な、グローバルナビでは表示したくないからです。
以上質問が長くなりすみません。
よろしくお願いします。
Posted on 3月 05, 2015 at 5:12 午前
|
acliss19xx 様
ご回答ありがとうございます。
ご連絡遅れてすみませんでした。
ご投稿いただきました、リンクの
blog_index.php
blog_index_thumbnail.php
をページリストのカスタムテンプレートに置いて、表示させてみました。
が、結果は同じでした。
ですので、コア(concrete/blocks/page_list/::インストール時にあるカスタムテンプレート)
と差異を確認してみました。
どうも、もとからインストールされているものと同じようです。
これをもとにカスタマイズを始めましたので、困りました。
なので、検索キーワードから、抜粋ではなく、“サマリー”(たまたま気づきました) とかで検索をかけてみました。
そして、本家側のリンク、
https://www.concrete5.org/community/forums/usage/truncate-summaries/
のフォーラム内に、Truncate Summaries と言う投稿を発見しました。
これで、コードのカスタマイズを行いますと、仕様通りのコードを生成することができました。
/concrete/blocks/page_list/templates/blog_index.php
blog_index.php 内の 35行目
<div class="excerpt">
<?php
$a = new Area('Main');
$a->disableControls();
$a->display($cobj);
?>
</div>
を以下のように変更する
<div class="excerpt">
<?php
$a = new Area('Main');
$a->disableControls();
if($truncateChars) {
$th = Loader::helper('text');
ob_start();
$a->display($cobj);
$excerpt = ob_get_clean();
echo $th->entities($th->shorten($excerpt,$truncateChars));
} else {
$a->display($cobj);
}
?>
</div>
このコードに変更して、表示を確認しますと、仕様通りになりました。
また、ページリストブロック、要約の文字数制限も、文字数が指定も字数付近に、
整形されるようになりました。
ご投稿をヒントに自己完結できました。
ありがとうございます。
Posted on 2月 27, 2015 at 5:58 午前
|