2021-05-24 15:37:55 +02:00

187 lines
5.1 KiB
Plaintext

<?php
/**
* @file
* Breakpoints
*/
/**
* Implements hook_schema().
*/
function breakpoints_schema() {
$schema['breakpoints'] = array(
'description' => 'Breakpoints',
'fields' => array(
'id' => array(
'type' => 'serial',
'not null' => TRUE,
'description' => 'The internal identifier for a responsive images suffix',
'no export' => TRUE, // Do not export database-only keys.
),
'machine_name' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'description' => 'The machine name of the breakpoint.',
),
'name' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'description' => 'The name of the breakpoint.',
),
'breakpoint' => array(
'type' => 'varchar',
'length' => 255,
'description' => 'media query',
'not null' => TRUE,
'default' => '',
),
'source' => array(
'type' => 'varchar',
'length' => 255,
'description' => 'name of theme, module',
'not null' => TRUE,
'default' => '',
),
'source_type' => array(
'type' => 'varchar',
'length' => 255,
'description' => 'is breakpoint defined by theme, module or custom',
'not null' => TRUE,
'default' => '',
),
'status' => array(
'type' => 'int',
'description' => 'enabled or disabled',
'not null' => TRUE,
'default' => 1,
),
'weight' => array(
'type' => 'int',
'description' => 'weight',
'not null' => TRUE,
'default' => 0,
),
'multipliers' => array(
'type' => 'blob',
'description' => 'all enabled multipliers',
'not null' => TRUE,
'serialize' => TRUE,
),
),
'primary key' => array('id'),
'unique keys' => array(
'machine_name' => array('machine_name'),
),
// CTools exportable object definition
'export' => array(
'key' => 'machine_name',
'key name' => 'machine_name',
'primary key' => 'id',
'identifier' => 'breakpoint',
'admin_title' => 'label',
'default hook' => 'default_breakpoints',
'api' => array(
'owner' => 'breakpoints',
'api' => 'default_breakpoints',
'minimum_version' => 1,
'current_version' => 1,
),
'load all callback' => '_breakpoints_breakpoint_load_all_callback',
),
);
$schema['breakpoint_group'] = array(
'description' => 'Breakpoint group',
'fields' => array(
'id' => array(
'type' => 'serial',
'not null' => TRUE,
'description' => 'The internal identifier for a responsive images suffix',
'no export' => TRUE, // Do not export database-only keys.
),
'machine_name' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'description' => 'The machine name of the breakpoint.',
),
'name' => array(
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'description' => 'The name of the breakpoint.',
),
'breakpoints' => array(
'type' => 'blob',
'description' => 'breakpoints',
'not null' => TRUE,
'serialize' => TRUE,
// we do not export options saved in this column, we export the fully loaded objects.
'export callback' => 'breakpoint_group_export_breakpoints',
),
'type' => array(
'type' => 'varchar',
'length' => 255,
'description' => 'theme, module or custom',
'not null' => TRUE,
'default' => '',
),
'overridden' => array(
'type' => 'int',
'description' => 'Boolean indicating if this group is overriden',
'not null' => TRUE,
'default' => 0,
),
),
'primary key' => array('id'),
'unique keys' => array(
'machine_name' => array('machine_name'),
),
// CTools exportable object definition
'export' => array(
'key' => 'machine_name',
'key name' => 'breakpoint group machine_name',
'primary key' => 'id',
'identifier' => 'breakpoint_group',
'admin_title' => 'label',
'default hook' => 'default_breakpoint_group',
'export type string' => 'ctools_type',
'api' => array(
'owner' => 'breakpoints',
'api' => 'default_breakpoint_group',
'minimum_version' => 1,
'current_version' => 1,
),
'load all callback' => 'breakpoints_breakpoint_group_load_all',
),
);
return $schema;
}
/**
* Add the 'overridden' column to the breakpoint_group table.
*/
function breakpoints_update_7101(&$sandbox) {
db_add_field(
'breakpoint_group',
'overridden',
array(
'type' => 'int',
'description' => 'Boolean indicating if this group is overriden',
'not null' => TRUE,
'default' => 0,
)
);
}
/**
* Add the '1x' multiplier to all breakpoints.
*/
function breakpoints_update_7102(&$sandbox) {
$breakpoints = breakpoints_breakpoint_load_all();
foreach ($breakpoints as $breakpoint) {
breakpoints_breakpoint_save($breakpoint);
}
}