function _less_pre_render in Less CSS Preprocessor 7.4
Same name and namespace in other branches
- 8 less.module \_less_pre_render()
- 7.2 less.module \_less_pre_render()
- 7.3 less.module \_less_pre_render()
Pre-render function for 'style' elements.
Key place where .less files are detected and processed.
Parameters
array $styles: All 'style' elements that are to display on the page.
Return value
array Modified style elements pointing to compiled LESS output.
2 calls to _less_pre_render()
- less_wysiwyg_editor_settings_alter in includes/
less.wysiwyg.inc - Implements hook_wysiwyg_editor_settings_alter().
- _less_watch in includes/
less.watch.inc - Page callback for 'ajax/less/watch'.
1 string reference to '_less_pre_render'
- less_element_info_alter in ./
less.module - Implements hook_element_info_alter().
File
- ./
less.module, line 160 - Handles compiling of .less files.
Code
function _less_pre_render($styles) {
$less_devel = (bool) variable_get(LESS_DEVEL, FALSE);
if ($less_devel) {
if (variable_get(LESS_WATCH, FALSE)) {
drupal_add_js(drupal_get_path('module', 'less') . '/scripts/less.watch.js');
}
// Warn users once every hour that less is checking for file modifications.
if (user_access(LESS_PERMISSION) && flood_is_allowed('less_devel_warning', 1)) {
flood_register_event('less_devel_warning');
$message_vars = array(
'@url' => url('admin/config/development/less'),
);
drupal_set_message(t('LESS files are being checked for modifications on every request. Remember to <a href="@url">turn off</a> this feature on production websites.', $message_vars), 'status');
}
}
$less_items = array_intersect_key($styles['#items'], array_flip(_less_children($styles['#items'])));
if (!empty($less_items)) {
require_once dirname(__FILE__) . '/includes/less.process.inc';
// Attach settings to each item.
array_walk($less_items, '_less_attach_settings');
// Determine output path for each item.
array_walk($less_items, '_less_output_path');
// Check for rebuild each page.
if ($less_devel) {
array_walk($less_items, '_less_check_build');
}
// Compile '.less' files.
array_walk($less_items, '_less_process_file');
// Store cache information.
if ($less_devel) {
array_walk($less_items, '_less_store_cache_info');
}
$styles['#items'] = array_replace($styles['#items'], $less_items);
}
return $styles;
}