рдЖрд▓реЗрдЦ рдХреЗ рджреВрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг 7 рдХреЗ рд▓рд┐рдП Drupal Forms API рдХреЗ рдЕрдВрддрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд▓реЗрдЦ рдХрд╛ рдпрд╣ рднрд╛рдЧ рдПрдХ рдЦреБрд▓реЗ рд╡рд┐рд╖рдп рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реБрдЖ рд╣реИ, рдЬреЛ рди рдХреЗрд╡рд▓ Drupal рдмреНрд▓реЙрдЧ рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдкрдиреЗ рдЖрдЧреЗ рдХреЗ рд▓реЗрдЦ (рд╡рд┐рд╖рдп рдмрдирд╛рдиреЗ рдкрд░) рдмрдВрдж рдмреНрд▓реЙрдЧ рд▓реЗрдЦреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реВрдВрдЧрд╛, рддрд╛рдХрд┐ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рди рдХрд░реЗрдВ рдЬреЛ рдбреНрд░реБрдкрд▓ рдореЗрдВ рд░реБрдЪрд┐ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВред
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ , рд╣рдордиреЗ рдПрдХ рд╕рд░рд▓ рдореЙрдбреНрдпреВрд▓ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рджреЗрдЦрд╛ рдЬреЛ AJAX (рдбреНрд░реБрдкрд▓ 6 рдореЗрдВ "рдПрдПрдЪрдПрдПрдЪ" рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд) рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рджрд░реНрдЬ рдирд╛рдо рд▓реМрдЯрд╛рдпрд╛ред рдЕрдм рд╕рдВрд╕реНрдХрд░рдг 7 рдХреА рдмрд╛рд░реА рд╣реИред
1. Drupal API 7 рдореЗрдВ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрджрд▓рд╛рд╡
- Drupal 7 рдореЗрдВ, рд╕реВрдЪрдирд╛ рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрджрд▓ рдЧрдИ рд╣реИрдВред рдЕрдм, рдореЙрдбреНрдпреВрд▓ ( рдЗрдВрдХ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓реЛрдВ) рдореЗрдВ рд╢рд╛рдорд┐рд▓ php рдХреЛрдб рд╡рд╛рд▓реА рдХрд┐рд╕реА рднреА рдлрд╛рдЗрд▓ рдХреЛ рдЬрд╛рдирдХрд╛рд░реА- рдлрд╝рд╛рдЗрд▓ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЛрдИ рднреА рдирд╣реАрдВ рд╣реИрдВред
- AJAX рд╣реИрдВрдбрд▓рд┐рдВрдЧ рд╡рд┐рдзрд┐ рдмрджрд▓ рдЧрдИ рд╣реИред рдЕрдм рд╣реБрдХ_рдореЗрдиреВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдЖрдк рддреБрд░рдВрдд рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкрде рдЕрдм рдкреНрд░рдгрд╛рд▓реАрдЧрдд рд╣реИ - / рдкреНрд░рдгрд╛рд▓реА / ajax ред
- рдлреЙрд░реНрдо рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рдЕрдм, рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджреЛ рдЪрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ - рдкреНрд░рдкрддреНрд░ рдХреА рдПрдХ рд╕рд░рдгреА рдФрд░ рдкреНрд░рдкрддреНрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХред
2. рдкреНрд░рдкрддреНрд░ рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди
рдкреНрд░рдкрддреНрд░ рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдорд╛рдореВрд▓реА рд╣реИрдВред Drupal Forms API рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рд╕рдорд╛рди рд╣реИрдВред
/* FC Form */ // ( , , ) function fc_form($form, &$form_state) { $form = array(); $form['name'] = array( '#type' => 'textfield', '#description' => 'Your name', '#size' => '15', ); $form['submit'] = array( '#type' => 'submit', '#value' => 'Submit', // ajax '#ajax' => array( // callback- 'callback' => 'fastcontact_ajax', 'wrapper' => 'fc-form', ), ); return $form; }
2. рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди
// callback- . function fastcontact_ajax($form, &$form_state) { // name values form_state $name=$form_state['values']['name']; // markup . $form['result'] = array( '#markup' => ' <b>'.$name.'</b>', ); return $form; }
$ Form_state рд╕рд░рдгреА рдХрд╛ рдорд╛рди рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣реИред рдпрд╣ рдкреНрд░рдкрддреНрд░ рдФрд░ рдЙрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ ред рд╡рд╣рд╛рдБ рд╕реЗ рд╣рдо рдЕрдкрдиреЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдирд╛рдо рдХрд╛ рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВред
рдпрджрд┐ Drupal 6 рдореЗрдВ рд╣рдордиреЗ drupal_json () рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкрд╛рда рднреЗрдЬрд╛ рд╣реИ, рддреЛ Drupal 7 рдореЗрдВ рд╣рдо рдлреЙрд░реНрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдорд╛рд░реНрдХрдЕрдк рддрддреНрд╡ рдХреЛ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред Html рдорд╛рд░реНрдХрдЕрдк рдХреЛ рдлреЙрд░реНрдо рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдХрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рддрддреНрд╡ рджреНрд░реБрдкрд╛рд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 6 рдореЗрдВ рднреА рдореМрдЬреВрдж рдерд╛ - рд▓реЗрдХрд┐рди рд╕рдВрд╕реНрдХрд░рдг 7 рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ ред
рдЕрдм, рд╣рдореЗрдВ рдлрд╝реЙрд░реНрдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рдЕрдВрддрд┐рдо рд▓реЗрдЦ рд╕реЗ рдорд╛рдирдХ рдХреЛрдб рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
function render_fc_form() { $out = '<div id="fc-form-wrapper">'; $out .= drupal_render(drupal_get_form('fc_form')); $out .= '</div><!-- /.fc-form-->'; return $out; }
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ Drupal 7 рдореЗрдВ рдХрдИ рдФрд░ рдПрдкреАрдЖрдИ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВред рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓реЗрдЦрди (рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрд▓рдЧ рд╕реВрдЪреА) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг 6 рдХреЗ рдмрд╛рдж Drupal API рдореЗрдВ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ ред
рдкреВрд░реЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ