first import

This commit is contained in:
Bachir Soussi Chiadmi
2015-04-08 11:40:19 +02:00
commit 1bc61b12ad
8435 changed files with 1582817 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
<?php
$plugin = array(
'schema' => 'stylizer',
'access' => 'administer stylizer',
'menu' => array(
'menu item' => 'stylizer',
'menu title' => 'Stylizer',
'menu description' => 'Add, edit or delete stylizer styles.',
),
'title singular' => t('style'),
'title singular proper' => t('Style'),
'title plural' => t('styles'),
'title plural proper' => t('Styles'),
'handler' => array(
'class' => 'stylizer_ui',
),
'strings' => array(
'message' => array(
'missing base type' => t('There are currently no style types available to add. You should enable a module that utilizes them, such as Panels.'),
),
),
'use wizard' => TRUE,
'form info' => array(
'add order' => array(
'admin' => t('Administrative settings'),
'type' => t('Select style type'),
'choose' => t('Select base style'),
),
'order' => array(
'admin' => t('Administrative settings'),
),
'forms' => array(
'choose' => array(
'form id' => 'ctools_stylizer_edit_style_form_choose',
),
),
),
);

View File

@@ -0,0 +1,272 @@
<?php
/**
* UI class for Stylizer.
*/
class stylizer_ui extends ctools_export_ui {
function access($op, $item) {
$access = parent::access($op, $item);
if ($op == 'add' && $access && empty($this->base_types)) {
// Make sure there are base styles defined.
$access = FALSE;
}
return $access;
}
function list_form(&$form, &$form_state) {
ctools_include('stylizer');
parent::list_form($form, $form_state);
$all = array('all' => t('- All -'));
if (empty($this->base_types)) {
// Give a warning about the missing base styles.
drupal_set_message($this->plugin['strings']['message']['missing base type'], 'warning');
}
$types = $all;
foreach ($this->base_types as $module => $info) {
foreach ($info as $key => $base_type) {
$types[$module . '-' . $key] = $base_type['title'];
}
}
$form['top row']['type'] = array(
'#type' => 'select',
'#title' => t('Type'),
'#options' => $types,
'#default_value' => 'all',
'#weight' => -10,
'#attributes' => array('class' => array('ctools-auto-submit')),
);
$plugins = ctools_get_style_bases();
$form_state['style_plugins'] = $plugins;
$options = $all;
// @todo base should use $module . '-' . $name
foreach ($plugins as $name => $plugin) {
$options[$name] = $plugin['title'];
}
$form['top row']['base'] = array(
'#type' => 'select',
'#title' => t('Base'),
'#options' => $all + $options,
'#default_value' => 'all',
'#weight' => -9,
'#attributes' => array('class' => array('ctools-auto-submit')),
);
}
function list_sort_options() {
return array(
'disabled' => t('Enabled, title'),
'title' => t('Title'),
'name' => t('Name'),
'base' => t('Base'),
'type' => t('Type'),
'storage' => t('Storage'),
);
}
function list_filter($form_state, $item) {
if (empty($form_state['style_plugins'][$item->settings['style_base']])) {
$this->style_plugin = array(
'name' => 'broken',
'title' => t('Missing plugin'),
'type' => t('Unknown'),
'module' => '',
);
}
else {
$this->style_plugin = $form_state['style_plugins'][$item->settings['style_base']];
}
// This isn't really a field, but by setting this we can list it in the
// filter fields and have the search box pick it up.
$item->plugin_title = $this->style_plugin['title'];
if ($form_state['values']['type'] != 'all') {
list($module, $type) = explode('-', $form_state['values']['type']);
if ($module != $this->style_plugin['module'] || $type != $this->style_plugin['type']) {
return TRUE;
}
}
if ($form_state['values']['base'] != 'all' && $form_state['values']['base'] != $this->style_plugin['name']) {
return TRUE;
}
return parent::list_filter($form_state, $item);
}
function list_search_fields() {
$fields = parent::list_search_fields();
$fields[] = 'plugin_title';
return $fields;
}
function list_build_row($item, &$form_state, $operations) {
// Set up sorting
switch ($form_state['values']['order']) {
case 'disabled':
$this->sorts[$item->name] = empty($item->disabled) . $item->admin_title;
break;
case 'title':
$this->sorts[$item->name] = $item->admin_title;
break;
case 'name':
$this->sorts[$item->name] = $item->name;
break;
case 'type':
$this->sorts[$item->name] = $this->style_plugin['type'] . $item->admin_title;
break;
case 'base':
$this->sorts[$item->name] = $this->style_plugin['title'] . $item->admin_title;
break;
case 'storage':
$this->sorts[$item->name] = $item->type . $item->admin_title;
break;
}
if (!empty($this->base_types[$this->style_plugin['module']][$this->style_plugin['type']])) {
$type = $this->base_types[$this->style_plugin['module']][$this->style_plugin['type']]['title'];
}
else {
$type = t('Unknown');
}
$ops = theme('links__ctools_dropbutton', array('links' => $operations, 'attributes' => array('class' => array('links', 'inline'))));
$this->rows[$item->name] = array(
'data' => array(
array('data' => $type, 'class' => array('ctools-export-ui-type')),
array('data' => check_plain($item->name), 'class' => array('ctools-export-ui-name')),
array('data' => check_plain($item->admin_title), 'class' => array('ctools-export-ui-title')),
array('data' => check_plain($this->style_plugin['title']), 'class' => array('ctools-export-ui-base')),
array('data' => check_plain($item->type), 'class' => array('ctools-export-ui-storage')),
array('data' => $ops, 'class' => array('ctools-export-ui-operations')),
),
'title' => check_plain($item->admin_description),
'class' => array(!empty($item->disabled) ? 'ctools-export-ui-disabled' : 'ctools-export-ui-enabled'),
);
}
function list_table_header() {
return array(
array('data' => t('Type'), 'class' => array('ctools-export-ui-type')),
array('data' => t('Name'), 'class' => array('ctools-export-ui-name')),
array('data' => t('Title'), 'class' => array('ctools-export-ui-title')),
array('data' => t('Base'), 'class' => array('ctools-export-ui-base')),
array('data' => t('Storage'), 'class' => array('ctools-export-ui-storage')),
array('data' => t('Operations'), 'class' => array('ctools-export-ui-operations')),
);
}
function init($plugin) {
ctools_include('stylizer');
$this->base_types = ctools_get_style_base_types();
parent::init($plugin);
}
function get_wizard_info(&$form_state) {
$form_info = parent::get_wizard_info($form_state);
ctools_include('stylizer');
// For add forms, we have temporarily set the 'form type' to include
// the style type so the default wizard_info can find the path. If
// we did that, we have to put it back.
if (!empty($form_state['type'])) {
$form_state['form type'] = 'add';
$form_info['show back'] = TRUE;
}
// Ensure these do not get out of sync.
$form_state['item']->settings['name'] = $form_state['item']->name;
$form_state['settings'] = $form_state['item']->settings;
// Figure out the base style plugin in use and make sure that is available.
$plugin = NULL;
if (!empty($form_state['item']->settings['style_base'])) {
$plugin = ctools_get_style_base($form_state['item']->settings['style_base']);
ctools_stylizer_add_plugin_forms($form_info, $plugin, $form_state['op']);
}
else {
// This is here so the 'finish' button does not show up, and because
// we don't have the selected style we don't know what the next form(s)
// will be.
$form_info['order']['next'] = t('Configure style');
}
// If available, make sure these are available for the 'choose' form.
if (!empty($form_state['item']->style_module)) {
$form_state['module'] = $form_state['item']->style_module;
$form_state['type'] = $form_state['item']->style_type;
}
$form_state['base_style_plugin'] = $plugin;
$form_state['settings'] = $form_state['item']->settings;
return $form_info;
}
/**
* Store the stylizer info in our settings.
*
* The stylizer wizard stores its stuff in slightly different places, so
* we have to find it and move it to the right place.
*/
function store_stylizer_info(&$form_state) {
/*
foreach (array('name', 'admin_title', 'admin_description') as $key) {
if (!empty($form_state['values'][$key])) {
$form_state['item']->{$key} = $form_state['values'][$key];
}
}
*/
if ($form_state['step'] != 'import') {
$form_state['item']->settings = $form_state['settings'];
}
// Do not let the 'name' accidentally get out of sync under any circumstances.
$form_state['item']->settings['name'] = $form_state['item']->name;
}
function edit_wizard_next(&$form_state) {
$this->store_stylizer_info($form_state);
parent::edit_wizard_next($form_state);
}
function edit_wizard_finish(&$form_state) {
// These might be stored by the stylizer wizard, so we should clear them.
if (isset($form_state['settings']['old_settings'])) {
unset($form_state['settings']['old_settings']);
}
$this->store_stylizer_info($form_state);
parent::edit_wizard_finish($form_state);
}
function edit_form_type(&$form, &$form_state) {
foreach ($this->base_types as $module => $info) {
foreach ($info as $key => $base_type) {
$types[$module . '-' . $key] = $base_type['title'];
}
}
$form['type'] = array(
'#type' => 'select',
'#title' => t('Type'),
'#options' => $types,
'#default_value' => 'all',
'#weight' => -10,
'#attributes' => array('class' => array('ctools-auto-submit')),
);
}
function edit_form_type_submit(&$form, &$form_state) {
list($form_state['item']->style_module, $form_state['item']->style_type) = explode('-', $form_state['values']['type']);
}
}

View File

@@ -0,0 +1,13 @@
name = Stylizer
description = Create custom styles for applications such as Panels.
core = 7.x
package = Chaos tool suite
dependencies[] = ctools
dependencies[] = color
; Information added by drupal.org packaging script on 2013-02-02
version = "7.x-1.2+31-dev"
core = "7.x"
project = "ctools"
datestamp = "1359766341"

View File

@@ -0,0 +1,70 @@
<?php
/**
* Schema for stylizer.
*/
function stylizer_schema() {
return stylizer_schema_1();
}
function stylizer_schema_1() {
$schema = array();
$schema['stylizer'] = array(
'description' => 'Customized stylizer styles created by administrative users.',
'export' => array(
'bulk export' => TRUE,
'export callback' => 'stylizer_style_export',
'can disable' => TRUE,
'identifier' => 'style',
'primary key' => 'sid',
'api' => array(
'owner' => 'stylizer',
'api' => 'stylizer',
'minimum_version' => 1,
'current_version' => 1,
),
),
'fields' => array(
'sid' => array(
'type' => 'serial',
'not null' => TRUE,
'no export' => TRUE,
),
'name' => array(
'type' => 'varchar',
'length' => '255',
'description' => 'Unique ID for this style. Used to identify it programmatically.',
),
'admin_title' => array(
'type' => 'varchar',
'length' => '255',
'description' => 'Human readable title for this style.',
),
'admin_description' => array(
'type' => 'text',
'size' => 'big',
'description' => 'Administrative description of this style.',
'object default' => '',
),
'settings' => array(
'type' => 'text',
'size' => 'big',
'serialize' => TRUE,
'object default' => array(),
'initial ' => array(
'name' => '_temporary',
'style_base' => NULL,
'palette' => array(),
),
'description' => 'A serialized array of settings specific to the style base that describes this plugin.',
),
),
'primary key' => array('sid'),
'unique keys' => array(
'name' => array('name'),
),
);
return $schema;
}

View File

@@ -0,0 +1,135 @@
<?php
/**
* @file
* Stylizer module
*
* This module allows styles to be created and managed on behalf of modules
* that implement styles.
*
* The Stylizer tool allows recolorable styles to be created via a miniature
* scripting language. Panels utilizes this to allow administrators to add
* styles directly to any panel display.
*/
/**
* Implements hook_permission()
*/
function stylizer_permission() {
return array(
'administer stylizer' => array(
'title' => t("Use the Stylizer UI"),
'description' => t("Allows a user to use the CTools Stylizer UI."),
),
);
}
/**
* Implementation of hook_ctools_plugin_directory() to let the system know
* we implement task and task_handler plugins.
*/
function stylizer_ctools_plugin_directory($module, $plugin) {
// Most of this module is implemented as an export ui plugin, and the
// rest is in ctools/includes/stylizer.inc
if ($module == 'ctools' && $plugin == 'export_ui') {
return 'plugins/' . $plugin;
}
}
/**
* Implements hook_ctools_plugin_type() to inform the plugin system that
* Stylizer style_base plugin types.
*/
function stylizer_ctools_plugin_type() {
return array(
'style_bases' => array(
'load themes' => TRUE,
),
);
}
/**
* Implementation of hook_panels_dashboard_blocks().
*
* Adds page information to the Panels dashboard.
*/
function stylizer_panels_dashboard_blocks(&$vars) {
$vars['links']['stylizer'] = array(
'title' => l(t('Custom style'), 'admin/structure/stylizer/add'),
'description' => t('Custom styles can be applied to Panel regions and Panel panes.'),
);
// Load all mini panels and their displays.
ctools_include('export');
ctools_include('stylizer');
$items = ctools_export_crud_load_all('stylizer');
$count = 0;
$rows = array();
$base_types = ctools_get_style_base_types();
foreach ($items as $item) {
$style = ctools_get_style_base($item->settings['style_base']);
if ($style && $style['module'] == 'panels') {
$type = $base_types[$style['module']][$style['type']]['title'];
$rows[] = array(
check_plain($item->admin_title),
$type,
array(
'data' => l(t('Edit'), "admin/structure/stylizer/list/$item->name/edit"),
'class' => 'links',
),
);
// Only show 10.
if (++$count >= 10) {
break;
}
}
}
if ($rows) {
$content = theme('table', array('rows' => $rows, 'attributes' => array('class' => 'panels-manage')));
}
else {
$content = '<p>' . t('There are no custom styles.') . '</p>';
}
$vars['blocks']['stylizer'] = array(
'title' => t('Manage styles'),
'link' => l(t('Go to list'), 'admin/structure/stylizer'),
'content' => $content,
'class' => 'dashboard-styles',
'section' => 'left',
);
}
/**
* Implementation of hook_theme to load all content plugins and pass thru if
* necessary.
*/
function stylizer_theme() {
$theme = array();
ctools_include('stylizer');
// Register all themes given for basetypes.
$plugins = ctools_get_style_bases();
$base_types = ctools_get_style_base_types();
foreach ($plugins as $plugin) {
if (!empty($base_types[$plugin['module']][$plugin['type']]) && !empty($plugin['theme'])) {
$base_type = $base_types[$plugin['module']][$plugin['type']];
$theme[$plugin['theme']] = array(
'variables' => $base_type['theme variables'],
'path' => $plugin['path'],
);
// if no theme function exists, assume template.
if (!function_exists("theme_$plugin[theme]")) {
$theme[$plugin['theme']]['template'] = str_replace('_', '-', $plugin['theme']);
$theme[$plugin['theme']]['file'] = $plugin['file']; // for preprocess.
}
}
}
return $theme;
}