You are here

function less_wysiwyg_editor_settings_alter in Less CSS Preprocessor 7.2

Same name and namespace in other branches
  1. 8 includes/less.wysiwyg.inc \less_wysiwyg_editor_settings_alter()
  2. 7.4 includes/less.wysiwyg.inc \less_wysiwyg_editor_settings_alter()
  3. 7.3 less.wysiwyg.inc \less_wysiwyg_editor_settings_alter()

Implements hook_wysiwyg_editor_settings_alter(). Check the css_content WYSIWYG setting for LESS files and replace with generated CSS files where necessary.

File

./less.wysiwyg.inc, line 8

Code

function less_wysiwyg_editor_settings_alter(&$settings, $context) {
  $wysiwyg = NULL;
  $stylesheets = array();

  // Figure out which WYSIWYG is in use, each has their own list of stylesheets.
  if (isset($settings['content_css'])) {
    $wysiwyg = 'tinymce';
    $stylesheets = explode(',', $settings['content_css']);
  }
  elseif (isset($settings['EditorAreaCSS'])) {
    $wysiwyg = 'fckeditor';
    $stylesheets = explode(',', $settings['EditorAreaCSS']);
  }
  elseif (isset($settings['contentsCss'])) {
    $wysiwyg = 'ckeditor';
    $stylesheets = $settings['contentsCss'];
  }
  if (!empty($stylesheets)) {
    $styles = array(
      '#items' => array(),
    );
    foreach ($stylesheets as $css_file) {
      $styles['#items'][$css_file] = array(
        'data' => trim($css_file, '/'),
      );
    }
    $styles = _less_pre_render($styles);
    $stylesheets = array();
    foreach ($styles['#items'] as $file) {
      $stylesheets[] = file_create_url($file['data']);
    }
  }
  switch ($wysiwyg) {
    case 'tinymce':
      $settings['content_css'] = implode(',', $stylesheets);
      break;
    case 'fckeditor':
      $settings['EditorAreaCSS'] = implode(',', $stylesheets);
      break;
    case 'ckeditor':
      $settings['contentsCss'] = $stylesheets;
      break;
  }
}