2013-03-08 3 views
0

Привет, я создаю таблицу, подобную таблице пользователей в drupal 7. Я получаю пустое сообщение, отображаемое на экране «Нет доступных плагинов». даже несмотря на то, что записи извлекаются в массиве. Вот мой кодПустые записи в таблицах выберите drupal 7

function massignite_menu() { 
$items = array(); 
$items['massig/manage'] = array(
'page callback' => 'massignite_selector', 
'file' => 'manage.inc', 
'access arguments' => array('access content'), 
'type' => MENU_CALLBACK, 
); 
return $items; 
} 

function massignite_selector() { 
include('massrpc.php'); 
$header = array(
'plugin' => t('Plugin'), 
'status' => t('Status'), 
); 

$params = array(
'username' => "foo", 
'password' => "bar", 
); 
$pluginsRecords = xmlGetPlugins($params); 
foreach ($pluginsRecords as $key=>$plugin) { 
$options[$key] = array(
    'plugin' => $plugin['Name'], 
    'status' => $plugin['is_active']?'Activated':'Deactivated', 
); 
} 
$form['table'] = array(
'#type' => 'tableselect', 
'#header' => $header, 
'#options' => $options, 
'#empty' => t('No plugins available.'), 
'#multiple' => TRUE, 
); 
$form['submit'] = array(
'#type' => 'submit', 
'#value' => t('Activate'), 
); 
$form['pager'] = array('#markup' => theme('pager')); 
return $form; 

} 

Я последовал за учебник дал here. Любая помощь будет оценена

Редактировать: - Решили! !! По-видимому, я неправильно вызвал свою функцию с помощью menu_hook. Правильный способ сделать это так.

function massignite_menu() { 
$items = array(); 
$items['massig/manage'] = array(
'title' => 'Plugins', 
'page callback' => 'drupal_get_form',        
'page arguments' => array('massignite_table_form'), 
'file' => 'manage.inc', 
'access arguments' => array('access content'), 
'type' => MENU_CALLBACK, 
); 
+0

Предположительно ваши 'xmlGetPlugins()' функция вызывает, я бы начать там. – Clive

+0

Ну, ключ, указанный в цикле foreach, не был числовым, что было одной из проблем. Но все же я могу просматривать только записи, когда я назначаю опцию напрямую, и флажки не отображаются: - foreach ($ options as $ option) { array_push ($ form ['plugins'], $ option); } – Saurabh

ответ

0

вам нужно сделать реальную форму в пользовательском модуле, используя hook_formID_form,

увидеть этот tutorial

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