Witam,

dopiero co zaczynam przygodę z Drupalem więc pewnie pytanie będzie trywialne, ale w jaki sposób można zapisać dane z formularza do bazy danych, a następnie wyświetlić je na innej stronie w zależności od potrzeby?

szukałem na google ale głównie znajduje wyniki jak zainstalować drupala, skonfigurować itd.

  1. function nowe_menu() {
  2. $items['dalej'] = array(
  3. 'title' => t('dalej'),
  4. 'page callback' => 'drupal_get_form',
  5. 'page arguments' => array('dalej_multiform'),
  6. 'type' => MENU_NORMAL_ITEM,
  7. 'access arguments' => array('access content'),
  8. );
  9.  
  10. return $items;
  11. }
  12.  
  13. function dalej_multiform(&$form_state) {
  14. $step = isset($form_state['values']) ? (int) $form_state['storage']['step'] : 1;
  15.  
  16. $form_state['storage']['step'] = $step + 1;
  17. $form = dalej_get_form($step, $form_state['storage']);
  18.  
  19. $button_name = t('Wyślij');
  20.  
  21. if ($step < 4) {
  22. $button_name = t('Następny krok');
  23. }
  24.  
  25. $form['submit'] = array(
  26. '#type' => 'submit',
  27. '#value' => $button_name
  28. );
  29.  
  30. switch($step) {
  31. case 2:
  32. $form_state['storage']['dalej_1'] =
  33. $form_state['values']['dalej_1'];
  34. break;
  35. case 3:
  36. $form_state['storage']['dalej_2'] =
  37. $form_state['values']['dalej_2'];
  38. break;
  39. case 4:
  40. $form_state['storage']['dalej_3'] =
  41. $form_state['values']['dalej_3'];
  42. break;
  43. }
  44.  
  45. return $form;
  46. }
  47.  
  48. function dalej_get_form($step, array $selection) {
  49. if (is_int($step) && in_array($step, array(1,2,3,4))) {
  50. $form = 'dalej_step' . $step . '_form';
  51. return $form($selection);
  52. }
  53. }


to jest fragment kodu z modułu który stworzyłem, dalej są tylko funkcje z kolejnymi krokami w których są pola typu input. I właśnie z dane z tych pól chciałbym umieścić w DB,nie mam stworzonej żadnej dodatkowej tabeli.

Pozdrawiam

Edit.

po przejrzeniu dokumentacji z API drupala znalazłem rozwiązanie:
  1. function test_myform_submit ( $form , & $form_state ) {
  2. db_query ( "INSERT INTO {table} (name, log, hidden) VALUES ('%s', %d, '%s')" , $form_state [ 'values' ][ 'name' ], $form_state [ 'values' ][ 'access' ][ 'log' ], $form_state [ 'values' ][ 'hidden' ]);
  3. drupal_set_message ( t ( 'Your form has been saved.' ));
  4. }


może komuś się kiedyś przyda smile.gif