Block Designer Pro のブロック内容(repeatableの中身)をPage Listから表示したい

2018年2月15日 at 13:44

以下のソースを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から表示したい

2018年2月15日 at 16:59
Block Designer Pro のリピート要素以外のコンテンツは、どんなコードで呼び出していますか?それを改造したらいけると思うのですが、やったことがないので参考にしたいです
 

Re: Block Designer Pro のブロック内容(repeatableの中身)をPage Listから表示したい

2018年2月15日 at 17:44
返信ありがとうございます。わかりづらくてすみません。
リピートするコンテンツ部のソースは色々試しましたがだめだったので先述のコードからは省いてます。

投稿のコード内、日本語箇所がそれぞれ以下にあたります。
「エリア名」ー テーマ内エリア名
「カスタムブロックハンドル」ー 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から表示したい

2018年2月15日 at 17:53
多分、 foreach ($bObj->スラッグ as $item) { } という感じで表示できないかなぁ〜
 

Re: Block Designer Pro のブロック内容(repeatableの中身)をPage Listから表示したい

2018年2月15日 at 18:00
アドバイスありがとうございます、出先から戻り次第試してみます。
 

Re: Block Designer Pro のブロック内容(repeatableの中身)をPage Listから表示したい

2018年2月17日 at 19:19
色々試してみてはいますが、concrete5及びblock designer proの理解度が低く現状は以下の通りです。

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から表示したい

2018年2月19日 at 13:54
foreach ($bObj->HeaderFeatureUI as $item)

じゃないかと思います!
 

Re: Re: Block Designer Pro のブロック内容(repeatableの中身)をPage Listから表示したい

2018年2月21日 at 16:19
返答遅くなってすみません、
$ulItem = $bObj->HeaderFeatureUl;
var_dump($ulItem);
でNULLがでます。
上記はarray型でもないようでした。
 

Re: Block Designer Pro のブロック内容(repeatableの中身)をPage Listから表示したい

2018年2月22日 at 11:31
そうなのか… var_dump($bOb) で確認するのが良さそうですね