You are here

amp.install in Accelerated Mobile Pages (AMP) 7

Same filename and directory in other branches
  1. 8.3 amp.install
  2. 8 amp.install
  3. 8.2 amp.install

Contains amp.install.

File

amp.install
View source
<?php

/**
 * @file
 * Contains amp.install.
 */

/**
 * Implements hook_requirements().
 */
function amp_requirements($phase) {
  $requirements = array();
  if ($phase == 'runtime') {
    if (!class_exists('\\Lullabot\\AMP\\AMP')) {
      $requirements['amp_library'] = array(
        'title' => t('AMP'),
        'value' => t('Not available'),
        'description' => t('The AMP module requires the PHP <a href="@library">AMP library</a>. Install using <a href="@composer_manager">composer manager</a>', array(
          '@library' => 'https://github.com/Lullabot/amp-library',
          '@composer_manager' => 'https://www.drupal.org/project/composer_manager',
        )),
        'severity' => REQUIREMENT_ERROR,
      );
    }
    if (!module_exists('token')) {
      $requirements['amp_token'] = array(
        'title' => t('Token module required for AMP'),
        'value' => t('Not installed'),
        'description' => t('The AMP module requires the <a href="@module">Token</a> module as a dependency. Please download and install Token to prevent errors with AMP.', array(
          '@module' => 'https://www.drupal.org/project/token',
        )),
        'severity' => REQUIREMENT_ERROR,
      );
    }
    if (!module_exists('ctools')) {
      $requirements['amp_ctools'] = array(
        'title' => t('ctools module required for AMP'),
        'value' => t('Not installed'),
        'description' => t('The AMP module requires the <a href="@module">ctools</a> module as a dependency. Please download and install ctools to prevent errors with AMP.', array(
          '@module' => 'https://www.drupal.org/project/ctools',
        )),
        'severity' => REQUIREMENT_ERROR,
      );
    }
    $themes = list_themes();
    if (empty($themes['amptheme']) || empty($themes['amptheme']->status)) {
      $requirements['amptheme'] = array(
        'title' => t('AMP Base Theme'),
        'value' => t('Not installed'),
        'description' => t('The AMP module requires the <a href="@theme">AMP Base Theme</a> to be installed.', array(
          '@theme' => 'https://www.drupal.org/project/amptheme',
        )),
        'severity' => REQUIREMENT_ERROR,
      );
    }
  }
  return $requirements;
}

/**
 * Implements hook_install.
 *
 * Add new table for unpublished AMP nodes.
 */
function amp_schema() {
  $schema['amp_node'] = array(
    'description' => 'Stores preferences for amp nodes.',
    'primary key' => array(
      'aid',
    ),
    'fields' => array(
      'aid' => array(
        'description' => 'The {amp}.id of the amp node.',
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
        'default' => 0,
      ),
      'status' => array(
        'description' => 'Boolean indicating whether the node is AMP enabled by default.',
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
        'default' => 1,
        'size' => 'tiny',
      ),
    ),
    'indexes' => array(
      'aid' => array(
        'aid',
      ),
      'status' => array(
        'status',
      ),
    ),
  );
  return $schema;
}

/**
 * Implements hook_uninstall().
 */
function amp_uninstall() {

  // Delete variables.
  variable_del('amp_theme');
  variable_del('amp_google_adsense_id');
  variable_del('amp_google_doubleclick_id');
  variable_del('amp_pixel');
  variable_del('amp_pixel_domain_name');
  variable_del('amp_pixel_query_string');
  variable_del('amp_pixel_random_number');
  variable_del('amp_library_warnings_display');
  variable_del('amp_library_process_full_html');
  variable_del('amp_library_process_statistics');
  variable_del('amp_library_process_full_html_warnings');
  variable_del('amp_library_warnings_display');
  variable_del('amp_metadata_organization_name');
  variable_del('amp_metadata_organization_logo');
  variable_del('amp_metadata_organization_logo_image_style_id');
}

/**
 * Enable submodule amp_analytics.
 */
function amp_update_7001() {

  // For backwards compatibility since the code has been moved to a submodule.
  module_enable(array(
    'amp_analytics',
  ));
}

/**
 * Add new table to track unpublished AMP nodes.
 */
function amp_update_7002() {
  if (!db_table_exists('amp_node')) {
    drupal_install_schema('amp');
  }
}

Functions

Namesort descending Description
amp_requirements Implements hook_requirements().
amp_schema Implements hook_install.
amp_uninstall Implements hook_uninstall().
amp_update_7001 Enable submodule amp_analytics.
amp_update_7002 Add new table to track unpublished AMP nodes.