[ Index ]

PHP Cross Reference of Drupal 6 (gatewave)

title

Body

[close]

/sites/all/modules/site_verify/ -> site_verify.module (source)

   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  }


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