You are here

function live_css_page_build in Live CSS 8

Same name and namespace in other branches
  1. 8.2 live_css.module \live_css_page_build()

Implements hook_page_build().

  • This replaced hook_init()

File

./live_css.module, line 84

Code

function live_css_page_build() {
  $perf = config('system.performance');

  /**
   * Verify permissions to use editor and make sure aggregation
   * is disabled.
   */
  if (user_access('edit css') && !$perf
    ->get('css.preprocess')) {
    $config = config('live_css.settings');
    $less = (bool) $config
      ->get('live_css_less');
    $theme = $config
      ->get('live_css_theme');

    // Add necessary javascript files to handle LESS files editing.
    if ($less) {
      drupal_add_js(drupal_get_path('module', 'live_css') . '/less-display.js');
      drupal_add_js(drupal_get_path('module', 'live_css') . '/less-1.3.0.min.js');
    }
    $settings = array();

    // Prepare php variables for transfer to javascript
    $settings['theme'] = $theme;
    $settings['autoload'] = FALSE;
    $settings['hideadmin'] = (bool) $config
      ->get('live_css_hideadmin');
    $settings['hidemodules'] = (bool) $config
      ->get('live_css_hidemodules');
    $settings['fontsize'] = $config
      ->get('live_css_fontsize');
    $settings['tabsize'] = (int) $config
      ->get('live_css_tabsize');
    $settings['softtabs'] = (bool) $config
      ->get('live_css_softtabs');
    $settings['storage'] = (bool) $config
      ->get('live_css_storage');
    $settings['less'] = $less;
    $settings['savepath'] = url('css/save');

    // Leaving this one out until the Admin Menu team has a working D8 release
    // $settings['menumargin'] = (boolean) config('admin_menu.settings')->get('admin_menu_top_margin');
    // Load settings from PHP to JS
    drupal_add_js(array(
      'live_css' => $settings,
    ), 'setting');

    // Load the editor itself
    drupal_add_js(drupal_get_path('module', 'live_css') . '/ace/src/ace.js');
    drupal_add_js(drupal_get_path('module', 'live_css') . '/ace/src/mode-css.js');
    drupal_add_js(drupal_get_path('module', 'live_css') . '/ace/src/theme-' . $theme . '.js');

    // Load any plugins there may be (there are none right now)
    // drupal_add_js(drupal_get_path('module', 'live_css') . '/plugins.js');
    // Load the list of stylesheets
    drupal_add_css(drupal_get_path('module', 'live_css') . '/css.css', array(
      'group' => 'CSS_THEME',
      'every_page' => TRUE,
      'weight' => 100,
      'preprocess' => FALSE,
    ));
    drupal_add_js(drupal_get_path('module', 'live_css') . '/css.js');
  }
}