<?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
Example #2
0
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;
}