You are here

echo.install in Echo 6

Same filename and directory in other branches
  1. 8 echo.install
  2. 7 echo.install

Installation for Echo module.

File

echo.install
View source
<?php

/**
 * @file
 * Installation for Echo module.
 */

/**
 * Implements hook_requirements().
 *
 * Since the Echo module relies on a working cache implementation, check whether
 * a cache_set() followed immediately by a cache_get() retrieves what it stored.
 */
function echo_requirements($phase) {
  $title = 'Echo test';
  $uniqid = uniqid();
  $content = "<div id='{$uniqid}'>Hello, world!</div>";
  $theme = 'bartik';
  if ($phase == 'runtime') {

    // The echo_themed_page() function should be available at this point.
    $document = new DomDocument();
    $document
      ->loadHTML(echo_themed_page($title, $content, $theme));
    $xpath = new DOMXpath($document);
    $pass = $xpath
      ->query("//div[@id='{$uniqid}']");
  }
  else {
    $key = sha1($title . $content . $theme);

    // Thirty seconds ought to be enough for anyone.
    $expiration = REQUEST_TIME + max(ini_get('max_execution_time'), 30);
    cache_set($key, $key, 'cache', $expiration);
    sleep(1);
    $cached = cache_get($key);
    $pass = $cached->data === $key;
  }
  return array(
    'echo' => array(
      'title' => t('Cache system'),
      'description' => t('The <a href="!echo">%echo</a> module requires a working cache system.', array(
        '!echo' => 'http://drupal.org/project/echo',
        '%echo' => 'Echo',
      )),
      'value' => $pass ? t('Working') : t('Not working'),
      'severity' => $pass ? REQUIREMENT_OK : REQUIREMENT_ERROR,
    ),
  );
}

Functions

Namesort descending Description
echo_requirements Implements hook_requirements().