Пытаюсь определить включённые блоки в регионе
<?php
$region
= 'content_top'; //регион, который я смотрю
$array = block_list($region); // массив этого региона
print_r(block_list($region));// смотрю массив, который выглядит так:
?>
<?php
Array ( [views_nodequeue_1-block] => stdClass Object (
[bid] => 65
[module] => views
[delta] => nodequeue_1-block
[theme] => grey
[status] => 1
[weight] => -16
[region] => content_top
[custom] => 0
[throttle] => 0
[visibility] => 1
[pages] =>
[title] =>
[cache] => -1
[enabled] => 1
[page_match] => 1
[content] =>[subject] =>
) )
?>
Нужно достать значение с ключом [delta], но тут затык - стандартный foreach никак не хочет работать
Если смотреть
<?php
print_r
(array_keys($array));
?>
, выводит только такие ключи
<?php
Array ( [0] => views_nodequeue_1-block )
?>
Что посоветуете?
Комментарии
Я так понял трабла тут stdClass Object
Это объект, а не массив
А нахрена foreach?
<?php
$znachenie = $array['views_nodequeue_1-block']->delta;
?>
Если блоков в массиве (регионе) несколько то:
<?php
foreach ($array as $key => $item) {
if($key == 'views_nodequeue_1-block') $znachenie = $item->delta;
}
?>
Интересные способы, спасибо
Решил по своему,возможно несколько коряво, но работает
<?php
$region
= 'primary_menu';$find_block = 'nice_menus_1';
if(in_array($find_block,array_keys(block_list($region)))) {
print 'Nice menu block detected';
} ?>