You are here

panelizer.install in Panelizer 7

Install, update and uninstall functions for the panelizer module.

File

panelizer.install
View source
<?php

/**
 * @file
 * Install, update and uninstall functions for the panelizer module.
 */

/**
 * Implements hook_requirements().
 */
function panelizer_requirements($phase) {
  $requirements = array();
  if ($phase == 'runtime') {
    $node_view = page_manager_get_task('node_view');
    if ($node_view['disabled']) {
      $requirements['panelizer'] = array(
        'title' => t('Panelizer'),
        'value' => t('You must enable the %node_view page template in <a href="@url">page manager</a> to use panelizer.', array(
          '%node_view' => 'node_view',
          '@url' => url('admin/structure/pages'),
        )),
        'severity' => REQUIREMENT_ERROR,
      );
    }
  }
  return $requirements;
}

/**
 * Implements hook_schema().
 */
function panelizer_schema() {

  // This should always point to our 'current' schema. This makes it
  // relatively easy to keep a record of schema as we make changes to it.
  return panelizer_schema_1();
}

/**
 * Schema version 1 for Panels in D6.
 */
function panelizer_schema_1() {
  $schema = array();
  $common_fields = array(
    'no_blocks' => array(
      'type' => 'int',
      'size' => 'tiny',
      'description' => 'Whether or not the node disable sidebar blocks.',
      'default' => 0,
    ),
    'css_id' => array(
      'type' => 'varchar',
      'length' => '255',
      'description' => 'The CSS ID this panel should use.',
      'default' => '',
    ),
    'css' => array(
      'type' => 'text',
      'size' => 'big',
      'description' => 'Any CSS the author provided for the panel.',
      'object default' => '',
    ),
    'pipeline' => array(
      'type' => 'varchar',
      'length' => '255',
      'description' => 'The render pipeline this panel uses.',
      'default' => 'standard',
    ),
    'contexts' => array(
      'type' => 'text',
      'size' => 'big',
      'description' => 'The contexts configured by the node author.',
      'serialize' => TRUE,
      'object default' => array(),
    ),
    'relationships' => array(
      'type' => 'text',
      'size' => 'big',
      'description' => 'The relationship contexts configured by the node author.',
      'serialize' => TRUE,
      'object default' => array(),
    ),
    'did' => array(
      'type' => 'int',
      'not null' => TRUE,
      'description' => 'The display ID of the panel.',
    ),
  );
  $schema['panelizer_node'] = array(
    'export' => array(
      'bulk export' => FALSE,
      'can disable' => FALSE,
      'identifier' => 'panelizer_node',
    ),
    'description' => 'Node panelizer references.',
    'fields' => array(
      'nid' => array(
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
        'description' => 'The node ID this panel is attached to.',
      ),
      'name' => array(
        'type' => 'varchar',
        'length' => '255',
        'description' => 'The name of the default being used if there is one.',
      ),
    ) + $common_fields,
    'primary key' => array(
      'nid',
    ),
  );
  $schema['panelizer_defaults'] = array(
    'description' => 'Node type panelizer references.',
    'export' => array(
      'primary key' => 'pnid',
      'key' => 'name',
      'key name' => 'Name',
      'identifier' => 'panelizer',
      'default hook' => 'panelizer_defaults',
      'api' => array(
        'owner' => 'panelizer',
        'api' => 'panelizer',
        'minimum_version' => 1,
        'current_version' => 1,
      ),
      // 'create callback' => 'panelizer_export_create_callback',
      'save callback' => 'panelizer_export_save_callback',
      'export callback' => 'panelizer_export_export_callback',
      'delete callback' => 'panelizer_export_delete_callback',
    ),
    'fields' => array(
      'pnid' => array(
        'type' => 'serial',
        'description' => 'The database primary key.',
        'no export' => TRUE,
      ),
      'name' => array(
        'type' => 'varchar',
        'length' => '255',
        'description' => 'The unique name of this default.',
      ),
      'title' => array(
        'type' => 'varchar',
        'length' => '255',
        'description' => 'The human readable title of this default.',
      ),
      'panelizer_type' => array(
        'type' => 'varchar',
        'length' => '32',
        'description' => 'The panelizer type, such as node or user.',
      ),
      'panelizer_key' => array(
        'type' => 'varchar',
        'length' => '128',
        'description' => 'The panelizer key, such as node type or user role.',
      ),
    ) + $common_fields,
    'primary key' => array(
      'pnid',
    ),
    'indexes' => array(
      'name' => array(
        'name',
      ),
      'type_key' => array(
        'panelizer_type',
        'panelizer_key',
      ),
    ),
  );
  return $schema;
}

/**
 * Implements hook_install().
 */
function panelizer_install() {

  // TODO Please review the conversion of this statement to the D7 database API syntax.

  /* db_query("UPDATE {system} SET weight = 21 WHERE name = 'panelizer'") */

  // Set the module weight so it can execute after Panels.
  db_update('system')
    ->fields(array(
    'weight' => 21,
  ))
    ->condition('name', 'panelizer')
    ->execute();
}

/**
 * Implements hook_uninstall().
 */
function panelizer_uninstall() {
  db_delete('variable')
    ->condition('name', 'panelizer_defaults_%')
    ->execute();
  db_delete('variable')
    ->condition('name', 'panelizer_node:%')
    ->execute();
}

/**
 * Implements hook_update_N().
 */
function panelizer_update_7100() {
  $panelizer_defaults = variable_get('panelizer_defaults', array());
  if (!empty($panelizer_defaults)) {
    foreach ($panelizer_defaults as $entity => $bundles) {
      foreach ($bundles as $bundle => $values) {
        variable_set('panelizer_defaults_' . $entity . '_' . $bundle, $values);
      }
    }
  }
  variable_del('panelizer_defaults');
}

Functions

Namesort descending Description
panelizer_install Implements hook_install().
panelizer_requirements Implements hook_requirements().
panelizer_schema Implements hook_schema().
panelizer_schema_1 Schema version 1 for Panels in D6.
panelizer_uninstall Implements hook_uninstall().
panelizer_update_7100 Implements hook_update_N().