Форма редактирования своего модуля

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

Аватар пользователя Bios Bios 4 февраля 2010 в 8:13

Есть свой модуль...

В него добавляются данные (есть свои таблицы в базе)...

Проходят валидации и другие проверки перед сохранением...

Возник вопрос есть ли у кого то рабочий пример как организовать правильное редактирование этих данных и удаление (с подтверждением или без него)???

САМА ФОРМА:

<?php
function tender_download_file_form($form_state$nid) { // ГЕНЕРИРОВАНИЕ ФОРМЫ знаю что нужно титлы писать на инглише как будет готово исправлю
  
$form['download']['company'] = array('#type' => 'textfield''#title' => t('Название организации'),);  
  
$form['download']['company_rnn'] = array('#type' => 'textfield''#title' => t('РНН организации'),);
  
$form['download']['company_director'] = array('#type' => 'textfield''#title' => t('Ф. И. О. директора'),);  
  
$form['download']['company_upoln_predst'] = array('#type' => 'textfield''#title' => t('Ф. И. О. уполномоченного представителя'),);  
  
$form['download']['company_upoln_predst_udost'] = array('#type' => 'textfield''#title' => t('№ удостоверения'),);
  
$form['download']['company_adres'] = array('#type' => 'textfield''#title' => t('Юридический адрес (включая город)'),);    
  
$form['download']['company_tel'] = array('#type' => 'textfield''#title' => t('Телефон (включая код города)'), );
  
$form['download']['company_email'] = array('#type' => 'textfield''#title' => t('Электронная почта (разрешается только 1 email)'),);
  
$form['download']['buttons']['submit'] = array('#type' => 'submit''#value' => t('Submit'),);
  
$form['#redirect'] = 'tender_documentation/'.$nid;
  return 
$form;
}

function 

tender_download_file_form_submit($form, &$form_state) { // ОБРАБОТЧИК ФОРМЫ вставка...
  
$download $form_state['values']['download'];
  
$company_email $form_state['values']['company_email'];
  
$nid=arg(1);
  
  
$result db_query("SELECT * FROM {tender_email} WHERE company_email='%s'"$company_email);
  
$emailObj db_fetch_object($result);

  if (

$emailObj != null && $emailObj->email == $company_email) {
    
drupal_set_message(t("Your username already exists in the database.") ."<br />" .
      
t("Please enable cookies for these downloads to work."));
    
$auth $emailObj->auth;
  }
  else {
  
$company $form_state['values']['company'];
  
$company_director $form_state['values']['company_director'];
  
$company_rnn $form_state['values']['company_rnn'];
  
$company_upoln_predst $form_state['values']['company_upoln_predst'];
  
$company_upoln_predst_udost $form_state['values']['company_upoln_predst_udost'];
  
$company_adres $form_state['values']['company_adres'];
  
$company_tel $form_state['values']['company_tel'];
  
    
$auth md5(uniqid(""));
    
db_query(
      
"INSERT INTO {tender_email} " .
      
"(nid, company, company_director, company_rnn, company_upoln_predst, company_upoln_predst_udost, company_adres, company_tel, company_email, auth, updated_at) " // Вставка данных о пользователе
      
"VALUES ('%s','%s', '%s', '%s','%s', '%s','%s', '%s','%s', '%s', '"date("Y-m-d H:i") ."')",
        
$nid$company$company_director$company_rnn$company_upoln_predst$company_upoln_predst_udost$company_adres$company_tel$company_email$auth
    
);
  }
  
setcookie("download_auth"$company_email ."|"$authstrtotime('+10 years'));
}

?>

Перерыл уже кучу сайтов... Кругом есть примеры как сделать форму для сохранения данных, а для редактирования не нашел...

Пытался понять как работает модуль node (по совету RxB) но тоже не догоняю сложно ориентироваться когда сотня взаимосвязанных функций...

Может есть у кого нибудь пример простецкого микромодуля который имеет свою таблицу и позволяет хранить / редактировать / удалять данные

Комментарии

Аватар пользователя graker graker 4 февраля 2010 в 23:05

Так ведь вам правильно говорили: это одна и та же форма. Добавьте к каждому элементу поле '#default_value', в него пропишите соответствующее значение из $form_state['values'], если оно установлено, и, собственно, это все.

А в _submit добавите UPDATE просто, например если где-нибудь в форме id существующей записи установлен.

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 4 февраля 2010 в 23:05

Bios, начинаете напрягать. Скоро, наверно, перед походом в туалет топики будете создавать?
Я привёл модуль node в качестве примера в прошлой теме, если вам кажется, что есть способ легче, то пожалуйста, придумывайте

Аватар пользователя Bios Bios 5 февраля 2010 в 1:46

RxB

Никто ведь не обязывает вас отвечать... если не хотите не надо... У меня был опыт когда неделю тратиш на какую нибудь мелоч... А тут возможно кто то сталкивался, кто то сможет помочь...

Как я понимаю основное направление этого сайта поддержка и обсуждение системы... так что теоретически все в норме...

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 5 февраля 2010 в 2:00

Изобретая велосипед потеряется времени ещё больше.
Ещё раз советую обратить внимание на модули ядра. Ничего нового ПРАВИЛЬНОГО не вы ни другие не придумаете. "Лишние" функции на ваш взгляд, совсем не лишние

Аватар пользователя Bios Bios 5 февраля 2010 в 2:09

Я не говорил что функции лишние, говорил что сложно ориентироваться в них... Ну да ладно...

В том то и дело что не хочется изобретать велосипед, хочется как положено... когда есть простой пример его проще усложнять под собственные нужды...

Тот модуль что я делаю сделан на основе другого... в итоге от другого осталось 2 функции...

как нибудь разберусь )) за то что подсказывали вам благодарен...