You are here

asaf_example.api.areas.inc in Asaf (ajax submit for any form) 8

Same filename and directory in other branches
  1. 7 modules/asaf_example/asaf_example.api.areas.inc

File

modules/asaf_example/asaf_example.api.areas.inc
View source
<?php

function asaf_example_api_areas($form, &$form_state) {
  $form = array(
    '#theme' => 'asaf_examples_areas',
  );
  $form['up'] = array(
    '#markup' => l('← Go to the examples list', 'examples/asaf_example'),
  );
  $form['time'] = array(
    '#type' => 'item',
    '#title' => t('Form'),
    '#markup' => 'Server time: ' . date('H:i:s'),
  );
  $form['area1'] = array(
    '#type' => 'container',
    '#asaf_area' => 'area1',
  );
  $form['area1']['time'] = array(
    '#type' => 'item',
    '#title' => 'Area #1',
    '#markup' => 'Server time: ' . date('H:i:s'),
  );
  $form['area1']['submit_area1'] = array(
    '#type' => 'submit',
    '#value' => t('Update area #1'),
    '#asaf_target_area' => 'area1',
  );
  $form['area2'] = array(
    '#type' => 'container',
    '#asaf_area' => 'area2',
  );
  $form['area2']['time'] = array(
    '#type' => 'item',
    '#title' => 'Area #2',
    '#markup' => 'Server time: ' . date('H:i:s'),
  );
  $form['area2']['area3'] = array(
    '#type' => 'container',
    '#asaf_area' => 'area3',
  );
  $form['area2']['area3']['time'] = array(
    '#type' => 'item',
    '#title' => 'Area #3',
    '#markup' => 'Server time: ' . date('H:i:s'),
  );
  $form['actions'] = array(
    '#type' => 'actions',
  );
  $form['actions']['submit_form'] = array(
    '#type' => 'submit',
    '#value' => t('Update form'),
    '#asaf_target_area' => 'form',
  );
  $form['actions']['submit_area1'] = array(
    '#type' => 'submit',
    '#value' => t('Update area #1'),
    '#asaf_target_area' => 'area1',
  );
  $form['actions']['submit_area2'] = array(
    '#type' => 'submit',
    '#value' => t('Update area #2'),
    '#asaf_target_area' => 'area2',
  );
  $form['actions']['submit_area3'] = array(
    '#type' => 'submit',
    '#value' => t('Update area #3'),
    '#asaf_target_area' => 'area3',
  );
  $form['#submit'] = array(
    'asaf_example_areas_submit',
  );
  asaf_prepare_form($form, $form_state);
  return $form;
}
function asaf_example_areas_submit($form, &$form_state) {
  $form_state['rebuild'] = TRUE;
}
function theme_asaf_examples_areas($variables) {
  $output = '';
  $element = $variables['element'];
  $output .= drupal_render($element['up']);
  $output .= drupal_render($element['time']);
  $output .= '<div class="area1-wrapper">' . drupal_render($element['area1']) . '</div>';
  $output .= '<div class="area2-wrapper">' . drupal_render($element['area2']) . '</div>';
  $output .= drupal_render($element['actions']);
  foreach (element_children($element, TRUE) as $key) {
    $output .= drupal_render($element[$key]);
  }
  return $output;
}