Мой первый модуль, помогите плс

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

Аватар пользователя GolovaNoga GolovaNoga 17 февраля 2010 в 15:33

Пишу первый в своей жизни модуль. ПОявились пробелмы, поомгите плс советом.

Модуль по задумке должен отправлять данные текущей ноды (CCK поля, название) на email введнные в форму на этой странице.

Создал форму, на ней поле email

<?php
$form
['email'] = array(
  
'#type' => 'textfield',
  
'#title' => t('Email'),
  
'#default_value' => $user->mail,
  
'#size' => 30,
  
'#maxlength' => 128,
  
'#description' => t('Your email address'),
);
?>

при отправке формы

<?php
function quiz_form_submit ($form_id, &$form_state) {
  
$name $form_state['values']['name'];

  

$output t('Hi ');
  
$output .= check_plain($name);
  
$output .= t(' the form was submitted successfully');

    

$valid_email $form['email'];
    
$from 'email@mysite.com';
    
$body 'New Email Sent = ' $valid_email;

    

$params = array(
    
'body' => $body,
    
'subject' => 'This is a subject',
    );
   

    if (

drupal_mail('somemodule''send'$valid_emaillanguage_default(), $params$fromTRUE))
    {
        
drupal_set_message('An email has been sent to ' $valid_email);       
    } else {
        
drupal_set_message('There was an error sending your email');
    }  
  
  
drupal_set_message($output);
}
?>

Форма не отправляется на $valid_email хоят показывается drupal_set_message('An email has been sent to ' . $valid_email); но без emaila/

Спасибо за любые советы!

Комментарии

Аватар пользователя sas@drupal.org sas@drupal.org 17 февраля 2010 в 21:56

function quiz_form_submit ($form_id, &$form_state) {
$name = $form_state['values']['name'];

$output = t('Hi ');
$output .= check_plain($name);
$output .= t(' the form was submitted successfully');

$valid_email = $form['email'];

как определяется $form ?

Аватар пользователя Обухов Никита Обухов Никита 17 февраля 2010 в 23:06

$valid_email = $form_state['values']['email'];

Проверку на правильность емайла делаете в соотв функции валидации. Если емайл неверный - до стадии сабмита дело не дойдет.