| [ Index ] |
PHP Cross Reference of Drupal 6 (gatewave) |
[Summary view] [Print] [Text view]
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 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Thu Mar 24 11:18:33 2011 | Cross-referenced by PHPXref 0.7 |