bootstrap_cloud-2.x-dev/src/Bootstrap.php

src/Bootstrap.php
<?php

namespace Drupal\bootstrap_cloud;

/**
 * The primary class for the Drupal Bootstrap base theme.
 *
 * Provides many helper methods.
 *
 * @ingroup utility
 */
class Bootstrap {

  /**
   * Matches a Bootstrap class based on a string value.
   *
   * @param string $label
   *   The default class to return if no match is found.
   * @param string $default
   *   The default class to return if no match is found.
   *
   * @return string
   *   The Bootstrap class matched against the value of $haystack or $default
   *   if no match could be made.
   */
  public static function cssClassFromString($label, $default = '') {
    static $lang;
    if (!isset($lang)) {
      $lang = \Drupal::languageManager()->getCurrentLanguage()->getId();
    }
    // Allow sub-themes to alter this array of patterns.
    /** @var \Drupal\Core\Theme\ThemeManager $theme_manager */
    $data = [
      // Text that match these specific strings are checked first.
      'matches' => [
        // Primary class.
        t('Download feature')->render() => 'primary',

        // Success class.
        t('Add effect')->render() => 'success',
        t('Add and configure')->render()  => 'success',
        t('Save configuration')->render() => 'success',
        t('Install and set as default')->render() => 'success',

        // Info class.
        t('Save and add')->render() => 'info',
        t('Add another item')->render() => 'plus',
        t('Update style')->render() => 'info',
        t('Disassociate')->render() => 'remove',
        t('Associate')->render() => 'ok',
        t('Add')->render() => 'plus',
        t('Start')->render() => 'play',
        t('Reboot')->render() => 'repeat',
        t('Stop')->render() => 'stop',
        t('Terminate')->render() => 'remove',
        t('Delete')->render() => 'remove',
        t('Create')->render() => 'plus',
        t('Copy')->render() => 'duplicate',
        t('List')->render() => 'th-list',
        t('Launch')->render() => 'play',
        t('Refresh All')->render() => 'refresh',
        t('Refresh')->render() => 'repeat',
        t('Log out')->render() => 'log-out',
        t('Apply')->render() => 'ok',
        t('Attach')->render() => 'tag',
        t('Detach')->render() => 'tags',
        t('Accept')->render() => 'ok',
        t('Approve')->render() => 'ok',
        t('Review')->render() => 'comment',
        t('Devel')->render() => 'devel',

        t('Manage')->render() => 'cog',
        t('Configure')->render() => 'cog',
        t('Settings')->render() => 'cog',
        t('Download')->render() => 'download',
        t('Export')->render() => 'export',
        t('Filter')->render() => 'filter',
        t('Import')->render() => 'download-alt',
        t('Save')->render() => 'ok',
        t('Update')->render() => 'ok',
        t('Edit')->render() => 'wrench',
        t('Uninstall')->render() => 'trash',
        t('Install')->render() => 'plus',
        t('Write')->render() => 'plus',
        t('Cancel')->render() => 'remove',
        t('Remove')->render() => 'trash',
        t('Reset')->render() => 'remove-circle',
        t('Search')->render() => 'search',
        t('Upload')->render() => 'upload',
        t('Preview')->render() => 'eye-open',
        t('Log in')->render() => 'log-in',
      ],

      // Text containing these words anywhere in the string are checked last.
      'contains' => [
        // Primary class.
        t('Confirm')->render() => 'primary',
        t('Filter')->render() => 'primary',
        t('Log in')->render() => 'primary',
        t('Submit')->render() => 'primary',
        t('Search')->render() => 'primary',
        t('Settings')->render() => 'primary',
        t('Upload')->render() => 'primary',

        // Danger class.
        t('Delete')->render() => 'danger',
        t('Remove')->render() => 'danger',
        t('Reset')->render() => 'danger',
        t('Uninstall')->render() => 'danger',

        // Success class.
        t('Disassociate Address')->render() => 'remove',
        t('Add')->render() => 'success',
        t('Create')->render() => 'success',
        t('Install')->render() => 'success',
        t('Save')->render() => 'success',
        t('Write')->render() => 'success',

        // Warning class.
        t('Export')->render() => 'warning',
        t('Import')->render() => 'warning',
        t('Restore')->render() => 'warning',
        t('Rebuild')->render() => 'warning',

        // Info class.
        t('Apply')->render() => 'info',
        t('Update')->render() => 'info',
        t('Disassociate')->render() => 'remove',
        t('Disassociate Address')->render() => 'remove',
        t('Associate')->render() => 'ok',
        t('Add')->render() => 'plus',
        t('Start')->render() => 'play',
        t('Reboot')->render() => 'repeat',
        t('Stop')->render() => 'stop',
        t('Terminate')->render() => 'remove',
        t('Delete')->render() => 'remove',
        t('Create')->render() => 'plus',
        t('Copy')->render() => 'duplicate',
        t('List')->render() => 'th-list',
        t('Launch')->render() => 'play',
        t('Refresh All')->render() => 'refresh',
        t('Refresh')->render() => 'repeat',
        t('Log out')->render() => 'log-out',
        t('Apply')->render() => 'ok',
        t('Attach')->render() => 'tag',
        t('Detach')->render() => 'tags',
        t('Accept')->render() => 'ok',
        t('Approve')->render() => 'ok',
        t('Review')->render() => 'comment',
        t('Devel')->render() => 'devel',

        t('Manage')->render() => 'cog',
        t('Configure')->render() => 'cog',
        t('Settings')->render() => 'cog',
        t('Download')->render() => 'download',
        t('Export')->render() => 'export',
        t('Filter')->render() => 'filter',
        t('Import')->render() => 'download-alt',
        t('Save')->render() => 'ok',
        t('Update')->render() => 'ok',
        t('Edit')->render() => 'wrench',
        t('Uninstall')->render() => 'trash',
        t('Install')->render() => 'plus',
        t('Write')->render() => 'plus',
        t('Cancel')->render() => 'remove',
        t('Remove')->render() => 'trash',
        t('Reset')->render() => 'remove-circle',
        t('Search')->render() => 'search',
        t('Upload')->render() => 'upload',
        t('Preview')->render() => 'eye-open',
        t('Log in')->render() => 'log-in',
      ],
    ];
    $theme_manager = \Drupal::service('theme.manager');
    $theme_manager->alter('bootstrap_colorize_text', $data);

    // Iterate over the array.
    foreach ($data as $pattern => $strings) {
      foreach ($strings as $text => $class) {
        switch ($pattern) {
          case 'matches':
            if ($label === $text) {
              return $class;
            }
            break;

          case 'contains':
            if (strpos($label, $text) !== FALSE) {
              return $class;
            }
            break;
        }
      }
    }

    // Return the default if nothing was matched.
    return $default;
  }

}

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

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