/** * Compile LESS * @param string $in * @param string $out */ public function compile($in, $out) { if ($this->cacheDir) { $this->autoCompileLess($in, $out); } else { $this->compiler->checkedCompile($in, $out); } }
function shoestrap_phpless() { $shoestrap_responsive = get_theme_mod('shoestrap_responsive'); if (!class_exists('lessc')) { require_once TEMPLATEPATH . '/lib/less_compiler/lessc.inc.php'; } $less = new lessc(); $less->setFormatter("compressed"); if ($shoestrap_responsive == '0') { $less->checkedCompile(TEMPLATEPATH . '/assets/css/app-fixed.less', TEMPLATEPATH . '/assets/css/app-fixed.css'); } else { $less->checkedCompile(TEMPLATEPATH . '/assets/css/app-responsive.less', TEMPLATEPATH . '/assets/css/app-responsive.css'); } }
private function compileLess() { $lessc = new lessc(); $lessIndexPath = DIR_TEMPLATE . '/default/stylesheet/less/index.less'; $cssIndexPath = DIR_TEMPLATE . '/default/stylesheet/stylesheet.css'; $lessc->checkedCompile($lessIndexPath, $cssIndexPath); }
public function registerLessFile($url, $media = '') { $this->hasScripts = true; $lessUrl = $url; $uniqid = md5($lessUrl); $lessFileName = basename($lessUrl); $cssFileName = preg_replace('/\\.less$/i', '', $lessFileName) . ".css"; $tempCachePath = Yii::getPathOfAlias('application.runtime.cache') . "/yiiless/{$uniqid}"; @mkdir($tempCachePath, 0777, true); $cssFilePath = "{$tempCachePath}/{$cssFileName}"; if (preg_match('/^https?\\:\\/\\//', $lessUrl)) { $lessFilePath = "{$tempCachePath}/{$lessFileName}"; } else { if (file_exists(Yii::getPathOfAlias('webroot') . "/{$lessUrl}")) { $lessFilePath = Yii::getPathOfAlias('webroot') . "/{$lessUrl}"; } else { if (file_exists($lessUrl)) { $lessFilePath = $lessUrl; } else { $lessFilePath = $_SERVER['DOCUMENT_ROOT'] . "/" . $lessUrl; } } } $lessCompiler = new lessc(); if ($this->cache === false) { $lessCompiler->compileFile($lessFilePath, $cssFilePath); } else { $lessCompiler->checkedCompile($lessFilePath, $cssFilePath); } $cssUrl = Yii::app()->getAssetManager()->publish($cssFilePath); $this->cssFiles[$cssUrl] = $media; $params = func_get_args(); $this->recordCachingAction('clientScript', 'registerLessFile', $params); return $this; }
function applyDefaultTheme() { $less = new lessc(); try { $less->checkedCompile("./style/main.less", "./style/style.css"); } catch (exception $e) { echo $e->getMessage(); } }
function Core_View_Helper_Css($files) { include_once LIBRARY_PATH . '/Less/lessc.inc.php'; $options = Core_Resource_View::getOptions(); $less = new lessc(); foreach ($files as $key => $file) { if (substr($file, 0, 1) != '/') { $filePaths[] = APPLICATION_PATH . '/theme/' . $options['theme'] . '/' . $file; } else { $filePaths[] = BASE_PATH . $file; } } if ($options['combineCss']) { $fileDate = 0; $cacheFile = ''; foreach ($filePaths as $filePath) { $fileDate = max(filemtime($filePath), $fileDate); $cacheFile .= $filePath; } $cacheFile = md5($cacheFile) . '.css'; $cacheFilePath = BASE_PATH . '/public/cache/' . $cacheFile; $cacheFileDate = file_exists($cacheFilePath) ? filemtime($cacheFilePath) : 0; if ($cacheFileDate < $fileDate) { $fileContent = ''; $less->setVariables(array('themeUrl' => "'" . BASE_URL . '/app/theme/' . $options['theme'] . "'", 'publicUrl' => "'" . BASE_URL . '/public' . "'")); foreach ($filePaths as $filePath) { $ext = pathinfo($filePath, PATHINFO_EXTENSION); if ($ext == 'less') { $fileContent .= $less->compileFile($filePath) . PHP_EOL; } else { $fileContent .= file_get_contents($filePath) . PHP_EOL; } } file_put_contents($cacheFilePath, $options['minify'] ? Core_Helper_Minify::minifyCss($fileContent) : $fileContent); } $fileLinks = array(BASE_URL . '/public/cache/' . $cacheFile); } else { foreach ($filePaths as $key => $filePath) { $ext = pathinfo($filePath, PATHINFO_EXTENSION); if ($ext == 'less') { $less->setVariables(array('themeUrl' => "'" . BASE_URL . '/app/theme/' . $options['theme'] . "'")); $cacheFile = md5($filePath) . '.css'; $cacheFilePath = BASE_PATH . '/public/cache/' . $cacheFile; $less->checkedCompile($filePath, $cacheFilePath); $fileLinks[] = BASE_URL . '/public/cache/' . $cacheFile; } else { $fileLinks[] = BASE_URL . '/' . trim(str_replace(BASE_PATH, '', $filePath), '/'); } } } foreach ($fileLinks as $link) { echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"{$link}\" />" . PHP_EOL; } }
function test($data) { require "scripts/lessc.inc.php"; $less = new lessc(); if (ENVIRONMENT != 'development') { $less->checkedCompile('content/' . $data . '/style_compilator.less', 'content/cache/' . $data . '_compiled.css'); } else { $less->compileFile('content/' . $data . '/style_compilator.less', 'content/cache/' . $data . '_compiled.css'); } echo '<link href="/content/cache/' . $data . '_compiled.css" rel="stylesheet" type="text/css" />'; }
/** * Method that compiles LESS to CSS file * @param (string) Path to LESS file * @param (bool) If true additional LESS variables from "jm_bootstrap_variables" parameter will be added * @param (bool) Indicates if we are dealing with a file that belongs to template's core. * If yes, it means that we should add suffix for CSS file because different template styles may use * different variables * @param (bool) When true old version of LessC will be used. Otherwise Less_Parser class. */ protected function lessToCss($lessPath, $useVars = true, $coreStyle = true, $legacyCompiler = false) { if (class_exists('lessc') == false && $legacyCompiler) { require_once JMF_FRAMEWORK_PATH . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'libraries' . DIRECTORY_SEPARATOR . 'lessc' . DIRECTORY_SEPARATOR . 'lessc.inc.0.4.0.php'; } if (class_exists('Less_Parser') == false && !$legacyCompiler) { require_once JMF_FRAMEWORK_PATH . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'libraries' . DIRECTORY_SEPARATOR . 'less_parser' . DIRECTORY_SEPARATOR . 'Less.php'; } $developer_mode = $this->params->get('devmode', false) == '1' ? true : false; $filename = JFile::stripExt(JFile::getName($lessPath)); $style_id = @JFactory::getApplication()->getTemplate(true)->id; $css_suffix = ''; // A suffix is simply ID of template style, eg. template.10.css if ($style_id > 0 && $coreStyle) { $css_suffix = '.' . $style_id; } // Establishing path to CSS file $cssPath = JPath::clean(JMF_TPL_PATH . '/css/' . $filename . $css_suffix . '.css'); // Checking if LESS file exists. If not we should make sure that we're looking in correct directory if (!JFile::exists($lessPath)) { $lessPath = JPath::clean(JMF_TPL_PATH . '/less/' . $filename . '.less'); } // If developer mode is disabled and CSS file is not older than LESS file, we do not have to compile LESS file. if (JFile::exists($lessPath) && JFile::exists($cssPath)) { $lessTime = filemtime($lessPath); $cssTime = filemtime($cssPath); if ($lessTime <= $cssTime && $developer_mode == false) { return JMF_TPL_URL . '/css/' . $filename . $css_suffix . '.css'; } } // At this point, either we are in developer mode or CSS file does not exist or is older than LESS file. // But if CSS file does exist, we should delete it if (JFile::exists($cssPath)) { JFile::delete($cssPath); } try { if ($legacyCompiler) { // Initialising LessC compiler $less = new lessc(); // Additional LESS variables if ($useVars) { $variables = $this->params->get('jm_bootstrap_variables', array()); if (!empty($variables)) { $less->setVariables($variables); } } // Checked Compile - LessC $less->checkedCompile($lessPath, $cssPath); } else { // Less_Parser compiler $less_parser_options = array('compress' => $this->params->get('cssCompress', '0') == '1' ? true : false, 'relativeUrls' => false, 'sourceMap' => false); if ($developer_mode) { //$less_parser_options['compress'] = false; $less_parser_options['sourceMap'] = true; $less_parser_options['sourceMapWriteTo'] = JPath::clean(JMF_TPL_PATH . '/css/' . $filename . $css_suffix . '.map'); $less_parser_options['sourceMapURL'] = JUri::base(false) . 'templates/' . JMF_TPL . '/css/' . $filename . $css_suffix . '.map'; } $less_parser = new Less_Parser($less_parser_options); // Less_Parser - LESS file $less_parser->parseFile($lessPath, JMF_TPL_URL . '/css'); // Additional LESS variables if ($useVars) { $variables = $this->params->get('jm_bootstrap_variables', array()); if (!empty($variables)) { // Less_Parser $less_parser->ModifyVars($variables); } } // Compilation - Less_Parser if ($css_content = $less_parser->getCss()) { if (JFile::write($cssPath, $css_content) == false) { throw new Exception('Cannot save CSS file. Please check your directory permissions.'); } } } } catch (exception $e) { throw new Exception(JText::sprintf('PLG_SYSTEM_JMFRAMEWORK_LESS_ERROR', $e->getMessage())); } // Returning CSS file's URL return JMF_TPL_URL . '/css/' . $filename . $css_suffix . '.css'; }
<?php session_start(); ?> <!DOCTYPE html> <html> <head> <title>inlogregistratie - tutorialsite</title> <?php require_once "./lessphp/lessc.inc.php"; $less = new lessc(); $less->checkedCompile("./css/style.less", "./css/style.css"); ?> <link rel="stylesheet/less" type="text/css" href="css/less-style.less"> <link rel="stylesheet/less" type="text/css" href="css/php-style.php"> <link rel="stylesheet/less" type="text/css" href="css/style.less"> <link rel="stylesheet" type="text/css" href="./jquery/jquery-ui-1.11.4.custom/jquery-ui.css"> <link rel="stylesheet" media="(max-width:800px; )" type="text/css" href="css/style-mobile.css"> <!-- <link rel="stylesheet/less" type="text/css" href="css/less-style.less"> --> <script src="./less.js-2.5.3/dist/less.js"></script> <script src="./jquery/jquery-2.1.4.js"></script>
$doc = JFactory::getDocument(); $user = JFactory::getUser(); $this->language = $doc->language; $this->direction = $doc->direction; $sitename = $app->get('sitename'); $tmpl = $this->baseurl . '/templates/' . $this->template; // STOP INCLUDING GARBAGE IN MY TEMPLATE !!!! foreach ($doc->_scripts as $script => $value) { if (preg_match('/media\\/jui/i', $script)) { unset($doc->_scripts[$script]); } } // Add Stylesheets require "php/lessc.inc.php"; $less = new lessc(); $less->checkedCompile(dirname(__FILE__) . "/less/site.less", dirname(__FILE__) . "/css/site.css"); $doc->addStyleSheet($this->baseurl . '/templates/' . $this->template . '/css/site.css'); ?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?> " lang="<?php echo $this->language; ?> " dir="<?php echo $this->direction; ?>
* Remove JS Conflicts * ================================================== */ //UNSET newJCAPTION if ($this->params->get('removecaptionjs', 0) == 1) { if (isset($this->_script['text/javascript'])) { $codejcaption = "jQuery(window).on('load', function() {\r\t\t\t\t\tnew JCaption('img.caption');\r\t\t\t\t});"; // This @ is in order to hide the warning, working in a better solution @($this->_script['text/javascript'] = preg_replace($codejcaption, '', $this->_script['text/javascript'])); if (empty($this->_script['text/javascript'])) { unset($this->_script['text/javascript']); } } } //UNSET SqueezeBox.initialize if ($this->params->get('removesqueezeboxjs', 0) == 1) { if (isset($this->_script['text/javascript'])) { $codejcaption = "jQuery(function(\$) {\r\t\t\tSqueezeBox.initialize({});\r\t\t\tSqueezeBox.assign(\$('a.modal').get(), {\r\t\t\t\tparse: 'rel'\r\t\t\t});\r\t\t})\r\t\t"; // This @ is in order to hide the warning, working in a better solution @($this->_script['text/javascript'] = preg_replace($codejcaption, '', $this->_script['text/javascript'])); if (empty($this->_script['text/javascript'])) { unset($this->_script['text/javascript']); } } } if ($less == 1) { $less = new lessc(); $less->checkedCompile($_SERVER['DOCUMENT_ROOT'] . $tpath . "/css/custom.less", $_SERVER['DOCUMENT_ROOT'] . $tpath . "/css/custom.css"); } // force latest IE & chrome frame $doc->setMetadata('x-ua-compatible', 'IE=edge,chrome=1');
/** * Less CSS * * @param mixed $mixed CSS string to process with Less compiler or an array with CSS file's Path and URL. * @return mixed string or an array with CSS file's Path and URL. */ function _lessCss($mixed) { require_once BX_DIRECTORY_PATH_PLUGINS . 'lessphp/lessc.inc.php'; $oLess = new lessc(); $oLess->setVariables($this->_oConfigTemplate->aLessConfig); if (is_array($mixed) && isset($mixed['url']) && isset($mixed['path'])) { $sPathFile = realpath($mixed['path']); $aInfoFile = pathinfo($sPathFile); if (!isset($aInfoFile['extension']) || $aInfoFile['extension'] != 'less') { return $mixed; } $sPathRoot = realpath(BX_DIRECTORY_PATH_ROOT); $sFile = $this->_sLessCachePrefix . trim(str_replace(array('.' . $aInfoFile['extension'], DIRECTORY_SEPARATOR), array('', '_'), bx_ltrim_str($sPathFile, $sPathRoot)), '_') . '.css'; $oLess->checkedCompile($mixed['path'], $this->_sCachePublicFolderPath . $sFile); return array('url' => $this->_sCachePublicFolderUrl . $sFile, 'path' => $this->_sCachePublicFolderPath . $sFile); } return $oLess->compile($mixed); }
<?php // get config file $config = parse_ini_file('conf/config.ini', TRUE); // check for ssl if ($_SERVER['HTTPS'] != "on" && $config['ssl'] == 1) { $redirect = "https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; header("HTTP/1.1 301 Moved Permanently"); header("Location: {$redirect}"); } // build css if there is a newer less version require "classes/less/lessc.inc.php"; $less = new lessc(); $less->setFormatter("compressed"); try { $less->checkedCompile("css/less/wuza.less", "css/wuza.css"); } catch (exception $e) { echo '<div class="text-danger bg-danger small-padding">fatal error: ' . $e->getMessage() . '</div>'; } // allow GZIP Compression ob_start("ob_gzhandler"); session_start(); // incude classes include 'classes/controller.php'; include 'classes/model.php'; include 'classes/view.php'; include 'classes/uri.php'; // $_SESSION, $_GET and $_POST - no $_COOKIE but config values $request = array_merge($_SESSION, $_GET, $_POST, $config); // add values from fancy url $url = new URI("wuza");
private function compileLess() { $less = new \lessc(); try { $less->checkedCompile(__DIR__ . "/../resources/less/main.less", __DIR__ . "/../resources/css/main.css"); } catch (\Exception $e) { $this->render->error(500, $e->getMessage()); } }
$compress = c::get('less.compress', true); $kirby = kirby(); $kirby->options['less.handler'] = function ($url, $media = false) use($kirby, $compress) { if (is_array($url)) { $less = array(); foreach ($url as $u) { $less[] = call($kirby->options['less.handler'], $u); } return implode(PHP_EOL, $less) . PHP_EOL; } // Update folder and file extension $compiledUrl = str_replace('/less/', '/css/', $url); $compiledUrl = str_replace('.less', '.css', $compiledUrl); $root = $kirby->roots()->index() . DS; // Will throw error if $file does not exist $less = new lessc(); $less->setFormatter($compress ? 'compressed' : ''); $less->checkedCompile($root . $url, $root . $compiledUrl); return call(kirby()->option('css.handler') ?: 'css', array($compiledUrl, $media)); }; /** * Compile less to css and then call css.handler * * @param string $url * @param string $media * @return string */ function less() { return call(kirby::instance()->option('less.handler'), func_get_args()); }
/** * Compile a less file * * @param \Zend_View $view * @param string $href The less file * @param boolean $always Always compile * @return boolean True when changed */ public function compile(\Zend_View $view, $href, $always = false) { if (\MUtil_String::startsWith($href, 'http', true)) { // When a local url, strip the serverUrl and basepath $base = $view->serverUrl() . $view->baseUrl(); if (\MUtil_String::startsWith($href, $base, true)) { // Only strip when urls match $href = substr($href, strlen($base)); } } // Add full path to the webdir $inFile = $this->_webroot . '/' . $href; $outFile = substr($inFile, 0, -strlen(pathinfo($inFile, PATHINFO_EXTENSION))) . 'css'; // Try compiling try { // \MUtil_Echo::track($inFile, $outFile); $lessc = new lessc(); $lessc->registerFunction('base64encode', array($this, 'base64encode')); if ($always || array_key_exists('compilecss', \Zend_Controller_Front::getInstance()->getRequest()->getParams())) { $result = (bool) $lessc->compileFile($inFile, $outFile); } else { $result = $lessc->checkedCompile($inFile, $outFile); } } catch (\Exception $exc) { // If we have an error, present it if not in production if (APPLICATION_ENV !== 'production' || APPLICATION_ENV !== 'acceptance') { \MUtil_Echo::pre($exc->getMessage()); } $result = null; } return $result; }
/** * Updates and compiles Twitter Bootstrap with Font Awesome. * * This will update to the latest and rebuild the less files. * By default Font Awesome fonts will be used instead of Twitter Bootstrap's * default glyphs. You can pass the first argument false if you do not want this. * * This will also update the Twitter Bootstrap based editor, bootstrap-wysihtml5. * * @param $fontAwesome Flag false if you do NOT want to use Font Awesome instead of Twitter Bootstrap glyphs * @return [type] [description] */ public function updateBootstrap($fontAwesome = true) { $appRoot = $this->_appConfig['path']; $libDir = $appRoot . '/libraries/li3b_core'; echo "Updating all things Twitter Bootstrap...\n"; system("(cd {$libDir} && {$this->_gitCommand} submodule update --recursive) 2>&1"); $twitterBootstrapDir = $libDir . '/webroot/bootstrap'; $twitterBootstrapLess = $twitterBootstrapDir . '/less/bootstrap.less'; $twitterBootstrapResponsiveLess = $twitterBootstrapDir . '/less/responsive.less'; $cssOutputDir = $libDir . '/webroot/css'; $fontOutputDir = $libDir . '/webroot/font'; $twitterBootstrapFontAwesomeLess = $twitterBootstrapDir . '/less/bootstrap-with-font-awesome.less'; $twitterBootstrapFontAwesomeLessTmp = $twitterBootstrapDir . '/less/bootstrap-with-font-awesome.less.tmp'; $fontAwesomeDir = $libDir . '/webroot/font-awesome'; $fontAwesomeLess = $fontAwesomeDir . '/less/font-awesome.less'; // If using Font Awesome icons (default behavior). if ($fontAwesome) { copy($twitterBootstrapLess, $twitterBootstrapFontAwesomeLess); $reading = fopen($twitterBootstrapFontAwesomeLess, 'r'); $writing = fopen($twitterBootstrapFontAwesomeLessTmp, 'w'); $replaced = false; while (!feof($reading)) { $line = fgets($reading); if (stristr($line, '@import "sprites.less";')) { $line = '@import "font-awesome.less";' . "\n"; $replaced = true; } fputs($writing, $line); } fclose($reading); fclose($writing); // might as well not overwrite the file if we didn't replace anything if ($replaced) { rename($twitterBootstrapFontAwesomeLessTmp, $twitterBootstrapFontAwesomeLess); } else { unlink($twitterBootstrapFontAwesomeLessTmp); } // Copy over the font files. copy($fontAwesomeDir . '/font/fontawesome-webfont.eot', $fontOutputDir . '/fontawesome-webfont.eot'); copy($fontAwesomeDir . '/font/fontawesome-webfont.ttf', $fontOutputDir . '/fontawesome-webfont.ttf'); copy($fontAwesomeDir . '/font/fontawesome-webfont.woff', $fontOutputDir . '/fontawesome-webfont.woff'); copy($fontAwesomeDir . '/font/FontAwesome.otf', $fontOutputDir . '/FontAwesome.otf'); } // Sure, this could be another library, but I want it bundled with li3b_core. // Since when did PHP become a dependency nightmare?? // TODO: Think about using and requiring Composer for everything... require $libDir . '/util/lessphp/lessc.inc.php'; $less = new \lessc(); $less->setFormatter("compressed"); $less->setImportDir(array($fontAwesomeDir . '/less', $twitterBootstrapDir . '/less')); if (file_exists($twitterBootstrapLess)) { try { if ($fontAwesome) { $less->checkedCompile($twitterBootstrapFontAwesomeLess, $cssOutputDir . '/bootstrap.min.css'); // Tidy up and remove the new Twitter Bootstrap with Font Awesome LESS file. unlink($twitterBootstrapFontAwesomeLess); echo 'Compiled Twitter Bootstrap LESS with Font Awesome.'; echo $this->nl(); } else { $less->checkedCompile($twitterBootstrapLess, $cssOutputDir . '/bootstrap.min.css'); echo 'Compiled Twitter Bootstrap LESS.'; echo $this->nl(); } } catch (exception $e) { echo 'Fatal error compiling Twitter Bootstrap LESS file: ' . $e->getMessage(); } // Compile the Twitter Bootstrap responsive LESS file. try { $less->checkedCompile($twitterBootstrapResponsiveLess, $cssOutputDir . '/bootstrap-responsive.min.css'); } catch (exception $e) { echo 'Fatal error compiling Twitter Bootstrap LESS file: ' . $e->getMessage(); } } }
bloginfo('name'); // Add the blog description for the home/front page. $site_description = get_bloginfo('description', 'display'); if ($site_description && (is_home() || is_front_page())) { echo " | {$site_description}"; } // Add a page number if necessary: if ($paged >= 2 || $page >= 2) { echo ' | ' . sprintf(__('Seite %s', 'SPD2012'), max($paged, $page)); } ?> </title> <?php require get_template_directory() . "/lib/lessphp/lessc.inc.php"; $less = new lessc(); $less->checkedCompile(get_template_directory() . "/css/style.less", get_template_directory() . "/css/style.css"); ?> <link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?> /css/style.css"> <link rel="stylesheet" href="<?php echo get_stylesheet_directory_uri(); ?> /style.css"> <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements --> <!--[if lt IE 9]> <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <!-- Le fav and touch icons --> <?php
<?php /* SESSION */ session_start(); $PHPSESSID = session_id(); header('Content-Type: text/html; charset=UTF-8'); function utilisateur_est_connecte() { return !empty($_SESSION['id']); } /* PHP CONFIG */ ini_set('display_errors', 1); error_reporting(0); error_reporting(E_ERROR | E_WARNING | E_PARSE); error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); error_reporting(E_ALL ^ E_NOTICE); error_reporting(E_ALL); error_reporting(-1); ini_set('error_reporting', E_ALL); /* LESS */ // prepare less variables $fp = fopen(INCLUDE_LESS, 'w'); fwrite($fp, $GLOBALS['less_vars'], strlen($GLOBALS['less_vars'])); fclose($fp); // initialise less require LESS_INC; $less = new lessc(); // compile less file only if is updated $less->checkedCompile(LESS_INPUT, LESS_OUTPUT);
<?php require_once DIR_Z . '/lessc.php'; $file = preg_replace('/[^\\w\\/]/', '-', $_GET['file']); //secure? $in = DIR_WEB . '/' . $file . '.less'; $out = DIR_WEB . '/' . $file . '.css'; header("Content-type: text/css"); try { if (!is_file($in)) { exit("/*File `{$file}.less` does not exists*/"); } $less = new lessc(); if (DEBUG) { $less->compileFile($in, $out); } else { $less->checkedCompile($in, $out); } echo file_get_contents($out); } catch (Exception $ex) { exit("/*lessc fatal error:\n{$ex->getMessage()}*/"); }
define('LESS_DIR', realpath(__DIR__ . '/public/less') . DIRECTORY_SEPARATOR); //Set current language if (!isset($_SESSION[Config::$lang_session])) { $_SESSION[Config::$lang_session] = Config::getConfig(Config::$lang); } //Running the router $router = new \lib\Router(); //Compiling dynamic stylesheet if (Config::getPlugins('css') == 'lessCSS') { $lessFile = glob('public/less/*.less'); if (sizeof($lessFile) > 0) { $less = new lessc(); foreach ($lessFile as $value) { $filenames = explode('/', $value); $filename = $filenames[2]; $less->checkedCompile($value, strstr($value, '/', true) . '/css/' . substr($filename, 0, strpos($filename, '.')) . '.css'); } } } //Call caches header if (Config::getConfig(Config::$cache) == 'true') { $router->headerCache(); } AR_Config::initialize(function ($cfg) { $cfg->set_model_directory('app/models'); $cfg->set_connections(Config::getDatabases()); $cfg->set_default_connection(Config::getConfig(Config::$default_connection)); }); //Call controller $router->route(); //Call caches footer
}); birch_defn($ns, 'compile_less_dir', function ($dir) use($ns) { global $birchpress; $less = new lessc(); if (is_dir($dir)) { $files = scandir($dir); if ($files) { foreach ($files as $file) { if ($file != '.' && $file != '..') { if (is_dir($dir . '/' . $file)) { $ns->compile_less_dir($dir . '/' . $file); } else { if ($birchpress->util->ends_with($file, '.less')) { $input_less = $dir . "/{$file}"; $output_less = substr($input_less, 0, strlen($input_less) - 4) . 'css'; $less->checkedCompile($input_less, $output_less); } } } } } } }); birch_defn($ns, 'load_core', function () use($ns) { global $birchpress; $core_dir = $ns->plugin_dir_path() . 'includes'; $packages = array('model', 'view', 'upgrader'); foreach ($packages as $package) { $birchpress->load_package($core_dir . '/' . $package); } });
function compile_redux_dependencies() { //this is only in developing $complie_every_load = WP_DEBUG ? true : false; $minify = WP_DEBUG ? false : true; $widgets = apply_filters('redux-widgets-options', array()); $_js = array(); $_js_frontend = array(); $_less = array(); global $wp_filesystem; // Initialize the Wordpress filesystem, no more using file_put_contents function if (empty($wp_filesystem)) { require_once ABSPATH . '/wp-admin/includes/file.php'; WP_Filesystem(); } //we need to include color and spaces fields for sections $widgets[] = array('fields' => array(array('type' => 'color'), array('type' => 'spacing'))); foreach ($widgets as $sections) { foreach ($sections['fields'] as $field) { if (file_exists(ReduxPageBuilder::$_dir . '/inc/fields/' . $field['type'] . '/field_' . $field['type'] . '.js')) { $_js[$field['type']] = ReduxPageBuilder::$_dir . '/inc/fields/' . $field['type'] . '/field_' . $field['type'] . '.js'; } elseif (file_exists(ReduxFramework::$_dir . 'inc/fields/' . $field['type'] . '/field_' . $field['type'] . '.js')) { $_js[$field['type']] = ReduxFramework::$_dir . 'inc/fields/' . $field['type'] . '/field_' . $field['type'] . '.js'; } if (file_exists(ReduxPageBuilder::$_dir . '/inc/fields/' . $field['type'] . '/field_' . $field['type'] . '.less')) { $_less[$field['type']] = ReduxPageBuilder::$_dir . '/inc/fields/' . $field['type'] . '/field_' . $field['type'] . '.less'; } elseif (file_exists(ReduxFramework::$_dir . 'inc/fields/' . $field['type'] . '/field_' . $field['type'] . '.less')) { $_less[$field['type']] = ReduxFramework::$_dir . 'inc/fields/' . $field['type'] . '/field_' . $field['type'] . '.less'; } } } //JS if (!get_option('cached_redux_js')) { update_option('cached_redux_js', serialize($_js)); } if (get_option('cached_redux_js') != serialize($_js) || $complie_every_load) { //we recomplie here $_js['numeric'] = ReduxPageBuilder::$_dir . 'assets/js/jquery.numeric.min.js'; $_js['select2'] = ReduxPageBuilder::$_dir . 'assets/js/select2.min.js'; $_js['redux'] = ReduxPageBuilder::$_dir . 'assets/js/redux.js'; require_once 'minify/jsmin-1.1.1.php'; $js = ''; foreach ($_js as $file) { $js .= $minify ? JSMin::minify(file_get_contents($file)) : file_get_contents($file); } $js = str_replace('#redux-main', '#dialog', $js); file_put_contents(ReduxPageBuilder::$_dir . "assets/js/builder.min.js", $js); } //JS frontend if (!get_option('cached_redux_js_frontend')) { update_option('cached_redux_js_frontend', serialize($_js_frontend)); } if (get_option('cached_redux_js_frontend') != serialize($_js_frontend) || $complie_every_load) { $include_bs = apply_filters('builder-include-bs', true); if ($include_bs) { $_js_frontend['bootstrap'] = ReduxPageBuilder::$_dir . 'assets/js/bootstrap.min.js'; } //we recomplie here $_js_frontend['fancybox'] = ReduxPageBuilder::$_dir . 'assets/js/jquery.fancybox-1.3.4.js'; $_js_frontend['mousewheel'] = ReduxPageBuilder::$_dir . 'assets/js/jquery.mousewheel-3.0.4.pack.js'; $_js_frontend['mixitup'] = ReduxPageBuilder::$_dir . 'assets/js/jquery.mixitup.js'; $_js_frontend['frontend'] = ReduxPageBuilder::$_dir . 'assets/js/builder-frontend.js'; require_once 'minify/jsmin-1.1.1.php'; $js = ''; foreach ($_js_frontend as $file) { $js .= $minify ? JSMin::minify(file_get_contents($file)) : file_get_contents($file); } file_put_contents(ReduxPageBuilder::$_dir . "assets/js/builder-frontend.min.js", $js); } //LESS if (!get_option('cached_redux_less')) { update_option('cached_redux_less', serialize($_less)); } if (get_option('cached_redux_less') != serialize($_less) || $complie_every_load) { $_less['general'] = ReduxPageBuilder::$_dir . 'assets/less/style.less'; $_less['select2'] = ReduxPageBuilder::$_dir . 'assets/less/select2.less'; $_less['BS-ui'] = ReduxPageBuilder::$_dir . 'assets/less/jquery-ui-1.10.0.custom.less'; //we recomplie here if (!class_exists('lessc')) { require_once ReduxPageBuilder::$_dir . '/inc/lessc.inc.php'; } $less = new lessc(); if ($minify) { $less->setFormatter("compressed"); } $css = ''; foreach ($_less as $file) { $css .= $less->compile(file_get_contents($file)); } $css = str_replace('#redux-main', '#dialog', $css); file_put_contents(ReduxPageBuilder::$_dir . "assets/css/builder.min.css", $css); } if ($complie_every_load) { if (!class_exists('lessc')) { require_once FRAMEWORK_DIR . '/lessc.inc.php'; } $less = new lessc(); //$less->setFormatter("compressed"); $less->setImportDir(array(ReduxPageBuilder::$_dir . "assets/less/")); if (function_exists('cadr_variables_less')) { $_less = cadr_variables_less(); $_less .= file_get_contents(ReduxPageBuilder::$_dir . "assets/less/frontend-builder.less"); $_less .= get_builder_css(); $content = $less->compile($_less); $file = ReduxPageBuilder::$_dir . "assets/css/frontend-builder.css"; if (is_writeable($file) || !file_exists($file) && is_writeable(dirname($file))) { $wp_filesystem->put_contents($file, $content, FS_CHMOD_FILE); } } $less->checkedCompile(ReduxPageBuilder::$_dir . "assets/less/frontend-builder.less", ReduxPageBuilder::$_dir . "assets/css/frontend-builder.css"); } }
public function compileLess($file) { $target = "{$this->getManagedPath()}css/{$file}.css"; $source = "{$this->getAssetPath()}less/{$file}"; if ($this->shouldBeCompiled($source, $target)) { $this->ensureFileExists($target); $less = new \lessc(); $less->checkedCompile($source, $target); } }
<?php include "../config/config.php"; require "lessc.inc.php"; $less = new lessc(); $LESS = array("style"); //Run a loop to make directory $success = ''; foreach ($LESS as $l) { try { $less->checkedCompile(LESS_INPUT . $l . ".less", LESS_OUTPUT . $l . ".css"); $success .= "<span style='color:green; font-weight:bold;'>" . $l . ".css</span>" . " hase been created Successfully.<br/>"; } catch (Exception $e) { $success = ''; echo $e; } } echo $success;
<?php require 'lessc.inc.php'; $less = new lessc(); try { $less->checkedCompile('css/style.less', 'css/style.css'); } catch (exception $e) { echo "fatal error: " . $e->getMessage(); } ?> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script> <script src="js/jquery.timelinr-0.9.5.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function(){ $(this).timelinr(function(){ orientation: 'vertical' }); }); </script> </head> <body> <div id="timeline"> <ul id="dates">
<?php // compile less - comment the following three lines out, // if your development is done or you don not what to user less require "lessc.inc.php"; $less = new lessc(); $less->checkedCompile("template.less", "template.css"); // initialize ob_gzhandler to send and compress data ob_start("ob_gzhandler"); // initialize compress function for whitespace removal ob_start("compress"); // required header info and character set header("Content-type:text/css; charset=UTF-8"); // cache control to process header("Cache-Control:must-revalidate"); // duration of cached content (1 hour) $offset = 60 * 60; // expiration header format $ExpStr = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT"; // send cache expiration header to broswer header($ExpStr); // begin function compress function compress($buffer) { // remove comments $buffer = preg_replace('!/\\*[^*]*\\*+([^/][^*]*\\*+)*/!', '', $buffer); // remove tabs, spaces, new lines, etc. $buffer = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $buffer); // remove unnecessary spaces $buffer = str_replace('{ ', '{', $buffer); $buffer = str_replace(' }', '}', $buffer);
$scss = new scssc(); // Set the import path and formatting type $scss->setImportPaths(dirname($file) . "/"); $scss->setFormatter('scss_formatter_compressed'); // scss_formatter, scss_formatter_nested, scss_formatter_compressed try { $scssContent = $scss->compile('@import "' . $fileName . '"'); $fh = fopen(substr($file, 0, -4) . "css", 'w'); fwrite($fh, $scssContent); fclose($fh); } catch (Exception $e) { echo ";top.ICEcoder.message('Couldn\\'t compile your Sass, error info below:\\n\\n" . $e->getMessage() . "');"; } } // LESS Compiling if we have LESSPHP plugin installed if (strtolower($fileExt) == "less" && file_exists(dirname(__FILE__) . "/../plugins/lessphp/lessc.inc.php")) { // Load the LESSPHP lib and start a new instance require dirname(__FILE__) . "/../plugins/lessphp/lessc.inc.php"; $less = new lessc(); // Set the formatting type and if we want to preserve comments $less->setFormatter('lessjs'); // lessjs (same style used in LESS for JS), compressed (no whitespace) or classic (LESSPHP's original formatting) $less->setPreserveComments(false); // true or false try { $less->checkedCompile($file, substr($file, 0, -4) . "css"); // Note: Only recompiles if changed } catch (Exception $e) { echo ";top.ICEcoder.message('Couldn\\'t compile your LESS, error info below:\\n\\n" . $e->getMessage() . "');"; } }
<?php $js = 'library/javascript'; $styles = 'library/styles'; $images = 'library/images'; $zTabs = 'library/javascript/zTabs'; require 'library/includes/lessc.inc.php'; $less = new lessc(); // Setting higher level variables $less->setVariables(array('one-em' => '16px', 'light-blue' => '#d7eef4', 'full-width' => '90%')); try { $less->checkedCompile($styles . '/full_screen.less', $styles . '/full_screen.css'); } catch (Exception $e) { echo $e; } try { $result = $less->checkedCompile($zTabs . '/' . $styles . '/zTabs.less', $zTabs . '/' . $styles . '/zTabs.css'); } catch (Exception $e) { echo $e; } ?> <!DOCTYPE html> <html> <head> <title>Kate Green</title> <link href='http://fonts.googleapis.com/css?family=Simonetta:400,900,400italic,900italic' rel='stylesheet' /> <link rel="stylesheet" href="<?php echo $styles; ?> /reset.css" /> <link rel="stylesheet" href="<?php
function less($filename, $order = FALSE) { // Block remote LESS files if (substr($filename, 0, 7) === 'http://' or substr($filename, 0, 8) === 'https://') { return false; } //Check if it's a LESS file if (substr($filename, -5) !== '.less') { return false; } // Make sure $filename path starts with a / if (substr($filename, 0, 1) !== '/') { $filename = '/' . $filename; } $lib = $_SERVER['DOCUMENT_ROOT'] . '/libs/php/lessc.inc.php'; require_once $lib; $css_filename = substr('/themes/cache' . $filename, 0, -4) . 'css'; $less = $_SERVER['DOCUMENT_ROOT'] . $filename; $css = $_SERVER['DOCUMENT_ROOT'] . $css_filename; // Create the folder structure before attempting to call the less compressor for storing the file $css_parts = explode('/', $css); array_pop($css_parts); $css_path = implode('/', $css_parts); @mkdir($css_path, 0777, true); // Compile the $less file onto $css $lessc = new lessc(); $lessc->checkedCompile($less, $css); if (!$order) { $this->css_files['normal'][] = $css_filename; } elseif ($order === 'first' or $order === 'last') { $this->css_files[$order][] = $css_filename; } else { log_message('debug', 'Invalid loading order set for file ' . $filename); } /* Original lesscss.org code, left here for any possible future debugging try { lessc::ccompile($less, $css); } catch (exception $ex) { exit('lessc fatal error:<br />'.$ex->getMessage()); } */ }