Re: 検索結果ブロックでページ属性を表示させたい

2014年7月25日 at 13:20

検索ブロックの $results に格納されているのは IndexedSearchResult オブジェクトの配列です。
ページリストの $pages 場合は Page オブジェクトの配列になります。
getAttributeは、Pageオブジェクトにしかないメソッドですので、検索結果で使いたい場合は、まず Page オブジェクトを取得する必要があります。

と、理屈はこうですが、実際に書くとこのようになります

<?php
$page = Page::getByID($r->getID());
echo $page->getAttribute('example_handle');
?>

Re: 検索結果ブロックでページ属性を表示させたい

2014年7月25日 at 15:02
hissyさん

ありがとうございます!!
無事取得することができました!

因みにこの辺りの情報はどこを見ると勉強できますか?

designer contentsで作成したテキスト情報を検索ブロックで取得・・・など
やりたいことはまだまだ出てきそうなのですが。
エセ開発者にも理解できそうな(笑)リファレンス、またはTips等の情報が
あればご教示いただければ幸いです。

よろしくお願いいたします。
 

Re: 検索結果ブロックでページ属性を表示させたい

2014年7月25日 at 15:43
情報は書籍が一応おすすめです。英語ですがクックブックは逆引き辞典というかコードサンプル集なので英語が分からなくても役に立つと思います
http://amazon.co.jp/gp/product/4839943842/
http://www.packtpub.com/concrete5-cookbook/book

あと、検索結果や一覧にだす情報であれば、Designer Contentで作ったブロックから情報を取得するのではなく、ページ属性を使うのがセオリーです。そちらに変えることも検討してみてください。DCの情報を出さなきゃいけないのは最終手段と思っていただければ。
 

Re: Re: 検索結果ブロックでページ属性を表示させたい

2014年7月25日 at 16:30
ありがとうございます!
早速購入します!

やはりページ属性なんですね。
DCの情報を取得するのをできるだけ避けた方が良い理由としては、

DCの仕様変更等が読み込むロジックに影響しやすいから?・・などでしょうか?

どちらからでも情報が取れれば便利な気もしますが。(^_^;)
 

Re: 検索結果ブロックでページ属性を表示させたい

2014年7月25日 at 18:01
色々ありますが、仕様変更に弱いと言うのはあります。検索結果に出すと言うことは、将来的にじゃあその属性で絞り込んで検索したいとかいうことになった場合とか。あと、コーディングが結構面倒と言うのもあります…(エリア内のDCブロックが無い場合、2個以上ある場合はどうなる?など)。表示速度にも影響はあると思います。