You are here

mostpopular.install in Drupal Most Popular 7

Same filename and directory in other branches
  1. 6 mostpopular.install

Install and uninstall functions for the Most Popular module.

File

mostpopular.install
View source
<?php

// $Id$

/*
 * Drupal Most Popular - Showcase the most popular content across your Drupal website and engage your audience.
 * Copyright © 2009-2012 New Signature
 * 
 * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 * You should have received a copy of the GNU General Public License along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * You can contact New Signature by electronic mail at labs@newsignature.com �or- by U.S. Postal Service at 1100 H St. NW, Suite 940, Washington, DC 20005.
 */

/**
 * @file
 * Install and uninstall functions for the Most Popular module.
 */

/**
 * Implements hook_schema().
 */
function mostpopular_schema() {
  $schema = array();
  $schema['mostpopular_block'] = array(
    'description' => 'Stores configuration info for each mostpopular block',
    'fields' => array(
      'bid' => array(
        'description' => 'The block ID of the block',
        'type' => 'serial',
        'not null' => TRUE,
        'unsigned' => TRUE,
      ),
      'name' => array(
        'description' => 'The machine name for this block',
        'type' => 'varchar',
        'length' => 32,
      ),
      'title' => array(
        'description' => 'The title to display for the block',
        'type' => 'varchar',
        'length' => 255,
      ),
      'count' => array(
        'description' => 'The maximum number of results to display for any service',
        'type' => 'int',
        'default' => 5,
      ),
      'remote_bid' => array(
        'description' => 'If this block references another block in a remote database, this is the ID of that block',
        'type' => 'int',
        'unsigned' => TRUE,
      ),
      'data' => array(
        'description' => 'Any additional parameters for the block, serialized',
        'type' => 'text',
        'size' => 'medium',
        'serialize' => TRUE,
      ),
    ),
    'primary key' => array(
      'bid',
    ),
  );
  $schema['mostpopular_service'] = array(
    'description' => 'Stores configuration information about the most popular services',
    'fields' => array(
      'sid' => array(
        'type' => 'serial',
        'not null' => TRUE,
        'unsigned' => TRUE,
      ),
      'bid' => array(
        'description' => 'The block in which this service appears',
        'type' => 'int',
        'unsigned' => TRUE,
      ),
      'module' => array(
        'description' => 'The module that provides this service',
        'type' => 'varchar',
        'length' => 32,
        'not null' => TRUE,
      ),
      'delta' => array(
        'description' => 'The delta of this service within the module (for modules that provide more than one service)',
        'type' => 'varchar',
        'length' => 32,
        'not null' => TRUE,
      ),
      'enabled' => array(
        'description' => 'TRUE if this service is enabled, false otherwise',
        'type' => 'int',
        'size' => 'tiny',
        'not null' => TRUE,
      ),
      'status' => array(
        'type' => 'int',
        'size' => 'small',
        'not null' => TRUE,
      ),
      'name' => array(
        'description' => "The name of the provided service (so we don't have to look it up every time)",
        'type' => 'varchar',
        'length' => 32,
        'not null' => TRUE,
      ),
      'title' => array(
        'description' => 'The title to show users for this service',
        'type' => 'varchar',
        'length' => 32,
        'not null' => FALSE,
      ),
      'data' => array(
        'description' => 'Any additional parameters for the service, serialized',
        'type' => 'text',
        'size' => 'medium',
        'serialize' => TRUE,
      ),
      'weight' => array(
        'type' => 'int',
        'not null' => TRUE,
      ),
    ),
    'primary key' => array(
      'sid',
    ),
    'unique keys' => array(),
    'indexes' => array(
      'block' => array(
        'bid',
        'module',
        'delta',
      ),
      'service' => array(
        'module',
        'delta',
        'bid',
      ),
      'enabled' => array(
        'bid',
        'enabled',
      ),
    ),
  );
  $schema['mostpopular_interval'] = array(
    'description' => 'Stores the predefined intervals to fetch for each service within a block',
    'fields' => array(
      'iid' => array(
        'description' => 'The unique ID of the interval',
        'type' => 'serial',
        'not null' => TRUE,
        'unsigned' => TRUE,
      ),
      'bid' => array(
        'description' => 'The block in which this interval appears',
        'type' => 'int',
        'unsigned' => TRUE,
      ),
      'string' => array(
        'description' => 'The strototime() date string to define this interval',
        'type' => 'varchar',
        'length' => 32,
        'not null' => TRUE,
      ),
      'title' => array(
        'description' => 'The title to display for this interval',
        'type' => 'varchar',
        'length' => 32,
        'not null' => TRUE,
      ),
      'weight' => array(
        'type' => 'int',
        'not null' => TRUE,
      ),
    ),
    'primary key' => array(
      'iid',
    ),
    'unique keys' => array(
      'block' => array(
        'bid',
        'iid',
      ),
    ),
    'indexes' => array(
      'interval_str' => array(
        'string',
      ),
    ),
  );
  $schema['mostpopular_last_run'] = array(
    'description' => 'Stores the time at which a service was last run over an interval.',
    'fields' => array(
      'sid' => array(
        'description' => 'The service that generated this data',
        'type' => 'int',
        'not null' => TRUE,
        'unsigned' => TRUE,
      ),
      'iid' => array(
        'description' => 'The interval to which this data corresponds',
        'type' => 'int',
        'not null' => TRUE,
        'unsigned' => TRUE,
      ),
      'last_run' => array(
        'description' => 'The time at which this service was last run',
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ),
      'next_run' => array(
        'description' => 'The amount of time to wait before refreshing this service again',
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ),
    ),
    'primary key' => array(
      'sid',
      'iid',
    ),
  );
  $schema['mostpopular_item'] = array(
    'description' => 'Stores cached values from the most popular services',
    'fields' => array(
      'sid' => array(
        'description' => 'The service that generated this data',
        'type' => 'int',
        'not null' => TRUE,
        'unsigned' => TRUE,
      ),
      'iid' => array(
        'description' => 'The interval to which this data corresponds',
        'type' => 'int',
        'not null' => TRUE,
        'unsigned' => TRUE,
      ),
      'entity_id' => array(
        'description' => 'The ID of the entity, if this item is an entity',
        'type' => 'int',
        'not null' => FALSE,
      ),
      'entity_type' => array(
        'description' => 'The type of entity, if this item is an entity',
        'type' => 'varchar',
        'length' => 32,
        'not null' => FALSE,
      ),
      'path' => array(
        'description' => 'The Drupal path of this node or page',
        'type' => 'varchar',
        'length' => 1024,
      ),
      'url' => array(
        'description' => 'The URL alias of the node or page',
        'type' => 'varchar',
        'length' => 2048,
      ),
      'title' => array(
        'description' => 'The title of the node or page',
        'type' => 'varchar',
        'length' => 1024,
      ),
      'count' => array(
        'description' => 'The number of occurrences of this URL within the requested time interval',
        'type' => 'int',
        'not null' => TRUE,
      ),
    ),
    'primary key' => array(
      'sid',
      'iid',
      array(
        'path',
        50,
      ),
    ),
    'indexes' => array(
      'entity' => array(
        'entity_type',
        'entity_id',
        'sid',
        'iid',
      ),
      'entity_url' => array(
        'entity_type',
        'entity_id',
        array(
          'path',
          50,
        ),
        'sid',
        'iid',
      ),
    ),
  );
  return $schema;
}

Functions

Namesort descending Description
mostpopular_schema Implements hook_schema().