w3c_validator.uri_validator.page.inc in W3C Validator 7
Page description for single URI validation.
File
w3c_validator.uri_validator.page.incView source
<?php
/**
 * @file
 * Page description for single URI validation.
 */
/**
 * Page callback to validate an URI.
 *
 * The URL for this callback is <yoursite.com>/validator
 * It is possible to use <yoursite.com>/validator?output=...
 *
 * @return void
 */
function w3c_validator_uri_validator_page($form, $form_state) {
  // If a URI is passed in the URL, display the result for that URI...
  if (!empty($_GET['uri'])) {
    drupal_set_title('');
    // Remove page title if on result page (just for esthetic matters)
    $form['w3c_analysis-results'] = array(
      // Prepare somewhere to display the result.
      '#type' => 'markup',
      '#prefix' => '<div id="w3c_analysis" class="w3c_analysis-results">',
      '#suffix' => '</div>',
    );
    $uri = urldecode($_GET['uri']);
    // Get the URI from the URL.
    if ($system_uri = drupal_lookup_path('source', $uri)) {
      // Check if the URL belongs to this website :
      $uri = $system_uri;
      // If yes, use it's Drupal System path.
    }
    $result = _w3c_validator_retrieve_result($uri);
    // Look if the URI has already been validated.
    if ($result) {
      // If the URI has already been validated :
      if ($result->need_validation) {
        // If the result is outdated : revalidate it.
        $form_state['values']['uri'] = $uri;
        // Submit the URL.
        _w3c_validator_uri_validator_form_submit($form, $form_state);
        // Call validation process.
      }
      else {
        // Otherwise, just :
        $form['w3c_analysis-results']['#markup'] = _w3c_validator_display_result($result);
        // Display the result.
      }
    }
    else {
      // Otherwise, it means the URI has never been validated.
      $form['w3c_analysis-results']['#markup'] = t('No results found for the URI : @uri', array(
        '@uri' => $uri,
      ));
    }
  }
  else {
    // If no URI in URL: build the validation form.
    _w3c_validator_uri_validator_build_form($form, $form_state);
  }
  drupal_add_css(drupal_get_path('module', 'w3c_validator') . '/css/w3c_validator.css');
  return $form;
}
/**
 * Form where you enter a uri to be validated.
 *
 * @param string $form_state
 * @return void
 */
function _w3c_validator_uri_validator_build_form(&$form, &$form_state) {
  $form['uri'] = array(
    '#type' => 'textfield',
    '#title' => t('URI of the page to validate'),
    '#description' => t('Location (URL) of the webpage that you want to send to the W3C validator.'),
    '#required' => TRUE,
  );
  $form['validate'] = array(
    '#type' => 'submit',
    '#value' => t('Submit'),
    '#ajax' => array(
      'callback' => '_w3c_validator_uri_validator_form_submit',
      'wrapper' => 'w3c_analysis',
    ),
  );
  $form['w3c_analysis-results'] = array(
    '#type' => 'markup',
    '#prefix' => '<div id="w3c_analysis" class="w3c_analysis-results">',
    '#suffix' => '</div>',
  );
  return $form;
}
/**
 * Validate a uri and store the result.
 *
 * @param string $form
 * @param string $form_state
 * @return void
 */
function _w3c_validator_uri_validator_form_submit($form, $form_state) {
  static $result;
  // Retrieve the URI to validate
  $uri = $form_state['values']['uri'];
  // Call the validator processor (located in w3c_validator.module)
  $result = _w3c_validator_validate_uri($uri);
  // Save the result
  _w3c_validator_save_result($result);
  // Display the result
  $form['w3c_analysis-results']['#markup'] = _w3c_validator_display_result($result);
  return $form['w3c_analysis-results'];
}Functions
| Name   | Description | 
|---|---|
| w3c_validator_uri_validator_page | Page callback to validate an URI. | 
| _w3c_validator_uri_validator_build_form | Form where you enter a uri to be validated. | 
| _w3c_validator_uri_validator_form_submit | Validate a uri and store the result. | 
