Skip to content

Commit a9b6360

Browse files
committed
v.2.1.0
Добавил запись статистики и копирайтов в начало css файла
1 parent 9a38b08 commit a9b6360

File tree

1 file changed

+28
-8
lines changed

1 file changed

+28
-8
lines changed

YOUR_TEMPLATE/less/less.php

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@
1212
* - Сжатие выходного css-файла (с возможностью отключать сжатие).
1313
* - Вывод ошибок компиляции (особо не проверял какие ошибки выводятся, но если будет явный косяк - класс скажет в какой строке искать и не станет делать компиляцию, но может и не точно сказать т.к. защиты от кривых рук там нет).
1414
* - Ведение наглядного лога
15+
* - Автоматическое добавление блока с информацией о компиляции файла и копирайтами (текст копирайта берётся из настроек ниже).
1516
* ===============================================================
1617
* Файл: less.php
1718
* ---------------------------------------------------------------
18-
* Версия: 2.0.1 (21.06.2013)
19+
* Версия: 2.1.0 (18.07.2013)
1920
* ===============================================================
2021
*
2122
* Использование:
@@ -40,11 +41,13 @@
4041
$lessLogFile = 'less-log'; // Имя лог-файла. Файл является html-страницей и записывается в корень сайта.
4142

4243
// Определяем входящий и выходящий файлы и определяем сжимать или нет выходящий файл.
43-
$inputFile = $_SERVER['DOCUMENT_ROOT'].SITE_TEMPLATE_PATH."/template_styles.less"; // Файл template_styles.less, лежащий в текущем шаблоне сайта
44+
$inputFile = $_SERVER['DOCUMENT_ROOT'].SITE_TEMPLATE_PATH."/special.less"; // Файл template_styles.less, лежащий в текущем шаблоне сайта
4445
$outputFile = str_ireplace('.less', '.css', $inputFile); // Файл template_styles.css - который подключается к шаблону
4546
$normal = true; // true для отключения сжатия выходящего файла.
4647
$alertError = true; // false для показа ошибок компиляции вверху страницы (по умолчанию показываются js-алертом);
4748

49+
$copyText = '@author: Павел Белоусов (www.info-expert.ru)'; // Текст, который будет записан в начало файла CSS вместе со статистикой
50+
4851

4952
/**
5053
* Конец настроек
@@ -58,11 +61,11 @@
5861

5962
// Выполняем функцию компиляции
6063
try {
61-
autoCompileLess($inputFile, $outputFile, $normal);
64+
autoCompileLess($inputFile, $outputFile, $normal, $copyText);
6265
} catch (exception $e) {
6366
// Если что-то пошло не так - скажем об этом пользователю способом, указанным в настройках и запишем в лог.
6467
$logError = str_replace($_SERVER['DOCUMENT_ROOT'], '', $e->getMessage());
65-
$showError = ($alertError) ? '<script>alert("Less error: '.$logError.'")</script>' : '<div style="text-align: center; background: #fff; color: red; padding: 5px;">Less error: '.$logError.'</div>';
68+
$showError = ($alertError) ? '<script>alert("Less error: '.str_replace('"', ' ', $logError).'")</script>' : '<div style="text-align: center; background: #fff; color: red; padding: 5px;">Less error: '.$logError.'</div>';
6669

6770
echo $showError;
6871

@@ -177,8 +180,8 @@
177180
* @param string $nocompress - отключает сжатие выходного файла
178181
* @return file
179182
*/
180-
function autoCompileLess($inpFile, $outFile, $nocompress = false) {
181-
183+
function autoCompileLess($inpFile, $outFile, $nocompress = false, $copy) {
184+
182185
$cacheFile = $inpFile.".cache";
183186

184187
if (file_exists($cacheFile)) {
@@ -199,12 +202,29 @@ function autoCompileLess($inpFile, $outFile, $nocompress = false) {
199202
// Иначе сжимаем всё в одну строку.
200203
$less->setFormatter('compressed');
201204
}
202-
205+
// Массив с данными разультата компиляции
203206
$newCache = $less->cachedCompile($cache);
204207

208+
// Выдёргиваем имена импортируемых файлов
209+
$sourceFiles = array();
210+
foreach ($cache["files"] as $key => $source) {
211+
$sourceFiles[] = basename($key);
212+
}
213+
214+
// Добавляем копирайты и информацию по файлам в начало.
215+
$copy = '
216+
/* ==========================================================================
217+
@outputFile: '.basename($outFile).'
218+
@inputFiles: '.implode(', ',$sourceFiles).'
219+
@date: '.date('Y-m-d H:i:s').'
220+
'.$copy.' */
221+
/* ========================================================================== */
222+
223+
';
224+
205225
if (!is_array($cache) || $newCache["updated"] > $cache["updated"]) {
206226
file_put_contents($cacheFile, serialize($newCache));
207-
file_put_contents($outFile, $newCache['compiled']);
227+
file_put_contents($outFile, $copy.$newCache['compiled']);
208228
}
209229
}
210230

0 commit comments

Comments
 (0)