mysite_edit_form_submit

Definition

mysite_edit_form_submit($form_id, $form_values)
mysite.module, line 1791

Description

Form submit for mysite_edit_form(). Implementation of the Forms API.

Code

function mysite_edit_form_submit($form_id, $form_values) {
  $check = 0;
  $uid = $form_values['uid'];
  $page = $form_values['page'];
  if ($uid === 0) {
    $check = 1;
  }
  $result = mysite_load_page($uid, $form_values['page']);
  if (isset($result->uid)) {
    // Page zero is the master settings page, still stored in the old {mysite} table.
    if ($page == 0) {
      $sql = "UPDATE {mysite} SET title = '%s', updated = %d, layout = '%s', style = '%s', format = '%s', status = %d, theme = '%s' WHERE uid = %d";
      db_query($sql, $form_values['title'], time(), $form_values['layout'], $form_values['style'], $form_values['format'], $form_values['status'], $form_values['theme'], $uid);
    }
    $sql = "UPDATE {mysite_page} SET title = '%s', updated = %d, layout = '%s', style = '%s', format = '%s', status = %d, theme = '%s' WHERE uid = %d AND page = %d";
    db_query($sql, $form_values['title'], time(), $form_values['layout'], $form_values['style'], $form_values['format'], $form_values['status'], $form_values['theme'], $uid, $page);
    if ($form_values['format_update'] == 1) {
      db_query("UPDATE {mysite_data} SET format = '%s' WHERE uid = %d AND page = %d", $form_values['format'], $uid, $page);
    }
    // Do we update all pages to the settings indicated?
    if ($form_values['set_all']) {
      switch ($form_values['only']) {
        case 'personal':
            // Update the status, but not the title.
            db_query("UPDATE {mysite} SET status = %d WHERE uid = %d", $form_values['status'], $uid);
            db_query("UPDATE {mysite_page} SET status = %d WHERE uid = %d", $form_values['status'], $uid);
          break;
        case 'theme':
            // Update the theme
            db_query("UPDATE {mysite} SET theme = '%s' WHERE uid = %d", $form_values['theme'], $uid);
            db_query("UPDATE {mysite_page} SET theme = '%s' WHERE uid = %d", $form_values['theme'], $uid);
          break;
        case 'layout':
            // Update the layout
            db_query("UPDATE {mysite} SET layout = '%s' WHERE uid = %d", $form_values['layout'], $uid);
            db_query("UPDATE {mysite_page} SET layout = '%s' WHERE uid = %d", $form_values['layout'], $uid);
          break;
        case 'style':
            // Update the style
            db_query("UPDATE {mysite} SET style = '%s' WHERE uid = %d", $form_values['style'], $uid);
            db_query("UPDATE {mysite_page} SET style = '%s' WHERE uid = %d", $form_values['style'], $uid);
          break;
        case 'format':
            // Update the format
            db_query("UPDATE {mysite} SET format = '%s' WHERE uid = %d", $form_values['format'], $uid);
            db_query("UPDATE {mysite_page} SET format = '%s' WHERE uid = %d", $form_values['format'], $uid);
            // Update current formatting as well.
            if ($form_values['format_update'] == 1) {
              db_query("UPDATE {mysite_data} SET format = '%s' WHERE uid = %d", $form_values['format'], $uid);
            }
          break;
      }
    }
    mysite_updated($result->uid);
    drupal_set_message(t('Settings updated.'), 'status');
  }
  else {
    if ($uid > 0 || $check == 1) {
      // When we create this in the {mysite} table, it will copy into the {mysite_page} table on the next page load.
      $sql = "INSERT INTO {mysite} (uid, title, created, updated, layout, style, format, status, theme) VALUES (%d, '%s', %d, %d, '%s', '%s', '%s', %d, '%s')";
      db_query($sql, $form_values['uid'], $form_values['title'], time(), time(), $form_values['layout'], $form_values['style'], $form_values['format'], $form_values['status'], $form_values['theme']);
      drupal_set_message(t('Personal page created'), 'status');
      mysite_updated($uid);
    }
    else {
      drupal_set_message(t('Failure.  Invalid UID'), 'error');
    }
  }
  if ($form_values['op'] == $form_values['submit']) {
    if ($uid > 0) {
      drupal_goto('mysite/'. $form_values['uid'] .'/view/'. $page);
    }
    else {
      drupal_goto('admin/settings/mysite');
    }
  }
  else {
    $goto = 'mysite/'. $form_values['uid'] .'/edit/'. $page .'/'. $form_values['next'];
    drupal_goto($goto);
  }

}