Вывод массива в шаблон [Решено]

Главные вкладки

Аватар пользователя Vigorius Vigorius 26 февраля 2010 в 16:07

Добрый день! Ребят, помогите пожалуйста вывести список 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;
}
?>

Комментарии

Аватар пользователя Vigorius Vigorius 26 февраля 2010 в 19:02

"vadim_" wrote:
<?php
$mynode_users = pplw($node->nid); // ***
?>

Спасибо, это упустил...
Но в результате, также не работает, результат Array.

Аватар пользователя oksale oksale 26 февраля 2010 в 19:09

Что то типа этого:

<?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;
?>
Аватар пользователя vadim_ vadim_ 26 февраля 2010 в 19:35

"Vigorius" wrote:

<?php
'#value' => theme('mynode_node', $mynode_users),
?>

А где ваша реализация theme_mynode_node()?

И попробуйте здесь просто
<?php
'arguments' => array(
'darnode_users' //Регестрируем переменную для шаблона
),
?>

Аватар пользователя Vigorius Vigorius 26 февраля 2010 в 20:48

"oksale" wrote:
Что то типа этого:

Ага, большое спасибо - это работает только строку:
<?php $res += $k ":" $v "<br />"?>
нужно заменить на:
<?php $res .= $k ":" $v"<br />"?>

"vadim_" wrote:
А где ваша реализация theme_mynode_node()?
И попробуйте здесь просто

Мой модуль использует свой шаблон *.tpl.php, поэтому использую такую конструкцию.