| [ Index ] |
PHP Cross Reference of Drupal 6 (gatewave) |
[Summary view] [Print] [Text view]
1 <?php 2 // $Id: site_verify.module,v 1.10 2010/01/27 01:24:27 davereid Exp $ 3 4 /** 5 * Implements hook_menu(). 6 */ 7 function site_verify_menu() { 8 $items['admin/build/site-verify'] = array( 9 'title' => 'Site verifications', 10 'description' => 'Add, change or remove verifications for your site.', 11 'page callback' => 'site_verify_list', 12 'access arguments' => array('administer site configuration'), 13 'file' => 'site_verify.admin.inc', 14 ); 15 $items['admin/build/site-verify/list'] = array( 16 'title' => 'List', 17 'type' => MENU_DEFAULT_LOCAL_TASK, 18 'weight' => -10, 19 ); 20 $items['admin/build/site-verify/add'] = array( 21 'title' => 'Add verification', 22 'page callback' => 'drupal_get_form', 23 'page arguments' => array('site_verify_edit_form'), 24 'access arguments' => array('administer site configuration'), 25 'file' => 'site_verify.admin.inc', 26 'type' => MENU_LOCAL_TASK, 27 ); 28 $items['admin/build/site-verify/add/%site_verify_engine'] = array( 29 'title' => 'Add', 30 'page callback' => 'drupal_get_form', 31 'page arguments' => array('site_verify_edit_form', array(), 4), 32 'access arguments' => array('administer site configuration'), 33 'file' => 'site_verify.admin.inc', 34 'type' => MENU_CALLBACK, 35 ); 36 $items['admin/build/site-verify/edit/%site_verify'] = array( 37 'page callback' => 'drupal_get_form', 38 'page arguments' => array('site_verify_edit_form', 4), 39 'access arguments' => array('administer site configuration'), 40 'file' => 'site_verify.admin.inc', 41 'type' => MENU_CALLBACK, 42 ); 43 $items['admin/build/site-verify/delete/%site_verify'] = array( 44 'page callback' => 'drupal_get_form', 45 'page arguments' => array('site_verify_delete_form', 4), 46 'access arguments' => array('administer site configuration'), 47 'file' => 'site_verify.admin.inc', 48 'type' => MENU_CALLBACK, 49 ); 50 51 // Add the verification paths. 52 $query = db_query("SELECT svid, file FROM {site_verify} WHERE file <> ''"); 53 while ($engine = db_fetch_object($query)) { 54 $items[$engine->file] = array( 55 'page callback' => 'site_verify_output', 56 'page arguments' => array((string) $engine->svid), 57 'access callback' => TRUE, 58 'type' => MENU_CALLBACK, 59 ); 60 } 61 62 return $items; 63 } 64 65 /** 66 * Implements hook_init(). 67 */ 68 function site_verify_init() { 69 // Add the verification meta tags to the front page. 70 if (drupal_is_front_page()) { 71 $query = db_query("SELECT meta FROM {site_verify} WHERE meta <> ''"); 72 while ($meta = db_result($query)) { 73 drupal_set_html_head($meta); 74 } 75 } 76 } 77 78 /** 79 * Menu load callback; loads a site verification record. 80 * 81 * This also loads the engine details if the record was found. 82 * 83 * @param $svid 84 * A site verification ID. 85 * @return 86 * An array of the site verification record, or FALSE if not found. 87 */ 88 function site_verify_load($svid) { 89 $record = db_fetch_array(db_query("SELECT svid, engine, file, file_contents, meta FROM {site_verify} WHERE svid = %d", $svid)); 90 if ($record) { 91 $record['engine'] = site_verify_engine_load($record['engine']); 92 } 93 return $record; 94 } 95 96 /** 97 * Menu load callback; loads engine details. 98 * 99 * @param $engine 100 * A string with the engine shortname. 101 * @return 102 * An arary of the engine details, or FALSE if not found. 103 */ 104 function site_verify_engine_load($engine) { 105 $engines = site_verify_get_engines(); 106 return isset($engines[$engine]) ? $engines[$engine] : FALSE; 107 } 108 109 /** 110 * Implements hook_site_verify_engine_info(). 111 */ 112 function site_verify_site_verify_engine_info() { 113 $engines['google'] = array( 114 'name' => t('Google'), 115 'file' => TRUE, 116 'file_contents' => TRUE, 117 'file_example' => 'google1234567890abcdef.html', 118 'meta' => TRUE, 119 'meta_example' => '<meta name="google-site-verification" content="NbwaW3WIDp_SPsSsfl78Ive7F34-znm9lxLJXjuWNGE" />', 120 ); 121 $engines['yahoo'] = array( 122 'name' => t('Yahoo!'), 123 'file' => TRUE, 124 'file_contents' => TRUE, 125 'meta' => TRUE, 126 ); 127 $engines['bing'] = array( 128 'name' => t('Bing'), 129 'file' => TRUE, 130 'file_contents' => TRUE, 131 'meta' => TRUE, 132 ); 133 $engines['yandex'] = array( 134 'name' => t('Yandex'), 135 'file' => TRUE, 136 'file_example' => 'yandex_b5741169901f6c20.txt', 137 'meta' => TRUE, 138 'meta_example' => '<meta name="yandex-verification" content="b5741169901f6c20" />', 139 ); 140 $engines['custom'] = array( 141 'name' => t('Custom verification'), 142 'file' => TRUE, 143 'file_contents' => TRUE, 144 'meta' => TRUE, 145 ); 146 return $engines; 147 } 148 149 /** 150 * Fetch an array of supported search engines. 151 */ 152 function site_verify_get_engines() { 153 static $engines; 154 155 if (!isset($engines)) { 156 // Fetch the list of engines and allow other modules to alter it. 157 $engines = module_invoke_all('site_verify_engine_info'); 158 drupal_alter('site_verify_engine', $engines); 159 160 // Merge the default values for each engine entry. 161 foreach ($engines as $key => $engine) { 162 $engines[$key] += array( 163 'key' => $key, 164 //'name' => drupal_ucfirst($engine), 165 'file' => FALSE, 166 'file_example' => FALSE, 167 'file_validate' => array(), 168 'file_contents' => FALSE, 169 'file_contents_example' => FALSE, 170 'file_contents_validate' => array(), 171 'meta' => FALSE, 172 'meta_example' => FALSE, 173 'meta_validate' => array(), 174 ); 175 } 176 } 177 178 return $engines; 179 } 180 181 function site_verify_output($svid) { 182 $verification = site_verify_load($svid); 183 if ($verification['file_contents'] && $verification['engine']['file_contents']) { 184 echo $verification['file_contents']; 185 } 186 else { 187 drupal_set_title(t('Verification page')); 188 return t('This is a verification page for the !title search engine.', array('!title' => $verification['engine']['name'])); 189 } 190 }
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 |