Block Designer Pro のブロック内容(repeatableの中身)をPage Listから表示したい
以下のソースをpage_listのカスタムテンプレート内で実行してBlock Designer Pro のリピート要素以外のコンテンツは表示できましたが、
Repeatable設定している中のコンテンツは呼び出し方がわからず躓いています。
Repeatable内コンテンツの表示はどうすればいいかわかる方がおりましたら、ご教授いただけますと幸いです。
https://gist.github.com/hissy/5023088 を使わせてもらいました。
//------------
foreach($pages as $page) {
$blocks = $page->getBlocks('エリア名');
$_blocks = array();
foreach($blocks as $block){
if($block->btHandle == 'カスタムブロックハンドル'){
$_blocks[] = $block;
}
}
$blocks = $_blocks;
if (is_object($blocks[0])) {
$bObj = $blocks[0]->getInstance();
// print property of the block
$headercopy = $bObj->カスタムブロックスラッグ;
$file = File::getByID($bObj->カスタムブロックスラッグ);
$headerimgURL = $file->getURL();
}
}
//
# concrete5 Version
Core Version - 8.3.2
# mySQL
5.6.35
# concrete5 Packages
Block Designer (2.9.1), Block Designer Pro (2.8.5), Page Selector Attribute (2.0), Pixel Theme (2.0.1)
# Server Software
Apache/2.2.32 (Unix) mod_wsgi/3.5 Python/2.7.13 PHP/7.1.8 mod_ssl/2.2.32 OpenSSL/1.0.2j DAV/2 mod_fastcgi/2.4.6 mod_perl/2.0.9 Perl/v5.24.0
# Server API
apache2handler
# PHP Version
7.1.8
Re: Block Designer Pro のブロック内容(repeatableの中身)をPage Listから表示したい
リピートするコンテンツ部のソースは色々試しましたがだめだったので先述のコードからは省いてます。
投稿のコード内、日本語箇所がそれぞれ以下にあたります。
「エリア名」ー テーマ内エリア名
「カスタムブロックハンドル」ー Block Derigner Pro の任意でつけた ハンドル名
「カスタムブロックスラッグ※表示1」ー Block Derigner Pro の任意でつけた スラッグ名
「カスタムブロックスラッグ※表示2」ー Block Derigner Pro の任意でつけた スラッグ名(上記とは別です。)
page_list カスタムテンプレートforeach($pages as $page){}内で
「$headercopy」で文字列、「&headerimgURL」で画像URLが問題なく表示可能です。
Re: Block Designer Pro のブロック内容(repeatableの中身)をPage Listから表示したい
Re: Block Designer Pro のブロック内容(repeatableの中身)をPage Listから表示したい
Re: Block Designer Pro のブロック内容(repeatableの中身)をPage Listから表示したい
Repeatableスラッグが「HeaderFeatureUl」で、
取り出したいリピート要素のスラッグ名は「HeaderFeatureLi」なんですがそこまで辿りつかないです。。
//--------- 以下ソース
foreach($pages as $page) {
$blocks = $page->getBlocks('ContentHeader');//ContentHeader エリア名
$_blocks = array();
foreach($blocks as $block){
if($block->btHandle == 'cont_header'){//cont_header ハンドル名※block designer pro
$_blocks[] = $block;
}
}
$blocks = $_blocks;
//if (is_object($blocks[0])) {
$bObj = $blocks[0]->getInstance();
$headercopy = $bObj->HeaderCopy;//HeaderCopy スラッグ名 表示可(テキスト)
$file = File::getByID($bObj->HeaderImage);
$headerimgURL = $file->getURL();//HeaderImage スラッグ名 表示可(URL)
foreach($bObj as $item){
var_dump($item);
}
//}
}
//------ 以下var_dump($item)結果
array(3) {
[0]=>
string(14) "HeaderImage"
[1]=>
string(13) "HeaderCopy"
["HeaderFeatureUl"]=>
array(0) {}
}
array(0) {}
NULL
NULL
string(2) "67"
string(200) "メインコピーのテストテキストテキストテキストテキストテキストテキスト
テキストテキストテキストテキストテキストテキストテキストテキスト"
Re: Block Designer Pro のブロック内容(repeatableの中身)をPage Listから表示したい
Re: Re: Block Designer Pro のブロック内容(repeatableの中身)をPage Listから表示したい
$ulItem = $bObj->HeaderFeatureUl;
var_dump($ulItem);
でNULLがでます。
上記はarray型でもないようでした。
takuro hishikawa
Re: Block Designer Pro のブロック内容(repeatableの中身)をPage Listから表示したい