at_theme-1.4.1/at_core/forms/ext/extension_settings.php
at_core/forms/ext/extension_settings.php
<?php
use Drupal\Core\Extension\ThemeExtensionList;
/**
* @file
* Generate form elements for the Extension settings.
*/
// Submit handlers for the advanced settings.
include_once \Drupal::service('extension.list.theme')->getPath('at_core') . '/forms/ext/extension_settings_validate.php';
include_once \Drupal::service('extension.list.theme')->getPath('at_core') . '/forms/ext/extension_settings_submit.php';
$settings_extensions_form_open = theme_get_setting('settings.extensions_form_open', $theme);
$form['docs'] = [
'#type' => 'container',
'#markup' => t('<a class="at-docs" href=":docs" target="_blank" title="External link: docs.adaptivethemes.com">View online documentation <svg class="docs-ext-link-icon" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1408 928v320q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h704q14 0 23 9t9 23v64q0 14-9 23t-23 9h-704q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113v-320q0-14 9-23t23-9h64q14 0 23 9t9 23zm384-864v512q0 26-19 45t-45 19-45-19l-176-176-652 652q-10 10-23 10t-23-10l-114-114q-10-10-10-23t10-23l652-652-176-176q-19-19-19-45t19-45 45-19h512q26 0 45 19t19 45z"/></svg></a>', [':docs' => ' //docs.adaptivethemes.com/']),
'#weight' => -1000,
];
$form['extensions'] = [
'#type' => 'details',
'#title' => t('Extensions'),
'#weight' => -201,
'#open' => $settings_extensions_form_open,
'#attributes' => ['class' => ['extension-settings', 'clearfix']],
];
// Enable extensions, the extension settings are hidden by default to ease the
// the UI clutter, this setting is also used as a global enable/disable for any
// extension in other logical operations.
$form['extensions']['extensions-enable-container'] = [
'#type' => 'container',
'#attributes' => ['class' => ['subsystem-enabled-container', 'layouts-column-onequarter']],
];
$form['extensions']['extensions-enable-container']['settings_extensions_form_open'] = [
'#type' => 'checkbox',
'#title' => t('Keep open'),
'#default_value' => $settings_extensions_form_open,
'#states' => [
'disabled' => ['input[name="settings_enable_extensions"]' => ['checked' => FALSE]],
],
];
$form['extensions']['extensions-enable-container']['settings_enable_extensions'] = [
'#type' => 'checkbox',
'#title' => t('Enable'),
'#default_value' => theme_get_setting('settings.enable_extensions', $theme),
];
$form['extensions']['extension_settings'] = [
'#type' => 'vertical_tabs',
'#attributes' => ['class' => ['clearfix']],
'#states' => [
'visible' => [':input[name="settings_enable_extensions"]' => ['checked' => TRUE]],
],
];
// Extensions.
$form['enable_extensions'] = [
'#type' => 'details',
'#title' => t('Enable extensions'),
'#group' => 'extension_settings',
];
$form['enable_extensions']['description'] = [
'#markup' => t('<p>Extensions are settings for configuring and styling your site. Enabled extensions appear in new vertical tabs.</p>'),
];
// Responsive Menus.
$form['enable_extensions']['settings_enable_responsive_menus'] = [
'#type' => 'checkbox',
'#title' => t('Responsive menus'),
'#description' => t('Select responsive menu styles and breakpoints.'),
'#default_value' => theme_get_setting('settings.enable_responsive_menus', $theme),
];
// Image alignment and captions.
$form['enable_extensions']['settings_enable_images'] = [
'#type' => 'checkbox',
'#title' => t('Image alignment and captions'),
'#default_value' => theme_get_setting('settings.enable_images', $theme),
'#description' => t('Set image alignment, captions and teaser view per content type.'),
];
// Touch icons.
$form['enable_extensions']['settings_enable_touch_icons'] = [
'#type' => 'checkbox',
'#title' => t('Touch icons'),
'#description' => t('Add touch icon meta tags. A default set of icons are located in <code>@touchiconpath</code>.', ['@touchiconpath' => $subtheme_path . '/images/touch-icons/']),
'#default_value' => theme_get_setting('settings.enable_touch_icons', $theme),
];
// Fonts.
$form['enable_extensions']['settings_enable_fonts'] = [
'#type' => 'checkbox',
'#title' => t('Fonts'),
'#default_value' => theme_get_setting('settings.enable_fonts', $theme),
'#description' => t('Apply fonts to site elements. Supports <a href=":gflink" target="_blank">Google</a> and <a href=":tklink" target="_blank">Typekit</a> fonts, as well as standard websafe fonts.', [':tklink' => 'https://typekit.com/', ':gflink' => 'https://fonts.google.com/']),
];
// Title styles.
$form['enable_extensions']['settings_enable_titles'] = [
'#type' => 'checkbox',
'#title' => t('Titles'),
'#default_value' => theme_get_setting('settings.enable_titles', $theme),
'#description' => t('Set case, weight, alignment and letter-spacing for titles (headings).'),
];
// Shortcodes.
$form['enable_extensions']['settings_enable_shortcodes'] = [
'#type' => 'checkbox',
'#title' => t('Shortcode CSS Classes'),
'#description' => t('Adjust and enhance theme styles with pre-styled CSS classes.'),
'#default_value' => theme_get_setting('settings.enable_shortcodes', $theme),
];
// Slideshows.
$form['enable_extensions']['settings_enable_slideshows'] = [
'#type' => 'checkbox',
'#title' => t('Slideshows'),
'#description' => t('Enable slideshows and configure settings.'),
'#default_value' => theme_get_setting('settings.enable_slideshows', $theme),
];
// Mobile blocks.
$form['enable_extensions']['settings_enable_mobile_blocks'] = [
'#type' => 'checkbox',
'#title' => t('Mobile Blocks'),
'#description' => t('Show or hide blocks in mobile devices.'),
'#default_value' => theme_get_setting('settings.enable_mobile_blocks', $theme),
];
// Custom CSS.
$form['enable_extensions']['settings_enable_custom_css'] = [
'#type' => 'checkbox',
'#title' => t('Custom CSS'),
'#description' => t('Enter custom CSS rules for minor adjustment to your theme.'),
'#default_value' => theme_get_setting('settings.enable_custom_css', $theme),
];
// CKEditor
// Check if theme is Mimic compatible.
if (theme_get_setting('settings.mimic_compatible', $theme) === 1) {
$form['enable_extensions']['settings_enable_ckeditor'] = [
'#type' => 'checkbox',
'#title' => t('CKEditor Skin'),
'#description' => t('Select CKEditor skin.'),
'#default_value' => theme_get_setting('settings.enable_ckeditor', $theme),
];
}
// Devel.
$form['enable_extensions']['settings_enable_devel'] = [
'#type' => 'checkbox',
'#title' => t('Developer tools'),
'#description' => t('Settings to help with theme development.'),
'#default_value' => theme_get_setting('settings.enable_devel', $theme),
];
// Legacy browsers.
$form['enable_extensions']['settings_enable_legacy_browsers'] = [
'#type' => 'checkbox',
'#title' => t('Legacy browsers'),
'#description' => t('Settings to support crappy old browsers like IE8. Use with caution, do not enable this unless you really, really need it.'),
'#default_value' => theme_get_setting('settings.enable_legacy_browsers', $theme),
];
// Markup overrides.
$form['enable_extensions']['settings_enable_markup_overrides'] = [
'#type' => 'checkbox',
'#title' => t('Markup overrides'),
'#description' => [
'#theme' => 'item_list',
'#list_type' => 'ul',
'#attributes' => ['class' => ['markup-overrides-desc']],
'#items' => [
t('Responsive tables'),
t('Breadcrumbs'),
t('Search block'),
t('Login block'),
t('Comment titles'),
t('Feed icons'),
t('Skip link'),
t('Attribution'),
],
],
'#default_value' => theme_get_setting('settings.enable_markup_overrides', $theme),
];
// Extensions master toggle.
if (theme_get_setting('settings.enable_extensions', $theme) == 1) {
// Include fonts.inc by default.
include_once $at_core_path . '/forms/ext/fonts.inc';
$extensions_array = [
'responsive_menus',
'fonts',
'titles',
'images',
'touch_icons',
'shortcodes',
'mobile_blocks',
'slideshows',
'custom_css',
'ckeditor',
'markup_overrides',
'devel',
'legacy_browsers',
];
// Get form values.
$values = $form_state->getValues();
foreach ($extensions_array as $extension) {
$form_state_value = isset($values["settings_enable_$extension"]) ? $values["settings_enable_$extension"] : 0;
$form_value = isset($form['enable_extensions']["settings_enable_$extension"]['#default_value']) ? $form['enable_extensions']["settings_enable_$extension"]['#default_value'] : 0;
if (($form_state_value && $form_state_value === 1) || (!$form_state_value && $form_value === 1)) {
include_once $at_core_path . '/forms/ext/' . $extension . '.php';
}
}
}
// Submit button for advanced settings.
$form['extensions']['actions'] = [
'#type' => 'actions',
'#attributes' => ['class' => ['submit--advanced-settings']],
];
$form['extensions']['actions']['submit'] = [
'#type' => 'submit',
'#value' => t('Save extension settings'),
'#validate' => ['at_core_validate_extension_settings'],
'#submit' => ['at_core_submit_extension_settings'],
'#attributes' => ['class' => ['button--primary']],
];
