[ Index ]

PHP Cross Reference of Drupal 6 (gatewave)

title

Body

[close]

/sites/all/modules/site_verify/ -> site_verify.admin.inc (source)

   1  <?php
   2  // $Id: site_verify.admin.inc,v 1.14 2010/01/27 01:24:27 davereid Exp $
   3  
   4  function site_verify_list() {
   5    $engines = site_verify_get_engines();
   6  
   7    $headers = array(
   8      t('Engine'),
   9      t('Meta tag'),
  10      t('File'),
  11      array('data' => t('Operations'), 'colspan' => 2),
  12    );
  13    $rows = array();
  14  
  15    $query = db_query("SELECT svid, engine, file, meta FROM {site_verify}");
  16    while ($record = db_fetch_object($query)) {
  17      $row_key = $engines[$record->engine]['key'] . $record->svid;
  18      $rows[$row_key] = array(
  19        $engines[$record->engine]['name'],
  20        $record->meta ? '<span title="' . check_plain(truncate_utf8($record->meta, 48)) . '">' . t('Yes') . '</spam>' : t('No'),
  21        $record->file ? l($record->file, $record->file) : t('None'),
  22        l(t('Edit'), 'admin/build/site-verify/edit/' . $record->svid),
  23        l(t('Delete'), 'admin/build/site-verify/delete/' . $record->svid),
  24      );
  25    }
  26    ksort($rows);
  27  
  28    if (!$rows) {
  29      $rows[] = array(array(
  30        'data' => t('No verifications available. <a href="@add">Add verification</a>.', array('@add' => url('admin/build/site-verify/add'))),
  31        'colspan' => 5,
  32      ));
  33    }
  34  
  35    $output = theme('table', $headers, $rows);
  36    return $output;
  37  }
  38  
  39  function site_verify_edit_form(&$form_state, $record = array(), $engine = NULL) {
  40    if (!isset($form_state['storage']['step'])) {
  41      $record += array(
  42        'svid' => NULL,
  43        'file' => '',
  44        'file_contents' => t('This is a verification page.'),
  45        'meta' => '',
  46        'engine' => $engine,
  47      );
  48      $form_state['storage']['record'] = $record;
  49      $form_state['storage']['step'] = $record['engine'] ? 2 : 1;
  50    }
  51    else {
  52      $record = $form_state['storage']['record'];
  53    }
  54  
  55    switch ($form_state['storage']['step']) {
  56      case 1:
  57        $engines = site_verify_get_engines();
  58        $options = array();
  59        foreach ($engines as $key => $engine) {
  60          $options[$key] = $engine['name'];
  61        }
  62        asort($options);
  63  
  64        // Ensure custom is always last.
  65        if (isset($options['custom'])) {
  66          $custom = $options['custom'];
  67          unset($options['custom']);
  68          $options['custom'] = $custom;
  69        }
  70  
  71        $form['engine'] = array(
  72          '#type' => 'select',
  73          '#title' => t('Search engine'),
  74          '#options' => $options,
  75        );
  76        $form['next'] = array(
  77          '#type' => 'submit',
  78          '#value' => t('Next'),
  79        );
  80        break;
  81      case 2:
  82  
  83        $form['svid'] = array(
  84          '#type' => 'value',
  85          '#value' => $record['svid'],
  86        );
  87        $form['engine'] = array(
  88          '#type' => 'value',
  89          '#value' => $record['engine']['key'],
  90        );
  91        $form['engine_name'] = array(
  92          '#type' => 'item',
  93          '#title' => t('Search engine'),
  94          '#value' => $record['engine']['name'],
  95        );
  96        $form['#engine'] = $record['engine'];
  97  
  98        $form['meta'] = array(
  99          '#type' => 'textfield',
 100          '#title' => t('Verification META tag'),
 101          '#default_value' => $record['meta'],
 102          '#description' => t('This is the full meta tag provided for verification. Note that this meta tag will only be visible in the source code of your <a href="@frontpage">front page</a>.', array('@front-page' => url('<front>'))),
 103          '#element_validate' => $record['engine']['meta_validate'],
 104          '#access' => $record['engine']['meta'],
 105        );
 106  
 107        $form['file_upload'] = array(
 108          '#type' => 'file',
 109          '#title' => t('Upload an existing verification file'),
 110          '#description' => t('If you have been provided with an actual file, you can simply upload the file.'),
 111          '#access' => $record['engine']['file'],
 112        );
 113        $form['file'] = array(
 114          '#type' => 'textfield',
 115          '#title' => t('Verification file'),
 116          '#default_value' => $record['file'],
 117          '#description' => t('The name of the HTML verification file you were asked to upload.'),
 118          '#element_validate' => $record['engine']['file_validate'],
 119          '#access' => $record['engine']['file'],
 120        );
 121        $form['file_contents'] = array(
 122          '#type' => 'textarea',
 123          '#title' => t('Verification file contents'),
 124          '#default_value' => $record['file_contents'],
 125          '#element_validate' => $record['engine']['file_contents_validate'],
 126          '#wysiwyg' => FALSE,
 127          '#access' => $record['engine']['file_contents'],
 128        );
 129        if (!variable_get('clean_url', 0)) {
 130          drupal_set_message(t('Using verification files will not work if <a href="@clean-urls">clean URLs</a> are disabled.', array('@clean-urls' => url('admin/settings/clean-url'))), 'error', FALSE);
 131          $form['file']['#disabled'] = TRUE;
 132          $form['file_contents']['#disabled'] = TRUE;
 133          $form['file_upload']['#disabled'] = TRUE;
 134        }
 135  
 136        if ($record['engine']['file']) {
 137          $form['#validate'][] = 'site_verify_validate_file';
 138          $form['#attributes'] = array('enctype' => 'multipart/form-data');
 139        }
 140  
 141        $form['submit'] = array(
 142          '#type' => 'submit',
 143          '#value' => t('Save'),
 144          '#weight' => 10,
 145        );
 146        break;
 147    }
 148  
 149    $form['cancel'] = array(
 150      '#value' => l(t('Cancel'), 'admin/build/site-verify'),
 151      '#weight' => 11,
 152    );
 153  
 154    return $form;
 155  }
 156  
 157  /**
 158   * Validation callback; save the uploaded file and check file name uniqueness.
 159   */
 160  function site_verify_validate_file(&$form, &$form_state) {
 161    $values = &$form_state['values'];
 162  
 163    // Import the uploaded verification file.
 164    if ($file = file_save_upload('file_upload', array(), FALSE, FILE_EXISTS_REPLACE)) {
 165      $contents = @file_get_contents($file->filepath);
 166      file_delete($file->filepath);
 167      if ($contents === FALSE) {
 168        drupal_set_message(t('The verification file import failed, because the file %filename could not be read.', array('%filename' => $file->filename)), 'error');
 169      }
 170      else {
 171        $values['file'] = $file->filename;
 172        $values['file_contents'] = $contents;
 173        //drupal_set_message(t('The verification file <a href="@filename">@filename</a> was successfully imported.', array('@filename' => $file->filename)));
 174      }
 175    }
 176  
 177    if ($values['file']) {
 178      $existing_file = db_result(db_query("SELECT svid FROM {site_verify} WHERE LOWER(file) = LOWER('%s') AND svid <> %d", $values['file'], $values['svid']));
 179      if ($existing_file) {
 180        form_set_error('file', t('The file %filename is already being used in another verification.', array('%filename' => $values['file'])));
 181      }
 182    }
 183  }
 184  
 185  /**
 186   * Submission callback; send form to the next step or save the verification.
 187   */
 188  function site_verify_edit_form_submit(&$form, &$form_state) {
 189    if ($form_state['storage']['step'] == 1) {
 190      // Send the form to step 2 (verification details).
 191      $form_state['storage']['record']['engine'] = site_verify_engine_load($form_state['values']['engine']);
 192      $form_state['storage']['step']++;
 193      $form_state['rebuild'] = TRUE;
 194    }
 195    else {
 196      // Save the verification to the database.
 197      if ($form_state['values']['svid']) {
 198        drupal_write_record('site_verify', $form_state['values'], array('svid'));
 199      }
 200      else {
 201        drupal_write_record('site_verify', $form_state['values']);
 202      }
 203  
 204      drupal_set_message(t('Site verification saved.'));
 205      $form_state['storage'] = $form_state['rebuild'] = FALSE;
 206      $form_state['redirect'] = 'admin/build/site-verify';
 207  
 208      // The menu needs to be rebuilt if the page URL has changed or reset.
 209      variable_set('menu_rebuild_needed', TRUE);
 210    }
 211  }
 212  
 213  function site_verify_delete_form($form_state, $record) {
 214    $form['record'] = array(
 215      '#type' => 'value',
 216      '#value' => $record,
 217    );
 218  
 219    return confirm_form(
 220      $form,
 221      t('Are you sure you want to delete the site verification for %engine?', array('%engine' => $record['engine']['name'])),
 222      'admin/build/site-verify',
 223      t('This action cannot be undone.'),
 224      t('Delete'),
 225      t('Cancel')
 226    );
 227  }
 228  
 229  function site_verify_delete_form_submit($form, &$form_state) {
 230    $record = $form_state['values']['record'];
 231    db_query("DELETE FROM {site_verify} WHERE svid = %d", $record['svid']);
 232    drupal_set_message(t('Verification for %engine has been deleted.', array('%engine' => $record['engine']['name'])));
 233    watchdog('site_verify', 'Verification for %engine deleted.', array('%engine' => $record['engine']['name']), WATCHDOG_NOTICE);
 234    $form_state['redirect'] = 'admin/build/site-verify';
 235  }
 236  
 237  function site_verify_validate_meta_google($element, &$form_state) {
 238    $value = strtolower(trim($element['#value']));
 239    if ($value != '' && !preg_match('%\A<meta name="verify-v1" content="[\S]+" />\Z%', $value)) {
 240      form_error($element, t('Invalid verification meta tag.'));
 241    }
 242  }
 243  
 244  function site_verify_validate_page_google($element, &$form_state) {
 245    $value = strtolower(trim($element['#value']));
 246    if ($value != '' && !preg_match('%\Agoogle[\da-f]+\.html\Z%', $value)) {
 247      form_error($element, t('Invalid verification file.'));
 248    }
 249  }


Generated: Thu Mar 24 11:18:33 2011 Cross-referenced by PHPXref 0.7