Добрый день! Ребят, помогите пожалуйста вывести список uid и name в шаблон.
Kод написанный ниже, возвращает на страницу Array, а предполагается что будут выведены uid и name (к примеру: 2 Евгений 3 Сергей 25 Андрей), пользователей относящихся к этой ноде.
<?php /**
* Implements hook_theme().
*/
function mynode_theme() {
return array(
'mynode_node' => array(
'template' => 'mynode_node',
'arguments' => array(
'darnode_users' => NULL, //Регестрируем переменную для шаблона
),
),
);
}
//формирует и возвращает список пользователей
function pplw($nid){
// if ($cache = cache_get('leoevents'.$nid)) {return $cache->data;}
$result = db_query('SELECT name, u.uid FROM {users} u, {mynode} m WHERE u.uid = m.uid AND nid = %d',$nid);
$items = array ();
while ($node = db_fetch_object($result)) {
$items[] = l($node->uid, $node->name);
}
return $items;
}
/**
* Implementation of hook_view().
* Обрабатываем данные и передаём их в шаблон
*/
function mynode_view($node, $teaser = TRUE, $page = TRUE) {
$node = node_prepare($node, $teaser);
$mynode_users = pplw($node->nid); // ***
$node->content['mynode_node'] = array(
'#value' => theme('mynode_node', $mynode_users),
'#weight' => 1,
);
}
return $node;
}?>
Комментарии
Вместо
<?php
$mynode_users = pplw($nid); // ***
?>
нужно
<?php
$mynode_users = pplw($node->nid); // ***
?>
Спасибо, это упустил...
Но в результате, также не работает, результат Array.
Что то типа этого:
<?php
function pplw($nid){
$result = db_query('SELECT name, u.uid FROM {users} u, {mynode} m WHERE u.uid = m.uid AND nid = %d',$nid);
$items = array();
$res = '';
while ($node = db_fetch_object($result)) {
$items[$node->uid] = $node->name;
}
foreach($items as $k => $v) {
$res += $k + ": " + $v + "<br />";
}
return $res;
} $mynode_users = pplw($node->nid);
print $mynode_users;
?>
А где ваша реализация theme_mynode_node()?
И попробуйте здесь просто
<?php
'arguments' => array(
'darnode_users' //Регестрируем переменную для шаблона
),
?>
Ага, большое спасибо - это работает только строку:
<?php $res += $k + ":" + $v + "<br />"; ?>
нужно заменить на:
<?php $res .= $k . ":" . $v. "<br />"; ?>
Мой модуль использует свой шаблон *.tpl.php, поэтому использую такую конструкцию.
В последнее время пишу на js - издержки
Но суть вы поняли)