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']],
];

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc