Это проблема.
У меня есть блок под названием «Блок избранного пользователя»
Он расположен в регионе «Первая боковая панель»
«Первая боковая панель» появляется на первой странице.
Предполагается, что функция извлекает данные из таблицы f25_fabilities и выводит их внутри блока. Сейчас таблица представляет собой пустой массив.
Когда я return $output
, ни один из моих элементов или ничего не выводится.
Когда я делаю print($output)
, все отображается.
Это мой тестовый код, показывающий, что мой оператор if возвращает true. http://d.pr/zDph
/*
* f25_favorites_my_favorites theme
*/
function theme_f25_favorites_my_favorites($mypaths) {
dsm($mypaths);
print_r(count($mypaths));
$output .= 'n<div id="f25-favorites">n';
$output .= '<div id="f25-favorites-list">n';
if (count($mypaths) == 0) {
$output .= "No favorites have been added";
print "No favorites have been added";
}
else {
foreach ($mypaths as $indpath) {
$output .= l($indpath->title, $indpath->path, $attributes = array());
}
}
$output .= '</div>n';
$output .= '<div id="f25-favorites-add">n';
$output .= '</div>n';
$output .= 'n</div>n';
return $output;
}
Это выводит это: http://d.pr/Uhrs
Обратите внимание на 0 в левом верхнем углу, это вывод 'count ()'
И печать текста внутри «если»
Итак, это моя тема:
/*
* f25_favorites_my_favorites theme
*/
function theme_f25_favorites_my_favorites($mypaths) {
/*dsm($mypaths);
print_r(count($mypaths));*/
$output .= '\n<div id="f25-favorites">\n';
$output .= '<div id="f25-favorites-list">\n';
if (count($mypaths) == 0) {
$output .= "No favorites have been added";
}
else {
foreach ($mypaths as $indpath) {
$output .= l($indpath->title, $indpath->path, $attributes = array());
}
}
$output .= '</div>\n';
$output .= '<div id="f25-favorites-add">\n';
$output .= '</div>\n';
$output .= '\n</div>\n';
return $output;
}
Вызывается с помощью этой функции hook_theme ():
/*
* Implentation of hook_theme().
*/
function f25_favorites_theme () {
return array(
'f25_favorites_my_favorites' => array (
'arguments' => array ('mypaths' => array())
),
);
}
Который вызывается с помощью этой функции hook_block ():
/*
* Implementation of hook_block().
*
*/
function f25_favorites_block($op = 'list', $delta = 0, $edit = array()) {
if ($op == 'list') {
$blocks = array();
$blocks['f25-favorites'] = array(
'info' => t('User Favorites Block'),
'cache' => BLOCK_NO_CACHE,
);
return $blocks;
}
if ($op == 'view') {
switch ($delta) {
case 0:
$mypaths = f25_favorites_user_favorites();
$block = array(
'subject' => t('User Favorites Block'),
'content' => theme_f25_favorites_my_favorites($mypaths)
);
return $block;
};
}
}
Примечательно
Моя тема является «подтемой» темы под названием «Дзен»
У Zen есть block.tpl.php, который выглядит так: http://d.pr/AaO1
Вот полный код моего модуля: http://d.pr/cGqc