You are here

function seochecklist_admin_settings_submit in SEO Checklist 7.3

Same name and namespace in other branches
  1. 5.2 seochecklist.module \seochecklist_admin_settings_submit()
  2. 5 SEOChecklist.module \SEOChecklist_admin_settings_submit()
  3. 6.3 seochecklist.admin.inc \seochecklist_admin_settings_submit()
  4. 6.2 seochecklist.module \seochecklist_admin_settings_submit()

Submit callback for seochecklist_admin_settings().

File

./seochecklist.admin.inc, line 113
Administrative page callbacks for the seochecklist module.

Code

function seochecklist_admin_settings_submit($form, &$form_state) {
  global $user;
  $count = 0;
  foreach ($form_state['values'] as $key => $value) {
    if (preg_match('/seochecklist_task_/', $key)) {
      $key = explode('_', $key);
      $key = $key[2];
      $current = db_query("SELECT completed FROM {seo_checklist} WHERE id = :id", array(
        ':id' => $key,
      ))
        ->fetchField();
      if ($current === FALSE) {
        db_query("INSERT INTO {seo_checklist} (id, completed, uid) VALUES (:id, :completed, :uid)", array(
          ':completed' => $value ? time() : 0,
          ':uid' => $user->uid,
          ':id' => $key,
        ));
        if ($value == TRUE) {
          $count++;
        }
      }
      elseif ((bool) $current != $value) {

        // If the checkbox changed states, update the record.
        db_query("UPDATE {seo_checklist} SET completed = :completed, uid = :uid WHERE id = :id", array(
          ':completed' => $value ? time() : 0,
          ':uid' => $user->uid,
          ':id' => $key,
        ));
        $count++;
      }
    }
  }
  variable_set('seo_checklist_link', $form_state['values']['seochecklist_task_66']);
  drupal_set_message(format_plural($count, 'Updated @count task successfully.', 'Updated @count tasks successfully.'));
}