Browse Source

Last fixes

master
M@d D3n 7 years ago
parent
commit
3323b45943
  1. 15
      .htaccess
  2. 2
      admin/lang/bg/blocks.txt
  3. 17
      admin/lang/bg/docs.txt
  4. 25
      admin/lang/bg/request.txt
  5. 11
      admin/lang/bg/sysblocks.txt
  6. 2
      admin/templates/documents/docs_simple.tpl
  7. 8
      admin/templates/documents/form.tpl
  8. 4
      admin/templates/js/filemanager.js
  9. 2
      admin/templates/js/filemanager_template.js
  10. 2
      admin/templates/noperm.tpl
  11. 4
      admin/templates/settings/settings_case.tpl
  12. 2
      class/class.core.php
  13. 827
      class/class.docs.php
  14. 88
      class/class.settings.php
  15. 52
      class/class.thumbnail.php
  16. 4
      fields/image_mega/field.php
  17. 2
      fields/image_multi/field.php
  18. 2
      fields/image_multi_new_3inputs/field.php
  19. 4
      fields/image_single/field.php
  20. 2
      functions/func.block.php
  21. 1825
      functions/func.common.php
  22. 2
      functions/func.parserequest.php
  23. 9
      functions/func.sysblock.php
  24. 147
      functions/func.thumbnails.php
  25. 79
      inc/config.php
  26. 154
      inc/init.php
  27. 85
      inc/sitemap.php
  28. 187
      inc/thumb.php
  29. 58
      index.php
  30. 2
      install/index.php
  31. 1
      lib/redactor/codemirror/codemirror_connect.tpl
  32. 51
      lib/redactor/elfinder/css/elfinder.full.css
  33. 4
      lib/redactor/elfinder/css/elfinder.min.css
  34. 4
      lib/redactor/elfinder/css/theme.css
  35. BIN
      lib/redactor/elfinder/img/edit_aceeditor.png
  36. BIN
      lib/redactor/elfinder/img/edit_ckeditor.png
  37. BIN
      lib/redactor/elfinder/img/edit_codemirror.png
  38. BIN
      lib/redactor/elfinder/img/edit_creativecloud.png
  39. BIN
      lib/redactor/elfinder/img/edit_pixlreditor.png
  40. BIN
      lib/redactor/elfinder/img/edit_pixlrexpress.png
  41. BIN
      lib/redactor/elfinder/img/edit_simplemde.png
  42. BIN
      lib/redactor/elfinder/img/edit_tinymce.png
  43. BIN
      lib/redactor/elfinder/img/titleBg.png
  44. BIN
      lib/redactor/elfinder/img/toolbar.png
  45. BIN
      lib/redactor/elfinder/img/volume_icon_trash.png
  46. 5072
      lib/redactor/elfinder/js/elfinder.full.js
  47. 27
      lib/redactor/elfinder/js/elfinder.min.js
  48. 1027
      lib/redactor/elfinder/js/extras/editors.default.js
  49. 43
      lib/redactor/elfinder/js/i18n/elfinder.LANG.js
  50. 77
      lib/redactor/elfinder/js/i18n/elfinder.cs.js
  51. 831
      lib/redactor/elfinder/js/i18n/elfinder.id.js
  52. 219
      lib/redactor/elfinder/js/i18n/elfinder.jp.js
  53. 111
      lib/redactor/elfinder/js/i18n/elfinder.pl.js
  54. 2
      lib/redactor/elfinder/js/i18n/elfinder.ru.js
  55. 91
      lib/redactor/elfinder/js/i18n/elfinder.sk.js
  56. 10
      lib/redactor/elfinder/js/i18n/help/en.html
  57. 10
      lib/redactor/elfinder/js/i18n/help/jp.html
  58. 10
      lib/redactor/elfinder/js/i18n/help/ru.html
  59. 8
      lib/redactor/elfinder/js/proxy/elFinderSupportVer1.js
  60. 2
      lib/redactor/elfinder/php/.tmp/.htaccess
  61. 0
      lib/redactor/elfinder/php/MySQLStorage.sql
  62. 1
      lib/redactor/elfinder/php/autoload.php
  63. 33
      lib/redactor/elfinder/php/connector.minimal.php-dist
  64. 21
      lib/redactor/elfinder/php/connector.php
  65. 33
      lib/redactor/elfinder/php/connector.php-dist
  66. 20
      lib/redactor/elfinder/php/connector_template.php
  67. 327
      lib/redactor/elfinder/php/elFinder.class.php
  68. 5
      lib/redactor/elfinder/php/elFinderConnector.class.php
  69. 0
      lib/redactor/elfinder/php/elFinderFlysystemGoogleDriveNetmount.php
  70. 0
      lib/redactor/elfinder/php/elFinderPlugin.php
  71. 9
      lib/redactor/elfinder/php/elFinderSession.php
  72. 0
      lib/redactor/elfinder/php/elFinderSessionInterface.php
  73. 17
      lib/redactor/elfinder/php/elFinderVolumeBox.class.php
  74. 531
      lib/redactor/elfinder/php/elFinderVolumeDriver.class.php
  75. 0
      lib/redactor/elfinder/php/elFinderVolumeDropbox.class.php
  76. 49
      lib/redactor/elfinder/php/elFinderVolumeDropbox2.class.php
  77. 87
      lib/redactor/elfinder/php/elFinderVolumeFTP.class.php
  78. 19
      lib/redactor/elfinder/php/elFinderVolumeGoogleDrive.class.php
  79. 2
      lib/redactor/elfinder/php/elFinderVolumeGroup.class.php
  80. 13
      lib/redactor/elfinder/php/elFinderVolumeLocalFileSystem.class.php
  81. 8
      lib/redactor/elfinder/php/elFinderVolumeMySQL.class.php
  82. 15
      lib/redactor/elfinder/php/elFinderVolumeOneDrive.class.php
  83. 50
      lib/redactor/elfinder/php/elFinderVolumeTrash.class.php
  84. 0
      lib/redactor/elfinder/php/libs/GdBmp.php
  85. 0
      lib/redactor/elfinder/php/mime.types
  86. 2
      lib/redactor/elfinder/php/plugins/AutoResize/plugin.php
  87. 2
      lib/redactor/elfinder/php/plugins/AutoRotate/plugin.php
  88. 14
      lib/redactor/elfinder/php/plugins/Normalizer/plugin.php
  89. 9
      lib/redactor/elfinder/php/plugins/Sanitizer/plugin.php
  90. 0
      lib/redactor/elfinder/php/plugins/Watermark/logo.png
  91. 2
      lib/redactor/elfinder/php/plugins/Watermark/plugin.php
  92. 0
      lib/redactor/elfinder/php/resources/video.png
  93. 12
      modules/index.php

15
.htaccess

@ -265,7 +265,6 @@ AddDefaultCharset utf-8
ExpiresByType image/svg+xml "access plus 1 month"
</IfModule>
<FilesMatch "\.(backup|cache|class|fields|functions|inc|modules|lib|session|templates)$">
Order allow,deny
</FilesMatch>
@ -274,6 +273,16 @@ AddDefaultCharset utf-8
SecFilterScanPOST Off
</IfModule>
# ------------------------------------------------------------------------------
# | mod_deflate.c |
# ------------------------------------------------------------------------------
<IfModule mod_deflate.c>
<FilesMatch "\.(css|js|x?html?|php)$">
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>
# ------------------------------------------------------------------------------
# | Rewrite engine |
# ------------------------------------------------------------------------------
@ -320,6 +329,10 @@ AddDefaultCharset utf-8
RewriteRule \.(ico)$ - [NC,L]
# If-Modified-Since
RewriteRule .* - [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}]
RewriteRule .* - [E=HTTP_IF_NONE_MATCH:%{HTTP:If-None-Match}]
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

2
admin/lang/bg/blocks.txt

@ -66,4 +66,4 @@ BLOCK_ALIAS = "Алиас"
BLOCK_I = "Опционално. Алиасът позволява да се използва лесно запомнящсе таг [tag:BLOCK:alias] [tag:BLOCK:id]. Алиасът не може да бъде число, може да съдържа само цифри, латински букви, долна черта, тире и е с дължина не-повече от 20 символа и трябва да бъде уникален в пределите на блоковете."
BLOCK_ACCEPT = "Этот алиас можно использовать"
BLOCK_ER_SYN = "Грешен алиас!<br> Алиасът не трябва да е число, да съдържа само цифри, латински букви, долна черта, тире и е с дължина не-повече от 20 символа"
BLOCK_ER_EXISTS ="Грешен алиас!<br> Този алиас вече е използван в друга контактна форма"
BLOCK_ER_EXISTS ="Грешен алиас!<br> Този алиас вече е използван в друг визуален блок"

17
admin/lang/bg/docs.txt

@ -283,4 +283,19 @@ DOC_SEARCH_FIELD_LIKE = "Съдържа"
DOC_SEARCH_FIELD_EQ = "Равно на"
DOC_SEARCH_FIELD_TEXT = "Стойност"
DOC_TEMPLATE_DEFAULT = "Използвай по подразбиране"
DOC_SHOW_LANG = "Покажи"
DOC_SHOW_LANG = "Покажи"
// 3.2
DOC_TABS_META = "Meta данни"
DOC_TABS_URL = "URL на документа"
DOC_TABS_DATE = "Дата на публикация"
DOC_TABS_OTHER = "Други параметри"
DOC_WITHOUT_TITLE = "Документ без наименование"
DOC_SAVE_ADD = "Добавил"
DOC_SAVE_EDIT = "Редактирал"
DOC_SAVE_LOG_DOC = " документ"
DOC_LANG = "Език"
DOC_LANG_ID = "Език на документа:"
DOC_LANG_SELECT = "Изберете език"

25
admin/lang/bg/request.txt

@ -180,12 +180,21 @@ REQUEST_REPORT_ERR_RUBRIC= "Не е избрана рубрика"
REQUEST_BY_PARENT = "Родителски документ"
REQUEST_SHOW_STAT = "Покажи статистиката"
// v 3.2
NAVI_ALIAS = "Алиас"
NAVI_I = "Опционално. Алиасът позволява да се използва лесно запомнящсе таг [tag:sysblock:alias] вместо [tag:sysblock:id]. Алиасът не може да бъде чосло, може да съдържа само цифри, латински букви, долна черта, тире и е с дължина не-повече от 20 символа и трябва да бъде уникален в пределите на модула."
NAVI_ACCEPT = "Този алиас можр да се използва"
NAVI_ER_SYN = "Грешен алиас!<br> Алиасът не трябва да е число, да съдържа само цифри, латински букви, долна черта, тире и е с дължина не-повече от 20 символа"
NAVI_ER_EXISTS = "Грешен алиас!<br> Този алиас вече е използван в друга контактна форма"
REQUEST_HEADER_EXTERNAL = "Външно обръщание
// v 3.1.9
REQUEST_ALIAS = "Алиас"
REQUEST_I = "Опционално. Алиасът позволява да се използва лесно запомнящсе таг [tag:sysblock:alias] вместо [tag:sysblock:id]. Алиасът не може да бъде чосло, може да съдържа само цифри, латински букви, долна черта, тире и е с дължина не-повече от 20 символа и трябва да бъде уникален в пределите на модула."
REQUEST_ACCEPT = "Този алиас можр да се използва"
REQUEST_ER_SYN = "Грешен алиас!<br> Алиасът не трябва да е число, да съдържа само цифри, латински букви, долна черта, тире и е с дължина не-повече от 20 символа"
REQUEST_ER_EXISTS = "Грешен алиас!<br> Този алиас вече е използван за друга заявка"
REQUEST_HEADER_EXTERNAL = "Външно обръщание"
REQUEST_EXTERNAL = "Разреши външно обръщение"
REQUEST_ONLY_AJAX = "Изпълнение само чрез Ajax"
REQUEST_ONLY_AJAX = "Изпълнение само чрез Ajax"
// v 3.2
REQUEST_PAGINATION = "Постранична навигация"
REQUEST_NAVI_TPL = "Шаблон за постранична навигация"
REQUEST_OTHER = "Още"
REQUEST_SHOW_SQL = "Покажи SQL заявката"
REQUEST_DOC_ON_PAGE = "Брой елементи на заявката на страница"
REQUEST_PAGES_CURENT = "Номер страница"
REQUEST_PAGES_TOTAL = "Общ брой страници"

11
admin/lang/bg/sysblocks.txt

@ -69,8 +69,9 @@ SYSBLOCK_ERROR = "Грешка"
SYSBLOCK_SUCCESS = "Изпълнено"
// v 3.2
NAVI_ALIAS = "Алиас"
NAVI_I = "Опционално. Алиасът позволява да се използва лесно запомнящсе таг [tag:sysblock:alias] вместо [tag:sysblock:id]. Алиасът не може да бъде чосло, може да съдържа само цифри, латински букви, долна черта, тире и е с дължина не-повече от 20 символа и трябва да бъде уникален в пределите на модула."
NAVI_ACCEPT = "Този алиас можр да се използва"
NAVI_ER_SYN = "Грешен алиас!<br> Алиасът не трябва да е число, да съдържа само цифри, латински букви, долна черта, тире и е с дължина не-повече от 20 символа"
NAVI_ER_EXISTS = "Грешен алиас!<br> Този алиас вече е използван в друга контактна форма
SYSBLOCK_DESCRIPTION = "Кратко описание"
SYSBLOCK_ALIAS = "Алиас"
SYSBLOCK_I = "Опционално. Алиасът позволява да се използва лесно запомнящсе таг [tag:sysblock:alias] вместо [tag:sysblock:id]. Алиасът не може да бъде чосло, може да съдържа само цифри, латински букви, долна черта, тире и е с дължина не-повече от 20 символа и трябва да бъде уникален в пределите на модула."
SYSBLOCK_ACCEPT = "Този алиас може да се използва"
SYSBLOCK_ER_SYN = "Грешен алиас!<br> Алиасът не трябва да е число, може да съдържа само цифри, латински букви, долна черта, тире и е с дължина не-повече от 20 символа"
SYSBLOCK_ER_EXISTS = "Грешен алиас!<br> Този алиас вече е използван в друг системен блок"

2
admin/templates/documents/docs_simple.tpl

@ -96,7 +96,7 @@ function insertLinkCK(data) {ldelim}
{elseif $smarty.request.selecturl == 1}
<input onclick="insertLinkCK('index.php?id={$item->Id}&doc={$item->document_alias}');" class="whiteBtn" type="button" value="{#DOC_BUTTON_INSERT_LINK#}" />
{elseif $smarty.request.alias == 1}
<input onclick="insertLink({ldelim}{$smarty.request.target|escape}:'/{$item->document_alias}'{rdelim});" class="whiteBtn" type="button" value="{#DOC_BUTTON_INSERT_LINK#}" />
<input onclick="insertLink({ldelim}{$smarty.request.target|escape}:'{$ABS_PATH}{$item->document_alias}'{rdelim});" class="whiteBtn" type="button" value="{#DOC_BUTTON_INSERT_LINK#}" />
{elseif $smarty.request.function == 1}
<input onclick="insertFunction('{$smarty.request.target|escape}', '{$item->Id}');" class="whiteBtn" type="button" value="{#DOC_BUTTON_INSERT_LINK#}" />
{else}

8
admin/templates/documents/form.tpl

@ -23,7 +23,7 @@
<script type="text/javascript">
function openLinkWin(target) {ldelim}
function openLinkWin(target, rtrn='', data='') {ldelim}
if (typeof width == 'undefined' || width == '')
var width = screen.width * 0.8;
@ -33,7 +33,9 @@ function openLinkWin(target) {ldelim}
var left = ( screen.width - width ) / 2;
var top = ( screen.height - height ) / 2;
window.open('index.php?do=docs&action=showsimple&target='+target+'&selurl=1&pop=1','pop','left='+left+',top='+top+',width='+width+',height='+height+',scrollbars=1,resizable=1');
data = data.length ? data : 'selurl';
window.open('index.php?do=docs&action=showsimple&target='+target+'&'+data+'=1&pop=1','pop','left='+left+',top='+top+',width='+width+',height='+height+',scrollbars=1,resizable=1');
{rdelim}
function openLinkWinId(target, doc) {ldelim}
@ -548,7 +550,7 @@ $(document).ready(function(){ldelim}
<td nowrap="nowrap" colspan="3">
<div style="margin:2px 0 3px;">
<select style="width: 400px;" name="rubric_tmpl_id" id="rubric_tmpl_id">
<option value="0" {if $smarty.request.action == 'new'}selected="selected"{/if}>Использовать по умолчанию</option>
<option value="0" {if $smarty.request.action == 'new'}selected="selected"{/if}>{#DOC_TEMPLATE_DEFAULT#}</option>
{foreach from=$rubric_tmpls item=tmpl}
<option value="{$tmpl->id}"{if $document->rubric_tmpl_id == $tmpl->id}selected="selected"{/if}>{$tmpl->title}</option>
{/foreach}

4
admin/templates/js/filemanager.js

@ -2,7 +2,7 @@ $().ready(function() {
// отдельный файловый менеджер
$('#finder').elfinder({
url : ave_path+'lib/redactor/elfinder/inc/connector.php',
url : ave_path+'lib/redactor/elfinder/php/connector.php',
lang : 'ru',
height : 500,
title : 'Файловый менеджер'
@ -13,7 +13,7 @@ $().ready(function() {
$('.dialog_images').click(function() {
var id = $(this).attr("rel");
$('<div/>').dialogelfinder({
url : ave_path+'lib/redactor/elfinder/inc/connector.php',
url : ave_path+'lib/redactor/elfinder/php/connector.php',
lang : 'ru',
width : 1100,
height: 600,

2
admin/templates/js/filemanager_template.js

@ -1,7 +1,7 @@
$(function() {
// отдельный файловый менеджер
$('#finder').elfinder({
url : ave_path+'lib/redactor/elfinder/inc/connector_template.php',
url : ave_path+'lib/redactor/elfinder/php/connector_template.php',
lang : 'ru',
height : 500,
title : 'Файловый менеджер'

2
admin/templates/noperm.tpl

@ -1,7 +1,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>{#SUB_TITLE#} ({$smarty.session.user_name|escape})</title>

4
admin/templates/settings/settings_case.tpl

@ -67,10 +67,10 @@
</select>
{/if}
{if $def.TYPE=="string"}
<input class="mousetrap" name="GLOB[{$_var}]" type="text" id="{$_var}" style="width:550px" value="{php} echo(constant ($this->_tpl_vars['_var']));{/php}" size="100" />
<input class="mousetrap" name="GLOB[{$_var}]" type="text" id="{$_var}" style="width:550px" value="{php} echo(constant ($this->_tpl_vars['_var']));{/php}" size="100" autocomplete="off" />
{/if}
{if $def.TYPE=="integer"}
<input class="mousetrap" name="GLOB[{$_var}]" type="text" id="{$_var}" style="width:550px" value="{php} echo(constant ($this->_tpl_vars['_var']));{/php}" size="100" />
<input class="mousetrap" name="GLOB[{$_var}]" type="text" id="{$_var}" style="width:550px" value="{php} echo(constant ($this->_tpl_vars['_var']));{/php}" size="100" autocomplete="off" />
{/if}
{if $def.TYPE=="bool"}
<input type="radio" name="GLOB[{$_var}]" value="1" {php} echo(constant($this->_tpl_vars['_var']) ? 'checked' : "");{/php} /><label style="cursor: pointer;">{#SETTINGS_YES#}</label>

2
class/class.core.php

@ -1056,7 +1056,7 @@ class AVE_Core
$main_content = preg_replace_callback('/\[tag:fld:([a-zA-Z0-9-_]+)\]/', 'document_get_field', $main_content);
$main_content = preg_replace_callback('/\[tag:fld:([a-zA-Z0-9-_]+)\]\[([0-9]+)]\[([0-9]+)]/', 'return_element', $main_content);
$main_content = preg_replace_callback('/\[tag:watermark:(.+?):([a-zA-Z]+):([0-9]+)\]/', 'watermarks', $main_content);
$main_content = preg_replace_callback('/\[tag:([r|c|f|t]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $main_content);
$main_content = preg_replace_callback('/\[tag:([r|c|f|t|s]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $main_content);
// Возвращаем поле из БД документа
$main_content = preg_replace_callback('/\[tag:doc:([a-zA-Z0-9-_]+)\]/u',

827
class/class.docs.php

File diff suppressed because it is too large Load Diff

88
class/class.settings.php

@ -68,47 +68,79 @@ class AVE_Settings
global $AVE_Template;
// Сохраняем настройки
if (@$_REQUEST['more']) {
$set='<?php';
foreach($_REQUEST['GLOB'] as $k=>$v){
switch ($GLOBALS['CMS_CONFIG'][$k]['TYPE']) {
case 'bool' : $v=$v ? 'true' : 'false'; break;
case 'integer' : $v=intval($v); break;
case 'string' : $v="'".add_slashes($v)."'";break;
case 'dropdown' : $v="'".add_slashes($v)."'";break;
default : $v="'".add_slashes($v)."'";break;
if (isset($_REQUEST['more']))
{
$set = '<?php' . "\r\n\r\n";
foreach($_REQUEST['GLOB'] as $k => $v)
{
switch ($GLOBALS['CMS_CONFIG'][$k]['TYPE'])
{
case 'bool' :
$v = $v ? 'true' : 'false';
break;
case 'integer' :
$v = intval($v);
break;
case 'string' :
$v = "'" . add_slashes($v) . "'";
break;
case 'dropdown' :
$v = "'" . add_slashes($v) . "'";
break;
default :
$v = "'" . add_slashes($v) . "'";
break;
}
$set.="
//".$GLOBALS['CMS_CONFIG'][$k]['DESCR']."\r\n";
$set.=" define('".$k."',".$v.");\r\n\r\n";
$set .= "//" . $GLOBALS['CMS_CONFIG'][$k]['DESCR'] . "\r\n";
$set .= "define('" . $k . "', " . $v . ");\r\n\r\n";
}
$set.='?>';
$result = file_put_contents(BASE_DIR.'/inc/config.inc.php',$set);
if ($result > 0) {
$set .= '?>';
$result = file_put_contents(BASE_DIR . '/inc/config.inc.php', $set);
if ($result > 0)
{
$message = $AVE_Template->get_config_vars('SETTINGS_SAVED');
$header = $AVE_Template->get_config_vars('SETTINGS_SUCCESS');
$theme = 'accept';
reportLog($AVE_Template->get_config_vars('SETTINGS_SAVE_DOP'));
}else{
$message = $AVE_Template->get_config_vars('SETTINGS_SAVED_ERR');
$header = $AVE_Template->get_config_vars('SETTINGS_ERROR');
$theme = 'error';
}
else
{
$message = $AVE_Template->get_config_vars('SETTINGS_SAVED_ERR');
$header = $AVE_Template->get_config_vars('SETTINGS_ERROR');
$theme = 'error';
}
if (isset($_REQUEST['ajax']) && $_REQUEST['ajax'] = '1') {
echo json_encode(array('message' => $message, 'header' => $header, 'theme' => $theme));
} else {
$AVE_Template->assign('message', $message);
header('Location:index.php?do=settings&sub=case&cp=' . SESSION);
if (isAjax())
{
echo json_encode(array(
'message' => $message,
'header' => $header,
'theme' => $theme)
);
}
else
{
$AVE_Template->assign('message', $message);
header('Location:index.php?do=settings&sub=case&cp=' . SESSION);
}
exit;
// Выводим настройки
} else {
$AVE_Template->assign('CMS_CONFIG',$GLOBALS['CMS_CONFIG']);
$AVE_Template->assign('content', $AVE_Template->fetch('settings/settings_case.tpl'));
}
}
else
{
$AVE_Template->assign('CMS_CONFIG', $GLOBALS['CMS_CONFIG']);
$AVE_Template->assign('content', $AVE_Template->fetch('settings/settings_case.tpl'));
}
}
/**

52
class/class.thumbnail.php

@ -883,6 +883,51 @@ class Image_Toolbox {
$cpy_w_offset = 0;
$cpy_h_offset = 0;
}
elseif ($mode == 4) {
//smart crop
($width >= $height)
? ($this->_img['target']['bias'] = IMAGE_TOOLBOX_BIAS_HORIZONTAL)
: ($this->_img['target']['bias'] = IMAGE_TOOLBOX_BIAS_VERTICAL);
if ($this->_img['main']['bias'] == $this->_img['target']['bias'] || !$autorotate)
{
$this->_img['target']['width'] = $width;
$this->_img['target']['height'] = $height;
}
else
{
$this->_img['target']['width'] = $height;
$this->_img['target']['height'] = $width;
}
$this->_img['target']['aspectratio'] = $this->_img['target']['width'] / $this->_img['target']['height'];
if ($this->_img['main']['width'] / $this->_img['target']['width'] >= $this->_img['main']['height'] / $this->_img['target']['height'])
{
$cpy_h = $this->_img['main']['height'];
$cpy_w = (integer) $this->_img['main']['height'] * $this->_img['target']['aspectratio'];
$cpy_w_offset = (integer) ($this->_img['main']['width'] - $cpy_w) / 2;
$cpy_h_offset = 0;
}
else
{
$cpy_w = $this->_img['main']['width'];
$cpy_h = (integer) $this->_img['main']['width'] / $this->_img['target']['aspectratio'];
$cpy_h_offset = (integer) ($this->_img['main']['height'] - $cpy_h) / 2;
$cpy_w_offset = 0;
}
if ($this->_img['main']['width'] >= $this->_img['target']['height'])
{
$cpy_w_offset = (integer) ($this->_img['main']['width'] - $cpy_w) / 2;
$cpy_h_offset = 0;
}
else
{
$cpy_w_offset = 0;
$cpy_h_offset = (integer) ($this->_img['main']['height'] - $cpy_h) / 2;
}
}
} elseif (($width == 0 && $height > 0) || ($width > 0 && $height == 0) && is_int($width) && is_int($height)) {
//keep aspectratio
if ($autorotate == true) {
@ -915,13 +960,18 @@ class Image_Toolbox {
//create resized picture
$functionname = $this->_imagecreatefunction;
$dummy = $functionname($this->_img['target']['width'] + 1, $this->_img['target']['height'] + 1);
if ($this->_img['main']['type'] == 3) {
if ($this->_img['main']['type'] == 3)
{
imagealphablending($dummy, false);
imagesavealpha($dummy, true);
}
$resize_function = $this->_resize_function;
$resize_function($dummy, $this->_img["main"]["resource"], 0, 0, $cpy_w_offset, $cpy_h_offset, $this->_img["target"]["width"], $this->_img["target"]["height"], $cpy_w, $cpy_h);
if ($mode == 2) {
$this->_img['target']['resource'] = $functionname($width, $height);
$fillcolor = $this->_hexToPHPColor($bgcolor);

4
fields/image_mega/field.php

@ -186,7 +186,7 @@
$image_item
);
$image_item = preg_replace_callback('/\[tag:([r|c|f|t]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $image_item);
$image_item = preg_replace_callback('/\[tag:([r|c|f|t|s]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $image_item);
}
}
@ -260,7 +260,7 @@
$image_item
);
$image_item = preg_replace_callback('/\[tag:([r|c|f|t]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $image_item);
$image_item = preg_replace_callback('/\[tag:([r|c|f|t|s]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $image_item);
}
}

2
fields/image_multi/field.php

@ -160,7 +160,7 @@ function get_field_image_multi($field_value, $action, $field_id=0, $tpl='', $tpl
$image_item
);
$image_item = preg_replace_callback('/\[tag:([r|c|f|t]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $image_item);
$image_item = preg_replace_callback('/\[tag:([r|c|f|t|s]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $image_item);
}
}

2
fields/image_multi_new_3inputs/field.php

@ -125,7 +125,7 @@ function get_field_image_multi_new_3inputs($field_value, $action, $field_id=0, $
$image_item
);
$image_item = preg_replace_callback('/\[tag:([r|c|f|t]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $image_item);
$image_item = preg_replace_callback('/\[tag:([r|c|f|t|s]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $image_item);
}
}
$res[] = $image_item;

4
fields/image_single/field.php

@ -80,7 +80,7 @@ function get_field_image_single($field_value, $action, $field_id=0, $tpl='', $tp
$field_value
);
$field_value = preg_replace_callback('/\[tag:([r|c|f|t]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $field_value);
$field_value = preg_replace_callback('/\[tag:([r|c|f|t|s]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $field_value);
}
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'doc');
@ -124,7 +124,7 @@ function get_field_image_single($field_value, $action, $field_id=0, $tpl='', $tp
$field_value
);
$field_value = preg_replace_callback('/\[tag:([r|c|f|t]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $field_value);
$field_value = preg_replace_callback('/\[tag:([r|c|f|t|s]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $field_value);
}
$maxlength = null;

2
functions/func.block.php

@ -74,7 +74,7 @@ function parse_block($id)
{
//-- парсим теги полей документа в шаблоне рубрики
$return = preg_replace_callback('/\[tag:fld:([a-zA-Z0-9-_]+)\]/', 'document_get_field', $return);
$return = preg_replace_callback('/\[tag:([r|c|f|t]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $return);
$return = preg_replace_callback('/\[tag:([r|c|f|t|s]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $return);
}
$gen_time = Debug::endTime('SYSBLOCK_' . $id);

1825
functions/func.common.php

File diff suppressed because it is too large Load Diff

2
functions/func.parserequest.php

@ -411,7 +411,7 @@ function showrequestelement($mixed, $template = '', $tparams = '')
$item = preg_replace('/\[tag:doc:\d*\]/', '', $item);
$item = preg_replace('/\[tag:langfile:\d*\]/', '', $item);
$item = preg_replace_callback('/\[tag:([r|c|f|t]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $item);
$item = preg_replace_callback('/\[tag:([r|c|f|t|s]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $item);
if ($tparams != '')
{

9
functions/func.sysblock.php

@ -27,17 +27,16 @@ function parse_sysblock($id)
$eval_sysblock = false;
if ($id != '')
{
$eval_sysblock = true;
$cache_file = BASE_DIR . '/cache/sql/sysblock/' . $id . '.cache';
if(! file_exists(dirname($cache_file)))
if (! file_exists(dirname($cache_file)))
mkdir(dirname($cache_file), 0766, true);
if(file_exists($cache_file))
if (file_exists($cache_file))
{
$return = file_get_contents($cache_file);
}
@ -79,9 +78,11 @@ function parse_sysblock($id)
{
//-- парсим теги полей документа в шаблоне рубрики
$return = preg_replace_callback('/\[tag:fld:([a-zA-Z0-9-_]+)\]/', 'document_get_field', $return);
$return = preg_replace_callback('/\[tag:([r|c|f|t]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $return);
$return = preg_replace_callback('/\[tag:([r|c|f|t|s]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $return);
}
$return = preg_replace_callback('/\[tag:block:([A-Za-z0-9-_]{1,20}+)\]/', 'parse_block', $return);
if ($eval_sysblock)
$return = eval2var('?'.'>' . $return . '<'.'?');

147
functions/func.thumbnails.php

@ -1,82 +1,95 @@
<?php
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
/**
* Формирование ссылки на миниатюру определённого размера,
* если размер не указан формируется миниатюра шириной 120px
*
* @param array $params параметры
* <ul>
* <li>link путь к оригиналу</li>
* <li>size размер миниатюры</li>
* </ul>
* @return string
*/
function make_thumbnail($params)
{
if (empty($params['link'])) return false;
if((strpos($params['link'],'/http://')===0 || strpos($params['link'],'/https://')===0)) {
$md5 = md5($params['link']);
$path = BASE_DIR . ABS_PATH . UPLOAD_DIR . '/ext/' . substr($md5, 0, 4);
if(!is_dir($path)){
if(!is_dir(dirname($path))) mkdir(dirname($path), 0777);
mkdir($path, 0777);
}
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2017 AVE.cms, https://www.ave-cms.ru
*
* @license GPL v.2
*/
/*
|----------------------------------------------------------------------------------
| Формирование ссылки на миниатюру определённого размера,
| если размер не указан формируется миниатюра шириной 120px
|----------------------------------------------------------------------------------
| @param array $params - параметры
|
| <ul>
| <li>link - путь к оригиналу</li>
| <li>size - размер миниатюры</li>
| </ul>
|
| @return string
*/
function make_thumbnail ($params)
{
if (empty($params['link']))
return false;
$link = ABS_PATH . UPLOAD_DIR . '/ext/' . substr($md5,0,4) . '/' . $md5 . '.jpg';
if ((strpos($params['link'], '/http://') === 0 || strpos($params['link'], '/https://') === 0))
{
$md5 = md5($params['link']);
if(!file_exists(BASE_DIR.$link)){
file_put_contents(BASE_DIR . $link . '.tmp', $params['link']);
}
$path = BASE_DIR . ABS_PATH . UPLOAD_DIR . '/ext/' . substr($md5, 0, 4);
$params['link']=$link;
}
if (! is_dir($path))
{
if(! is_dir(dirname($path))) mkdir(dirname($path), 0777);
mkdir($path, 0777);
}
if (isset($params['size']))
{
$size = $params['size'];
$link = ABS_PATH . UPLOAD_DIR . '/ext/' . substr($md5, 0, 4) . '/' . $md5 . '.jpg';
if (!preg_match('/^[r|c|f|t]\d+x\d+r*$/', $size)) return false;
}
else
{
$size = 't128x128';
}
if (! file_exists(BASE_DIR . $link))
{
file_put_contents(BASE_DIR . $link . '.tmp', $params['link']);
}
$nameParts = explode('.', basename($params['link']));
$params['link'] = $link;
}
if (isset($params['size']))
{
$size = $params['size'];
if (! preg_match('/^[r|c|f|t|s]\d+x\d+r*$/', $size))
return false;
}
else
{
$size = 't128x128';
}
$countParts = count($nameParts);
$nameParts = explode('.', basename($params['link']));
if ($countParts < 2) return false;
$countParts = count($nameParts);
$nameParts[$countParts-2] .= '-' . $size;
if ($countParts < 2)
return false;
return dirname($params['link']) . '/' . THUMBNAIL_DIR . '/' . implode('.', $nameParts);
}
$nameParts[$countParts-2] .= '-' . $size;
return dirname($params['link']) . '/' . THUMBNAIL_DIR . '/' . implode('.', $nameParts);
}
/**
* Формирование ссылки на миниатюру определённого размера
*
* @param array $params параметры
* @return string
*/
function callback_make_thumbnail($params)
{
return ((is_array($params) && isset($params[2])) ? make_thumbnail(array('size' => $params[1], 'link' => $params[2])) : '');
}
/*
|----------------------------------------------------------------------------------
| Формирование ссылки на миниатюру определённого размера
|----------------------------------------------------------------------------------
| @param array $params - параметры
|
| @return string
*/
function callback_make_thumbnail ($params)
{
return ((is_array($params) && isset($params[2]))
? make_thumbnail(array('size' => $params[1], 'link' => $params[2]))
: '');
}
?>

79
inc/config.php

@ -89,51 +89,60 @@
)
);
$GLOBALS['CMS_CONFIG']['ADMIN_MENU'] = array('DESCR' =>'Использовать плавующее боковое меню','default'=>true,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['ADMIN_CAPTCHA'] = array('DESCR' =>'Использовать капчу при входе в админку','default'=>false,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['ADMIN_EDITMENU'] = array('DESCR' =>'Использовать всплывающие "Действия" в системе','default'=>true,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['ADMIN_MENU'] = array('DESCR' => 'Использовать плавующее боковое меню','default'=>true,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['ADMIN_CAPTCHA'] = array('DESCR' => 'Использовать капчу при входе в админку','default'=>false,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['ADMIN_EDITMENU'] = array('DESCR' => 'Использовать всплывающие "Действия" в системе','default'=>true,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['ATTACH_DIR'] = array('DESCR' =>'Директория для хранения вложений','default'=>'cache/attachments','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['UPLOAD_DIR'] = array('DESCR' =>'Директория для хранения файлов','default'=>'uploads','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['UPLOAD_SHOP_DIR'] = array('DESCR' =>'Директория для хранения миниатюр Магазина','default'=>'uploads/shop','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['UPLOAD_GALLERY_DIR'] = array('DESCR' =>'Директория для хранения миниатюр Галерей','default'=>'uploads/gallery','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['THUMBNAIL_DIR'] = array('DESCR' =>'Директория для хранения миниатюр изображений','default'=>'thumbnail','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['WATERMARKS_DIR'] = array('DESCR' =>'Директория для хранения оригиналов изображений (watermark)','default'=>'watermarks','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['WATERMARKS_FILE'] = array('DESCR' =>'Файл watermark','default'=>'uploads/watermark.png','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['ATTACH_DIR'] = array('DESCR' => 'Директория для хранения вложений','default'=>'cache/attachments','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['UPLOAD_DIR'] = array('DESCR' => 'Директория для хранения файлов','default'=>'uploads','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['UPLOAD_SHOP_DIR'] = array('DESCR' => 'Директория для хранения миниатюр Магазина','default'=>'uploads/shop','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['UPLOAD_GALLERY_DIR'] = array('DESCR' => 'Директория для хранения миниатюр Галерей','default'=>'uploads/gallery','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['SESSION_SAVE_HANDLER'] = array('DESCR' =>'Хранить сессии в БД','default'=>true,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['SESSION_LIFETIME'] = array('DESCR' =>'Время жизни сессии (Значение по умолчанию 24 часа)','default'=>60*60*24,'TYPE'=>'integer','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['COOKIE_LIFETIME'] = array('DESCR' =>'Время жизни cookie автологина (60*60*24*14 - 2 недели)','default'=>60*60*24*14,'TYPE'=>'integer','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['THUMBNAIL_DIR'] = array('DESCR' => 'Директория для хранения миниатюр изображений','default'=>'thumbnail','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['THUMBNAIL_SIZES'] = array('DESCR' => 'Разрешенные методы и размеры для миниатюр (через запятую)','default'=>'','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['THUMBNAIL_IPTC'] = array('DESCR' => 'Генерировать миниютарам IPTC','default'=>false,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['USERS_TIME_SHOW'] = array('DESCR' =>'Показывать кто был онлайн в течении: (Значение по умолчанию 24 часа)','default'=>60*60*24,'TYPE'=>'integer','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['WATERMARKS_DIR'] = array('DESCR' => 'Директория для хранения оригиналов изображений (watermark)','default'=>'watermarks','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['WATERMARKS_FILE'] = array('DESCR' => 'Файл watermark','default'=>'uploads/watermark.png','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['PROFILING'] = array('DESCR' =>'Вывод статистики','default'=>false,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['SQL_PROFILING'] = array('DESCR' =>'Вывод статистики выполненых запросов','default'=>false,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['SESSION_SAVE_HANDLER'] = array('DESCR' => 'Хранить сессии в БД','default'=>true,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['SESSION_LIFETIME'] = array('DESCR' => 'Время жизни сессии (Значение по умолчанию 24 часа)','default'=>60*60*24,'TYPE'=>'integer','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['COOKIE_LIFETIME'] = array('DESCR' => 'Время жизни cookie автологина (60*60*24*14 - 2 недели)','default'=>60*60*24*14,'TYPE'=>'integer','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['SEND_SQL_ERROR'] = array('DESCR' =>'Отправка писем с ошибками MySQL','default'=>false,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['PHP_DEBUGGING_FILE'] = array('DESCR' =>'Включить обработку ошибок PHP через обработчик cms','default'=>false,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['PHP_DEBUGGING'] = array('DESCR' =>'Включить стандартную обработку ошибок PHP','default'=>false,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['SMARTY_DEBUGGING'] = array('DESCR' =>'Консоль отладки Smarty','default'=>false,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['USERS_TIME_SHOW'] = array('DESCR' => 'Показывать кто был онлайн в течении: (Значение по умолчанию 24 часа)','default'=>60*60*24,'TYPE'=>'integer','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['MEMORY_LIMIT_PANIC'] = array('DESCR' =>'Пытаться очистить память если выходит за пределы ("-1" выключенно) в Мегабайтах (увеличивается нагрузка на MySQL)','default'=>-1,'TYPE'=>'dropdown','VARIANT'=>array('-1','6','12','28','54','100'));
$GLOBALS['CMS_CONFIG']['PROFILING'] = array('DESCR' => 'Вывод статистики','default'=>false,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['SQL_PROFILING'] = array('DESCR' => 'Вывод статистики выполненых запросов','default'=>false,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['SMARTY_COMPILE_CHECK'] = array('DESCR' =>'Контролировать изменения tpl файлов После настройки сайта установить - false','default'=>true,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['SMARTY_USE_SUB_DIRS'] = array('DESCR' =>'Создание папок для кэширования Установите это в false если ваше окружение PHP не разрешает создание директорий от имени Smarty. Поддиректории более эффективны, так что используйте их, если можете.','default'=>true,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['CACHE_DOC_TPL'] = array('DESCR' =>'Кэширование скомпилированных шаблонов документов','default'=>true,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['CACHE_DOC_FILE'] = array('DESCR' =>'Кэширование скомпилированных шаблонов документов в файлах','default'=>true,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['SYSTEM_CACHE_LIFETIME'] = array('DESCR' =>'Время жизни кеша запроса к настройкам системы (60*60*24*14 - 2 недели)','default'=>0,'TYPE'=>'integer','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['SEND_SQL_ERROR'] = array('DESCR' => 'Отправка писем с ошибками MySQL','default'=>false,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['PHP_DEBUGGING_FILE'] = array('DESCR' => 'Включить обработку ошибок PHP через обработчик cms','default'=>false,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['PHP_DEBUGGING'] = array('DESCR' => 'Включить стандартную обработку ошибок PHP','default'=>false,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['SMARTY_DEBUGGING'] = array('DESCR' => 'Консоль отладки Smarty','default'=>false,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['YANDEX_MAP_API_KEY'] = array('DESCR' =>'Yandex MAP API REY','default'=>'','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['GOOGLE_MAP_API_KEY'] = array('DESCR' =>'Google MAP API REY','default'=>'','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['MEMORY_LIMIT_PANIC'] = array('DESCR' => 'Пытаться очистить память если выходит за пределы ("-1" выключенно) в Мегабайтах (увеличивается нагрузка на MySQL)','default'=>-1,'TYPE'=>'dropdown','VARIANT'=>array('-1','6','12','28','54','100'));
$GLOBALS['CMS_CONFIG']['Memcached_Server'] = array('DESCR' =>'Адрес Memcached сервера','default'=>'','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['Memcached_Port'] = array('DESCR' =>'Порт Memcached сервера','default'=>'','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['SMARTY_COMPILE_CHECK'] = array('DESCR' => 'Контролировать изменения tpl файлов После настройки сайта установить - false','default'=>true,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['SMARTY_USE_SUB_DIRS'] = array('DESCR' => 'Создание папок для кэширования Установите это в false если ваше окружение PHP не разрешает создание директорий от имени Smarty. Поддиректории более эффективны, так что используйте их, если можете.','default'=>true,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['CACHE_DOC_TPL'] = array('DESCR' => 'Кэширование скомпилированных шаблонов документов','default'=>true,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['CACHE_DOC_FILE'] = array('DESCR' => 'Кэширование скомпилированных шаблонов документов в файлах','default'=>true,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['SYSTEM_CACHE_LIFETIME'] = array('DESCR' => 'Время жизни кеша запроса к настройкам системы (60*60*24*14 - 2 недели)','default'=>0,'TYPE'=>'integer','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['DB_EXPORT_GZ'] = array('DESCR' =>'Создание резервной копии базы данных со сжатием','default'=>false,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['DB_EXPORT_TPL'] = array('DESCR' =>'Шаблон имени файла экспорта бд (%SERVER%,%DATE%,%TIME%)','default'=>'%SERVER%_DB_BackUP_%DATE%_%TIME%','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['DB_EXPORT_PREFIX'] = array('DESCR' =>'Использовать префикс при экспорте бд','default'=>true,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['YANDEX_MAP_API_KEY'] = array('DESCR' => 'Yandex MAP API REY','default'=>'','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['GOOGLE_MAP_API_KEY'] = array('DESCR' => 'Google MAP API REY','default'=>'','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['CHECK_VERSION'] = array('DESCR' =>'Проверка наличия новых версий','default'=>true,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['Memcached_Server'] = array('DESCR' => 'Адрес Memcached сервера','default'=>'','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['Memcached_Port'] = array('DESCR' => 'Порт Memcached сервера','default'=>'','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['DB_EXPORT_GZ'] = array('DESCR' => 'Создание резервной копии базы данных со сжатием','default'=>false,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['DB_EXPORT_TPL'] = array('DESCR' => 'Шаблон имени файла экспорта бд (%SERVER%,%DATE%,%TIME%)','default'=>'%SERVER%_DB_BackUP_%DATE%_%TIME%','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['DB_EXPORT_PREFIX'] = array('DESCR' => 'Использовать префикс при экспорте бд','default'=>true,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['GZIP_COMPRESSION'] = array('DESCR' => 'Включить gzip компрессию','default'=>false,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['OUTPUT_EXPIRE'] = array('DESCR' => 'Отдавать заголовок на кеширование страницы', 'default'=>false, 'TYPE'=>'bool', 'VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['OUTPUT_EXPIRE_OFFSET'] = array('DESCR' => 'Время жизни кеширования страницы (60*60 - 1 час)','default'=>60*60, 'TYPE'=>'integer', 'VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['CHECK_VERSION'] = array('DESCR' => 'Проверка наличия новых версий','default'=>true,'TYPE'=>'bool','VARIANT'=>'');
include_once(dirname(dirname(__FILE__)) . '/inc/config.inc.php');
@ -142,4 +151,4 @@
if(! defined($k))
define($k, $v['default']);
}
?>
?>

154
inc/init.php

@ -17,7 +17,7 @@
exit;
// Подключаем файл настроек
require_once(BASE_DIR . '/inc/config.php');
require_once (BASE_DIR . '/inc/config.php');
if (PHP_DEBUGGING_FILE && ! defined('ACP'))
include_once BASE_DIR . '/inc/errors.php';
@ -35,7 +35,8 @@
foreach ($GLOBALS as $key => $value)
{
if (!isset($allowed[$key])) unset($GLOBALS[$key]);
if (!isset($allowed[$key]))
unset($GLOBALS[$key]);
}
}
@ -116,9 +117,9 @@
}
}
else
{
$_SERVER['HTTP_HOST'] = '';
}
{
$_SERVER['HTTP_HOST'] = '';
}
$ssl = is_ssl();
$schema = ($ssl) ? 'https://' : 'http://';
@ -140,16 +141,16 @@
set_host();
set_include_path(get_include_path() . '/' . BASE_DIR . '/lib');
set_include_path (get_include_path() . '/' . BASE_DIR . '/lib');
ini_set('arg_separator.output', '&amp;');
ini_set('session.cache_limiter', 'none');
ini_set('session.cookie_lifetime', 60*60*24*14);
ini_set('session.gc_maxlifetime', 60*24);
ini_set('session.use_cookies', 1);
ini_set('session.use_only_cookies', 1);
ini_set('session.use_trans_sid', 0);
ini_set('url_rewriter.tags', '');
ini_set ('arg_separator.output', '&amp;');
ini_set ('session.cache_limiter', 'none');
ini_set ('session.cookie_lifetime', 60*60*24*14);
ini_set ('session.gc_maxlifetime', 60*24);
ini_set ('session.use_cookies', 1);
ini_set ('session.use_only_cookies', 1);
ini_set ('session.use_trans_sid', 0);
ini_set ('url_rewriter.tags', '');
// Переключение для нормальной работы с русскими буквами в некоторых функциях
@ -175,35 +176,35 @@
/**
* Подкючаем необходимые файлы функций
*/
require_once(BASE_DIR . '/functions/func.breadcrumbs.php'); // Хлебные крошки
require_once(BASE_DIR . '/functions/func.common.php'); // Основные функции
require_once(BASE_DIR . '/functions/func.locale.php'); // Языковые функции
require_once(BASE_DIR . '/functions/func.documents.php'); // Функции по работе с документами
require_once(BASE_DIR . '/functions/func.fields.php'); // Функции по работе с полями
require_once(BASE_DIR . '/functions/func.helpers.php'); // Второстепенные функции
require_once(BASE_DIR . '/functions/func.hidden.php'); // Парс тега [hide]
require_once(BASE_DIR . '/functions/func.login.php'); // Авторизация пользователей
require_once(BASE_DIR . '/functions/func.logs.php'); // Системные сообщения
require_once(BASE_DIR . '/functions/func.mail.php'); // Отправка писем
require_once(BASE_DIR . '/functions/func.navigation.php'); // Функции по работе с меню навигации
require_once(BASE_DIR . '/functions/func.pagination.php'); // Постраничная навигация
require_once(BASE_DIR . '/functions/func.parserequest.php'); // Функции по работе с запросами
require_once(BASE_DIR . '/functions/func.block.php'); // Функции по работе с визуальными блоками
require_once(BASE_DIR . '/functions/func.sysblock.php'); // Функции по работе с системными блоками
require_once(BASE_DIR . '/functions/func.thumbnails.php'); // Функции по работе с превьюшками изображений
require_once(BASE_DIR . '/functions/func.users.php'); // Функции по работе с пользователями
require_once(BASE_DIR . '/functions/func.watermarks.php'); // Функции по работе с водными знаками
require_once (BASE_DIR . '/functions/func.breadcrumbs.php'); // Хлебные крошки
require_once (BASE_DIR . '/functions/func.common.php'); // Основные функции
require_once (BASE_DIR . '/functions/func.locale.php'); // Языковые функции
require_once (BASE_DIR . '/functions/func.documents.php'); // Функции по работе с документами
require_once (BASE_DIR . '/functions/func.fields.php'); // Функции по работе с полями
require_once (BASE_DIR . '/functions/func.helpers.php'); // Второстепенные функции
require_once (BASE_DIR . '/functions/func.hidden.php'); // Парс тега [hide]
require_once (BASE_DIR . '/functions/func.login.php'); // Авторизация пользователей
require_once (BASE_DIR . '/functions/func.logs.php'); // Системные сообщения
require_once (BASE_DIR . '/functions/func.mail.php'); // Отправка писем
require_once (BASE_DIR . '/functions/func.navigation.php'); // Функции по работе с меню навигации
require_once (BASE_DIR . '/functions/func.pagination.php'); // Постраничная навигация
require_once (BASE_DIR . '/functions/func.parserequest.php'); // Функции по работе с запросами
require_once (BASE_DIR . '/functions/func.block.php'); // Функции по работе с визуальными блоками
require_once (BASE_DIR . '/functions/func.sysblock.php'); // Функции по работе с системными блоками
require_once (BASE_DIR . '/functions/func.thumbnails.php'); // Функции по работе с превьюшками изображений
require_once (BASE_DIR . '/functions/func.users.php'); // Функции по работе с пользователями
require_once (BASE_DIR . '/functions/func.watermarks.php'); // Функции по работе с водными знаками
/**
* Создание папок и файлов
*/
foreach(array('cache', 'backup', 'session') as $dir)
foreach (array('cache', 'backup', 'session') as $dir)
{
write_htaccess_deny(BASE_DIR . '/' . $dir);
}
foreach(array('attachments', 'combine', 'module', 'redactor', 'smarty', 'sql', 'tpl') as $dir)
foreach (array('attachments', 'combine', 'module', 'redactor', 'smarty', 'sql', 'tpl') as $dir)
{
write_htaccess_deny(BASE_DIR . '/cache/' . $dir);
}
@ -211,40 +212,42 @@
global $AVE_DB;
// Класс для работы с MySQL (Global $AVE_DB)
require_once(BASE_DIR . '/class/class.database.php');
require_once (BASE_DIR . '/class/class.database.php');
// Если не существует объекта по работе с БД
if (! isset($AVE_DB))
{
// Подключаем конфигурационный файл с параметрами подключения
require_once(BASE_DIR . '/inc/db.config.php');
require_once (BASE_DIR . '/inc/db.config.php');
// Если параметры не указаны, прерываем работу
if (! isset($config)) exit;
if (! isset($config))
exit;
// Если константа префикса таблиц не задана, принудительно определяем ее на основании параметров в файле db.config.php
if (! defined('PREFIX')) define('PREFIX', $config['dbpref']);
if (! defined('PREFIX'))
define('PREFIX', $config['dbpref']);
// Создаем объект для работы с БД
try {
$AVE_DB = AVE_DB::getInstance($config)
// Назначаем кодировку
->setCharset('utf8')
// Назначаем БД
->setDatabaseName($config['dbname']);
$AVE_DB = AVE_DB::getInstance($config)
// Назначаем кодировку
->setCharset('utf8')
// Назначаем БД
->setDatabaseName($config['dbname']);
}
catch (AVE_DB_Exception $e)
{
ob_start();
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 3600');
header('X-Powered-By:');
echo $e->getMessage();
die;
}
{
ob_start();
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 3600');
header('X-Powered-By:');
echo $e->getMessage();
die;
}
unset($config);
unset ($config);
}
// Устанавливаем обновления системы
@ -254,7 +257,7 @@
if ($updaters)
{
sort($updaters);
sort ($updaters);
foreach ($updaters as $ufile)
{
@ -275,15 +278,15 @@
if (! SESSION_SAVE_HANDLER)
{
// Класс для работы с сессиями
require(BASE_DIR . '/class/class.session.files.php');
require (BASE_DIR . '/class/class.session.files.php');
$ses_class = new AVE_Session();
}
else
{
// Класс для работы с сессиями
require(BASE_DIR . '/class/class.session.php');
$ses_class = new AVE_Session_DB();
}
{
// Класс для работы с сессиями
require (BASE_DIR . '/class/class.session.php');
$ses_class = new AVE_Session_DB();
}
/* Изменяем save_handler, используем функции класса */
session_set_save_handler (
@ -328,18 +331,21 @@
//Запоминаем время последнего визита пользователя
if(! empty($_SESSION['user_id']))
if (! empty($_SESSION['user_id']))
{
$AVE_DB->Query("
UPDATE " . PREFIX . "_users
SET last_visit = '" . time() . "'
WHERE Id = '" . intval($_SESSION['user_id']) . "'
UPDATE
" . PREFIX . "_users
SET
last_visit = '" . time() . "'
WHERE
Id = '" . intval($_SESSION['user_id']) . "'
");
}
//Запоминаем язык браузера
$browlang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
$browlang = explode("-", $browlang);
$browlang = explode('-', $browlang);
$browlang = $browlang[0];
$_SESSION['accept_langs'] = array();
@ -355,13 +361,13 @@
lang_default ASC
", SYSTEM_CACHE_LIFETIME);
while($row = $sql->FetchRow())
while ($row = $sql->FetchRow())
{
if(trim($row->lang_key) > '')
if (trim($row->lang_key) > '')
{
$_SESSION['accept_langs'][trim($row->lang_key)] = trim($row->lang_alias_pref);
if(! @defined('DEFAULT_LANGUAGE') && $row->lang_default == 1)
if (! @defined('DEFAULT_LANGUAGE') && $row->lang_default == 1)
define('DEFAULT_LANGUAGE', trim($row->lang_key));
}
}
@ -389,20 +395,20 @@
set_locale();
// Класс Шаблонов SMARTY
require(BASE_DIR . '/class/class.template.php');
require (BASE_DIR . '/class/class.template.php');
// Класс пагинации
require(BASE_DIR . '/class/class.paginations.php');
require (BASE_DIR . '/class/class.paginations.php');
// Класс Модулей
require(BASE_DIR . '/class/class.modules.php');
require (BASE_DIR . '/class/class.modules.php');
$AVE_Module = new AVE_Module;
// Debug
require(BASE_DIR . '/class/class.debug.php');
require (BASE_DIR . '/class/class.debug.php');
$Debug = new Debug;
// Hooks
require(BASE_DIR . '/class/class.hooks.php');
require (BASE_DIR . '/class/class.hooks.php');
$Hooks = new Hooks;
?>
?>

85
inc/sitemap.php

@ -1,53 +1,56 @@
<?php
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
header("Content-type: text/xml");
@date_default_timezone_set('Europe/Moscow');
header("Content-type: text/xml");
@date_default_timezone_set('Europe/Moscow');
define('START_MICROTIME', microtime());
define('START_MICROTIME', microtime());
define('BASE_DIR', str_replace("\\", "/", rtrim($_SERVER['DOCUMENT_ROOT'],'/')));
define('BASE_DIR', str_replace("\\", "/", rtrim($_SERVER['DOCUMENT_ROOT'],'/')));
define('ABS_PATH', str_ireplace(BASE_DIR,'/',str_replace("\\", "/", dirname(dirname(__FILE__)))));
if (! @filesize(BASE_DIR . '/inc/db.config.php'))
{
header('Location: Location:install/index.php');
exit;
}
if (! @filesize(BASE_DIR . '/inc/db.config.php'))
{
header('Location: Location:install/index.php');
exit;
}
if (substr($_SERVER['REQUEST_URI'], 0, strlen('/index.php?')) != '/index.php?')
{
$_SERVER['REQUEST_URI'] = str_ireplace('_', '-', $_SERVER['REQUEST_URI']);
}
if(substr($_SERVER['REQUEST_URI'], 0, strlen('/index.php?')) != '/index.php?')
{
$_SERVER['REQUEST_URI'] = str_ireplace('_','-',$_SERVER['REQUEST_URI']);
}
require_once (BASE_DIR . '/inc/init.php');
require_once(BASE_DIR . '/inc/init.php');
if (! defined('ABS_PATH'))
define ('ABS_PATH', str_ireplace(BASE_DIR,'/',str_replace("\\", "/", dirname(dirname(__FILE__)))));
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off')
{
$domain = 'https://'.$_SERVER['SERVER_NAME'];
}
else
{
$domain = 'http://'.$_SERVER['SERVER_NAME'];
}
if (isset ($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off')
{
$domain = 'https://' . $_SERVER['SERVER_NAME'];
}
else
{
$domain = 'http://' . $_SERVER['SERVER_NAME'];
}
echo '<?xml version="1.0" encoding="UTF-8"?>';
?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<?php
$publish = get_settings('use_doctime') ? 'AND doc.document_expire > UNIX_TIMESTAMP()' : '';
$publish = get_settings('use_doctime')
? 'AND doc.document_expire > UNIX_TIMESTAMP()'
: '';
$sql = "
SELECT
@ -56,10 +59,13 @@ echo '<?xml version="1.0" encoding="UTF-8"?>';
doc.document_changed,
doc.document_sitemap_freq,
doc.document_sitemap_pr
FROM " . PREFIX . "_documents doc
LEFT JOIN " . PREFIX . "_rubrics rub
FROM
" . PREFIX . "_documents doc
LEFT JOIN
" . PREFIX . "_rubrics rub
ON rub.Id = doc.rubric_id
LEFT JOIN " . PREFIX . "_rubric_permissions rubperm
LEFT JOIN
" . PREFIX . "_rubric_permissions rubperm
ON rubperm.rubric_id = doc.rubric_id
WHERE
rub.rubric_template NOT LIKE ''
@ -69,7 +75,8 @@ echo '<?xml version="1.0" encoding="UTF-8"?>';
AND doc.Id != " . PAGE_NOT_FOUND_ID . "
AND (document_meta_robots NOT LIKE '%noindex%' or document_meta_robots NOT LIKE '%nofollow%')
AND (rubperm.user_group_id = 2 AND rubperm.rubric_permission LIKE '%docread%')
ORDER BY doc.Id ASC, doc.document_changed DESC
ORDER BY
doc.Id ASC, doc.document_changed DESC
";
$changefreq = array(
@ -84,7 +91,7 @@ echo '<?xml version="1.0" encoding="UTF-8"?>';
$res = $AVE_DB->Query($sql);
while($row = $res->FetchAssocArray()):
while ($row = $res->FetchAssocArray()):
$document_alias = ABS_PATH . $row['document_alias'] . URL_SUFF;
$document_alias = $domain . str_ireplace(ABS_PATH . '/' . URL_SUFF, '/', $document_alias);
$date = $row["document_changed"] ? date("Y-m-d", $row["document_changed"]) : date("Y-m-d");

187
inc/thumb.php

@ -27,14 +27,14 @@
$retval .= chr($length >> 8) . chr($length & 0xFF);
}
else
{
$retval .= chr(0x80) .
chr(0x04) .
chr(($length >> 24) & 0xFF) .
chr(($length >> 16) & 0xFF) .
chr(($length >> 8) & 0xFF) .
chr($length & 0xFF);
}
{
$retval .= chr(0x80) .
chr(0x04) .
chr(($length >> 24) & 0xFF) .
chr(($length >> 16) & 0xFF) .
chr(($length >> 8) & 0xFF) .
chr($length & 0xFF);
}
return $retval . $value;
}
@ -68,39 +68,66 @@
return is_dir($path) || (mkdir(dirname($path), $mode) && _mkdir($path, $mode));
}
require(dirname(__FILE__).'/config.php');
//-- Подгружаем настройки системы
require(dirname(__FILE__) . '/config.php');
//-- Разрешенные расширения файлов
$allowedExt = array('jpg', 'jpeg', 'png', 'gif', 'JPG', 'JPEG', 'PNG', 'GIF');
//-- Разрешенные размеры миниатюр
$allowedSize = THUMBNAIL_SIZES
? explode(',', trim(THUMBNAIL_SIZES))
: array();
//-- Разрешения для админпанели
$allowedAdmin = array(
't128x128',
'f128x128',
);
//-- Ссылка на файл
$imagefile = urldecode($_SERVER['REQUEST_URI']);
if(! empty($_REQUEST['thumb']))
//-- Вызов чере $_GET параметры
//-- ToDo
if (! empty($_REQUEST['thumb']))
{
$imagefile = '/'.
rtrim(
dirname($_REQUEST['thumb'])
.'/'.THUMBNAIL_DIR.'/'
.(str_replace(
. '/' . THUMBNAIL_DIR . '/'
. (str_replace(
'.',
(empty($_REQUEST['mode']) ? '-c' : '-'.$_REQUEST['mode']).((empty($_REQUEST['width'])&& empty($_REQUEST['height'])) ? '128' : intval(@$_REQUEST['width'])).'x'.((empty($_REQUEST['width'])&& empty($_REQUEST['height'])) ? '128' : intval(@$_REQUEST['height'])).'.',
(empty($_REQUEST['mode'])
? '-t'
: '-' . $_REQUEST['mode']) . ((empty($_REQUEST['width']) && empty($_REQUEST['height']))
? '128'
: intval(@$_REQUEST['width'])) . 'x' . ((empty($_REQUEST['width']) && empty($_REQUEST['height']))
? '128'
: intval(@$_REQUEST['height'])) . '.',
basename($_REQUEST['thumb'])
)
),
'/');
}
if($_SERVER['REQUEST_URI'] == '/inc/thumb.php')
//-- Если пришел прямой вызов файла, то сразу отрубаем его
if ($_SERVER['REQUEST_URI'] == '/inc/thumb.php')
die('No image');
$baseDir = str_replace("\\", "/", dirname(dirname(__FILE__)));
//-- Базовая папка
$baseDir = str_replace('\\', '/', dirname(dirname(__FILE__)));
if(file_exists($baseDir . $imagefile))
//-- Если файл существует, показываем его
if (file_exists($baseDir . $imagefile))
{
$img_data = @getimagesize($baseDir . $imagefile);
header('Content-Type:' . $img_data['mime'], true);
header("Last-Modified: " . gmdate("D, d M Y H:i:s".filemtime($baseDir . $imagefile))." GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s" . filemtime($baseDir . $imagefile)) . " GMT");
header("Content-Length: " . (string) filesize($baseDir . $imagefile), true);
readfile($baseDir . $imagefile);
exit;
}
@ -122,23 +149,40 @@
exit(0);
$matches = array();
preg_match('/-(r|c|f|t)(\d+)x(\d+)(r)*$/i', $nameParts[$countParts-2], $matches);
//-- Смотрим переданные параметры
preg_match('/-(r|c|f|t|s)(\d+)x(\d+)(r)*$/i', $nameParts[$countParts-2], $matches);
if (!isset($matches[0]))
//-- Если нет параметров, отдаем 404
if (! isset($matches[0]))
{
header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
exit(0);
}
if (isset($matches[4]))
$check = ltrim($matches[0], '-');
//-- Проверяем разрешен ли данный размер для миниатюры
if (! empty($allowedSize) && ! in_array($check, $allowedSize))
{
list($size, $method, $width, $height, $rotate) = $matches;
if (! in_array($check, $allowedAdmin))
{
header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
exit(0);
}
}
else
//-- Если есть параметр rotate
if (isset($matches[4]))
{
list($size, $method, $width, $height) = $matches;
$rotate = false;
list ($size, $method, $width, $height, $rotate) = $matches;
}
//-- Иначе
else
{
list ($size, $method, $width, $height) = $matches;
$rotate = false;
}
$nameParts[$countParts-2] = substr($nameParts[$countParts-2], 0, -strlen($size));
$imageName = implode('.', $nameParts);
@ -149,27 +193,30 @@
{
$l= "$imagePath/$imageName";
if(file_exists($l.'.tmp'))
if (file_exists($l . '.tmp'))
{
include_once(BASE_DIR.'/functions/func.common.php');