Re: ページ内のスタックのブロックIDの取得方法

2015年12月17日 at 18:11

あまり時間が取れず検証環境を作れないので、ヒント程度にしかならないかもしれませんが…

stackの取得は

$stack = Stack::getByName('Test Stack');

で出来ます。あとは、これをvar_dump()してみるのはどうでしょうか?

Re: ページ内のスタックのブロックIDの取得方法

2015年12月18日 at 7:50
返信ありがとうございます!

ユーザー定義スタックの中のブロック一覧は下記で取得できました!

$db = Loader::db();
$v = array( Stack::ST_TYPE_USER_ADDED );
$rs = $db->GetCol('select stName from Stacks where Stacks.stType = ?', $v );
$blocks_stack = array();
if (count($rs) > 0) {
$pcp = new Permissions($this);
foreach($rs as $garHandle) {
if ($pcp->canViewPageVersions()) {
$s = Stack::getByName($garHandle, 'RECENT');
} else {
$s = Stack::getByName($garHandle, 'ACTIVE');
}
if (is_object($s)) {
$blocksTmp = $s->getBlocks(STACKS_AREA_NAME);
$blocks_stack = array_merge($blocks_stack, $blocksTmp);
}
}
}
var_dump($blocks_stack);