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