<?php if (!defined('BASEPATH')) { exit('No direct script access allowed'); } /** * MaxSite CMS * (c) http://max-3000.com/ * * Компиляция less в css При влючении этого файла проверьте разрешения на запись файла var_style.css */ // укажем less-файл - полный путь $less_file = getinfo('template_dir') . 'css-less/var_style.less'; // выходной файл - путь относительно каталога шаблона $css_file = 'css/var_style.css'; // если нет var_style.less, то отдаем var_style.css if (!file_exists($less_file)) { mso_add_file($css_file); } else { echo mso_lessc($less_file, getinfo('template_dir') . $css_file, getinfo('template_url') . $css_file, false, false, true); } # end file
function less_compiling_init($args = array()) { $options = mso_get_option('plugin_less_compiling', 'plugins', array()); if (!isset($options['enabled'])) { return $args; } // нет опций if (!$options['enabled']) { return $args; } // выключено // Выполнять компиляцию только для админов и авторов if (!isset($options['only_users_enabled'])) { $options['only_users_enabled'] = true; } if ($options['only_users_enabled'] and !is_login()) { return $args; } // Выполнять компиляцию при работе в админ-панели if (!isset($options['admin_enabled'])) { $options['admin_enabled'] = false; } if (!isset($options['syslessc'])) { $options['syslessc'] = false; } if (!isset($options['syslessc_path'])) { $options['syslessc_path'] = 'c:\\Users\\admin\\AppData\\Roaming\\npm\\lessc.cmd'; } // не компилировать в админке if (!$options['admin_enabled'] and mso_segment(1) == 'admin') { return $args; } if (!$options['files']) { return $args; } // не заданы файлы $files = explode("\n", $options['files']); // разобъем по строкам if (!$files) { return $args; } // пустой массив foreach ($files as $file) { $row = explode('|', $file); // + | файл.less | файл.css | nomini nocache $row = array_map('trim', $row); // должно быть как минимум 3 непустых элемента if (isset($row[0]) and isset($row[1]) and isset($row[2]) and $row[0] and $row[1] and $row[2]) { if ($row[0] == '-') { continue; } // должен быть + или * if (strpos($row[0], '*') === 0) { // если текущий шаблон не равен указанному, то выходим if (getinfo('template') != substr($row[0], 1)) { //pr(1); continue; } } $less_file = getinfo('base_dir') . $row[1]; $css_file = getinfo('base_dir') . $row[2]; // проверим наличие файла if (file_exists($less_file)) { // возможно есть опции if (isset($row[3]) and $row[3]) { $opt = explode(' ', $row[3]); $opt = array_map('trim', $opt); } else { $opt = array(); } $use_cache = !in_array('nocache', $opt); // если есть nocache, то не кэшируем $use_mini = in_array('mini', $opt); // компиляция через системный lessc if ($options['syslessc']) { mso_syslessc($less_file, $css_file, 'qwerty', $use_cache, $use_mini, $use_mini, $options['syslessc_path']); } else { // компиляция через lessphp // $use_cache = false, $use_mini = true, $use_mini_n = false mso_lessc($less_file, $css_file, 'qwerty', $use_cache, $use_mini, $use_mini); } } } } return $args; }