Друпал юзаю первую неделю, нужна помощь. При создании первого модуля столкнулся с проблемой вывода из бд. При использовании tablesecect пишет записей нет, хотя в БД есть значения.
function world_m_menu() {
$items['form'] = array(
'title' => 'Редактор синонима слов',
'page callback' => 'drupal_get_form',
'page arguments' => array('world_m_my_form'),
'access callback' => TRUE,
'type' => MENU_NORMAL_ITEM
//'access arguments' => array('access content'),
// 'type' => MENU_CALLBACK,
);
// dpm('000');
return $items;
}
function world_m_my_form($form, &$form_state) {
$form['word1'] = array(
'#type' => 'textfield',
'#title' => t('Add Word'),
);
$form['add'] = array(
'#type' => 'submit',
'#value' => t('Add'), '#submit' => array('world_m_form_submit')
);
$form['word2'] = array(
'#type' => 'textfield',
'#title' => t('Search word'),
);
$form['search'] = array(
'#type' => 'submit',
'#value' => t('Search'),'#submit' => array('world_m_form_submit2')
);
$form['vivod'] = array(
'#type' => 'submit',
'#value' => t('vivod'),'#submit' => array('world_m_show_table')
);
return $form;
}
function world_m_form_submit($form, &$form_state) {
$text = $form_state['values']['word1'];
$id = db_insert('swords')->fields(array(
'word' => $text,
))->execute();
drupal_set_message('Сообщение отправлено');
}
function mymodule_form_validate($form, &$form_state) {
if( !$form_state['values']['word1'] )
drupal_set_message('ошибка');
}
function world_m_show_table($form, &$form_state)
{
$header = array(
array('data' => t('Идентификатор'), 'field' => 'id'),
array('data' => t('Слово'), 'field' => 'word'),
);
$items = db_select('swords', 's')
->fields('s', array('id', 'word'))
->extend('PagerDefault')
->limit(10)
->extend('TableSort')
->orderByHeader($header)
->execute()
->fetchAll();
$options = array();
foreach($items as $item)
{
$options[] = array(
'id' => $item->id,
'word' => $item->word ,
);}
dpm($items);
$form['table'] = array(
'#theme' => 'tableselect',
'#header' => $header,
'#options' => $options,
'#empty' => t('No content available.'),
);
//dpm($form);
return $form;
}