/** * Process all stylesheets to compile just in time * * @author oncletom * @since 1.0 * @version 1.1 * @param $force boolean If set to true, rebuild all stylesheets, without considering they are updated or not */ public function processStylesheets($force = false) { $styles = $this->getQueuedStylesToProcess(); $force = is_bool($force) && $force ? !!$force : false; WPLessStylesheet::$upload_dir = $this->configuration->getUploadDir(); WPLessStylesheet::$upload_uri = $this->configuration->getUploadUrl(); if (empty($styles)) { return; } if (!wp_mkdir_p(WPLessStylesheet::$upload_dir)) { throw new WPLessException(sprintf('The upload dir folder (`%s`) is not writable from %s.', WPLessStylesheet::$upload_dir, get_class($this))); } foreach ($styles as $style_id) { $this->processStylesheet($style_id, $force); } do_action('wp-less_plugin_process_stylesheets', $styles); }
public function __construct(WPLessConfiguration $configuration) { parent::__construct($configuration); WPLessStylesheet::$upload_dir = $this->configuration->getUploadDir(); WPLessStylesheet::$upload_uri = $this->configuration->getUploadUrl(); }
/** * Update custom.less stylesheet. */ function presscore_generate_less_css_file( $handler = 'dt-custom.less', $src = '' ) { /** * Include WP-Less. * */ require_once( PRESSCORE_EXTENSIONS_DIR . '/wp-less/bootstrap-for-theme.php' ); // WP-Less init if ( class_exists('WPLessPlugin') ) { $less = WPLessPlugin::getInstance(); $less->dispatch(); } /** * Less helpers. * * @since presscore 1.0.6 */ require_once( PRESSCORE_EXTENSIONS_DIR . '/less-functions.php' ); /** * Less variables. * * @since presscore 0.5 */ if ( $located_file = locate_template( 'inc/less-vars.php' ) ) { include_once( $located_file ); } // $less = WPLessPlugin::getInstance(); $config = $less->getConfiguration(); if ( !wp_style_is($handler, 'registered') ) { if ( !$src ) { $src = PRESSCORE_THEME_URI . '/css/custom.less'; } wp_register_style( $handler, $src ); } // save options $options = presscore_compile_less_vars(); if ( $options ) { $less->setVariables( $options ); } WPLessStylesheet::$upload_dir = $config->getUploadDir(); WPLessStylesheet::$upload_uri = $config->getUploadUrl(); return $less->processStylesheet( $handler, true ); }
/** * * Parse and register less file and convert it to css * * @param string $handler * @param string $src css file source * @param array $deps * @param bool $version * @param string $media * @param bool $compress the file should by compressed * * @return mixed * @throws Exception * @access public */ public function registerStylesheetsTemplates($handler = 'custom.less', $src = '', array $deps = array(), $version = false, $media = 'all', $compress = false) { if (class_exists('\\WPLessPlugin')) { $less = \WPLessPlugin::getInstance(); $less->dispatch(); // we’re done, everything works as if the plugin is activated $less_config = $less->getConfiguration(); $less_config->setUploadDir($this->upload_dir); $less_config->setUploadUrl($this->upload_url); $css_uri = FileSystem::getDirectory('css_uri'); $less->setImportDir(array($css_uri . 'less')); $less_variable = $this->variables; $less->setVariables($less_variable); \Less_Parser::$default_options['compress'] = $compress; //\Less_Parser::$default_options['cache_method'] = 'serialize'; \WPLessStylesheet::$upload_dir = $less_config->getUploadDir(); \WPLessStylesheet::$upload_uri = $less_config->getUploadUrl(); if (!wp_style_is($handler, 'registered')) { if (!$src) { $src = $css_uri . 'less/style.less'; } wp_register_style($handler, $src, $deps, $version, $media); wp_enqueue_style($handler); } return $less->processStylesheet($handler, true); } else { throw new Exception(Translate::translate('WP-Less plugin not found.')); } }