2013-08-07 3 views
0

Из этогоJoomla Доступ getModules структура данных

jimport('joomla.application.module.helper'); 
$modules = JModuleHelper::getModules('top'); 
echo '<pre>'; 
print_r($modules); 
echo '</pre>'; 

, который выводит эту структуру

Array 
(
    [0] => stdClass Object 
     (
      [id] => 25 
      [title] => Newsflash 
      [module] => mod_newsflash 
      [position] => top 
      [content] => 
      [showtitle] => 1 
      [control] => 
      [params] => catid=3 
style=random 
items= 
moduleclass_sfx= 
      [user] => 0 
      [name] => newsflash 
      [style] => 
     ) 

) 

Я в настоящее время называют эту функцию, чтобы получить его к выходу его

<?=$modules[0]->content ?> 

Я хотел бы назвать с одной строкой, но она не работает

<?=JModuleHelper::getModules('top')[0]->content ?> 

Я могу сделать это в единственной версии getmodule, и она работает, она работает, потому что она не завернута в массив.

<?=JModuleHelper::getModule('top')->content ?> 

Кто-нибудь знает, как развернуть эту структуру данных с помощью одной строки кода?

+1

Вы пробовали 'reset (JModuleHelper :: getModules ('top')) -> content'? – MasterAM

+0

Это сработало. Спасибо! – user1978109

+0

ОК. Я опубликую его с некоторыми дополнительными объяснениями для других. – MasterAM

ответ

1

PHP reset() сбрасывает внутренний указатель массива и возвращает первый элемент. Поэтому

$modules = reset(JModuleHelper::getModules('top'))->content; 

получит содержимое первого элемента.

Этот будет сбой, однако, если по очевидным причинам пустой массив возвращается JModuleHelper. К сожалению, это не пойдет тихо, так как reset() возвращает false при наличии пустого массива.

Смежные вопросы