Browse Source

Fixes

pull/3/head
M@d D3n 7 years ago
parent
commit
c76d749554
  1. 2
      admin/blocks.php
  2. 2
      admin/dbsettings.php
  3. 5
      admin/docs.php
  4. 1
      admin/index.php
  5. 1
      admin/lang/bg/settings.txt
  6. 1
      admin/lang/cz/settings.txt
  7. 1
      admin/lang/pl/settings.txt
  8. 2
      admin/lang/ru/scripts.js
  9. 18
      admin/lang/ru/settings.txt
  10. 1
      admin/lang/ua/settings.txt
  11. 2
      admin/sysblocks.php
  12. 15
      admin/templates/blocks/form.tpl
  13. 97
      admin/templates/browser/browser_2frames.tpl
  14. 12
      admin/templates/documents/form.tpl
  15. 4
      admin/templates/js/main.js
  16. 37
      admin/templates/settings/settings_case.tpl
  17. 9
      admin/templates/settings/settings_main.tpl
  18. 13
      admin/templates/sysblocks/form_visual.tpl
  19. 12
      class/class.blocks.php
  20. 9
      class/class.core.php
  21. 2
      class/class.debug.php
  22. 19
      class/class.docs.php
  23. 8
      class/class.rubs.php
  24. 15
      class/class.settings.php
  25. 13
      class/class.sysblocks.php
  26. 6
      class/class.template.php
  27. 75
      functions/func.common.php
  28. 2
      functions/func.navigation.php
  29. 9
      functions/func.parserequest.php
  30. 509
      inc/config.php
  31. 1
      inc/init.php
  32. 2
      inc/sitemap.php
  33. 21
      index.php
  34. 6
      install/data_base.sql
  35. 64
      install/structure_base.sql
  36. 58
      lib/translate/Big_Text_Translate.php
  37. 119
      lib/translate/Yandex_Translate.php
  38. 1
      tmp/cache/templates/.htaccess
  39. 62
      tmp/update/sql.update.php

2
admin/blocks.php

@ -37,7 +37,6 @@
case 'new': case 'new':
if (check_permission_acp('blocks_edit')) if (check_permission_acp('blocks_edit'))
{ {
$_SESSION['use_editor'] = get_settings('use_editor');
$AVE_Block->blockNew(); $AVE_Block->blockNew();
} }
break; break;
@ -45,7 +44,6 @@
case 'edit': case 'edit':
if (check_permission_acp('blocks_edit')) if (check_permission_acp('blocks_edit'))
{ {
$_SESSION['use_editor'] = get_settings('use_editor');
$AVE_Block->blockEdit(isset($_REQUEST['id']) ? $_REQUEST['id'] : null); $AVE_Block->blockEdit(isset($_REQUEST['id']) ? $_REQUEST['id'] : null);
} }
break; break;

2
admin/dbsettings.php

@ -46,7 +46,7 @@
exit; exit;
case 'restore': case 'restore':
$AVE_DB_Service->databaseDumpImport(BASE_DIR . "/tmp/" . ATTACH_DIR . "/"); $AVE_DB_Service->databaseDumpImport(BASE_DIR . '/tmp/backup/');
break; break;
case 'download': case 'download':

5
admin/docs.php

@ -45,7 +45,6 @@
switch($_REQUEST['sub']) switch($_REQUEST['sub'])
{ {
case 'quicksave': case 'quicksave':
$_SESSION['use_editor'] = get_settings('use_editor');
$AVE_Document->quickSave(); $AVE_Document->quickSave();
break; break;
} }
@ -73,7 +72,6 @@
case 'edit': case 'edit':
if (check_permission_acp('document_view')) if (check_permission_acp('document_view'))
{ {
$_SESSION['use_editor'] = get_settings('use_editor');
if (isset($_REQUEST['sub']) && $_REQUEST['sub'] != 'save') if (isset($_REQUEST['sub']) && $_REQUEST['sub'] != 'save')
{ {
$AVE_Navigation->navigationAllItemList(); $AVE_Navigation->navigationAllItemList();
@ -86,7 +84,6 @@
case 'copy': case 'copy':
if (check_permission_acp('document_view')) if (check_permission_acp('document_view'))
{ {
$_SESSION['use_editor'] = get_settings('use_editor');
$AVE_Navigation->navigationAllItemList(); $AVE_Navigation->navigationAllItemList();
$AVE_Request->requestListFetch(); $AVE_Request->requestListFetch();
$AVE_Document->documentCopy((int)$_REQUEST['Id']); $AVE_Document->documentCopy((int)$_REQUEST['Id']);
@ -96,8 +93,6 @@
case 'new': case 'new':
if (check_permission_acp('document_view')) if (check_permission_acp('document_view'))
{ {
$_SESSION['use_editor'] = get_settings('use_editor');
if (isset($_REQUEST['sub']) && $_REQUEST['sub'] != 'save') if (isset($_REQUEST['sub']) && $_REQUEST['sub'] != 'save')
{ {
$AVE_Navigation->navigationAllItemList(); $AVE_Navigation->navigationAllItemList();

1
admin/index.php

@ -75,7 +75,6 @@
getInstaledModules(); getInstaledModules();
LoginModuleCheck(); LoginModuleCheck();
$AVE_Template->assign('use_editor', get_settings('use_editor'));
$AVE_Template->assign('user_avatar', getAvatar($_SESSION['user_id'],25)); $AVE_Template->assign('user_avatar', getAvatar($_SESSION['user_id'],25));
if (! isset($_REQUEST['do'])) $_REQUEST['do'] = ''; if (! isset($_REQUEST['do'])) $_REQUEST['do'] = '';

1
admin/lang/bg/settings.txt

@ -79,7 +79,6 @@ SETTINGS_MAIN_MAIL = "Настройки на пощата"
SETTINGS_MAIN_PAGENAVI = "Настройки на извеждането на пострничната навигация" SETTINGS_MAIN_PAGENAVI = "Настройки на извеждането на пострничната навигация"
SETTINGS_NAME = "Параметър" SETTINGS_NAME = "Параметър"
SETTINGS_VALUE = "Значение" SETTINGS_VALUE = "Значение"
SETTINGS_USE_EDITOR = "Редактор по подразбиране"
SETTINGS_EDITOR_CKEDITOR = "CKEditor" SETTINGS_EDITOR_CKEDITOR = "CKEditor"
SETTINGS_ERROR = "Грешка" SETTINGS_ERROR = "Грешка"

1
admin/lang/cz/settings.txt

@ -74,7 +74,6 @@ SETTINGS_MAIN_MAIL = "Nastavení pošty"
SETTINGS_MAIN_PAGENAVI = "Nastavení výstupu stránkové navigace" SETTINGS_MAIN_PAGENAVI = "Nastavení výstupu stránkové navigace"
SETTINGS_NAME = "Parametr" SETTINGS_NAME = "Parametr"
SETTINGS_VALUE = "Hodnota" SETTINGS_VALUE = "Hodnota"
SETTINGS_USE_EDITOR = "Výchozí editor"
SETTINGS_EDITOR_CKEDITOR = "CKEditor" SETTINGS_EDITOR_CKEDITOR = "CKEditor"
SETTINGS_ERROR = "Chyba" SETTINGS_ERROR = "Chyba"

1
admin/lang/pl/settings.txt

@ -71,7 +71,6 @@ SETTINGS_MAIN_MAIL = "Ustawienia poczty"
SETTINGS_MAIN_PAGENAVI = "Ustawienia wyjścia nawigacji stronicowania" SETTINGS_MAIN_PAGENAVI = "Ustawienia wyjścia nawigacji stronicowania"
SETTINGS_NAME = "Parametr" SETTINGS_NAME = "Parametr"
SETTINGS_VALUE = "Znaczenie" SETTINGS_VALUE = "Znaczenie"
SETTINGS_USE_EDITOR = "Domyślny edytor"
SETTINGS_EDITOR_CKEDITOR = "CKEditor" SETTINGS_EDITOR_CKEDITOR = "CKEditor"
SETTINGS_ERROR = "Błąd" SETTINGS_ERROR = "Błąd"
SETTINGS_SUCCESS = "Gotowe" SETTINGS_SUCCESS = "Gotowe"

2
admin/lang/ru/scripts.js

@ -12,6 +12,8 @@ var clearCountTitle = "Обнулить подневный счетчик док
var clearCountConfirm = "Вы уверены, что хотите обнулить подневный счетчик документов?"; var clearCountConfirm = "Вы уверены, что хотите обнулить подневный счетчик документов?";
var cacheShowTitle = "Показать размер кеша"; var cacheShowTitle = "Показать размер кеша";
var cacheShowConfirm = "Вы уверены, что хотите посмотреть размер кэша?<br />Это может занять какое-то время."; var cacheShowConfirm = "Вы уверены, что хотите посмотреть размер кэша?<br />Это может занять какое-то время.";
var docsShowTitle = "Показать количество документов";
var docsShowConfirm = "Вы уверены, что хотите посмотреть количество документов?<br />Это может занять какое-то время.";
var ajaxErrorStatus = "Нет соеденения.<br />Проверьте свое подключение."; var ajaxErrorStatus = "Нет соеденения.<br />Проверьте свое подключение.";
var ajaxErrorStatus404 = "Запрашиваемая страница не найдена. [404]"; var ajaxErrorStatus404 = "Запрашиваемая страница не найдена. [404]";
var ajaxErrorStatus401 = "Запрос не может быть выполнен.<br />Ошибка авторизации для выполнения этого запроса. [401]"; var ajaxErrorStatus401 = "Запрос не может быть выполнен.<br />Ошибка авторизации для выполнения этого запроса. [401]";

18
admin/lang/ru/settings.txt

@ -77,7 +77,6 @@ SETTINGS_MAIN_MAIL = "Настройки почты"
SETTINGS_MAIN_PAGENAVI = "Настройки вывода постраничной навигации" SETTINGS_MAIN_PAGENAVI = "Настройки вывода постраничной навигации"
SETTINGS_NAME = "Параметр" SETTINGS_NAME = "Параметр"
SETTINGS_VALUE = "Значение" SETTINGS_VALUE = "Значение"
SETTINGS_USE_EDITOR = "Редактор по умолчанию"
SETTINGS_EDITOR_CKEDITOR = "CKEditor" SETTINGS_EDITOR_CKEDITOR = "CKEditor"
SETTINGS_ERROR = "Ошибка" SETTINGS_ERROR = "Ошибка"
@ -145,3 +144,20 @@ SETTINGS_FILE_EDIT_H = "Редактирование файла"
SETTINGS_FILE_CONTENT = "Содержимое файла:" SETTINGS_FILE_CONTENT = "Содержимое файла:"
SETTINGS_FILE_ROBOTS = "Файл robots.txt" SETTINGS_FILE_ROBOTS = "Файл robots.txt"
SETTINGS_FILE_CUSTOM = "Файл func.custom.php" SETTINGS_FILE_CUSTOM = "Файл func.custom.php"
// v3.25
_const_auth = "Авторизация"
_const_url = "Формирование URL"
_const_themes = "Оформление"
_const_folders = "Папки"
_const_thumbs = "Генерация миниатюр"
_const_watermarks = "Водяные знаки"
_const_sessions = "Session и Cookie"
_const_dev = "Разработка"
_const_smarty = "Настройки Smarty"
_const_cache = "Кеширование SQL"
_const_compression = "Компрессия"
_const_memcached = "Memcached"
_const_request = "Запросы"
_const_database = "База данных"
_const_other = "Прочее"

1
admin/lang/ua/settings.txt

@ -74,7 +74,6 @@ SETTINGS_MAIN_MAIL = "Налаштування пошти"
SETTINGS_MAIN_PAGENAVI = "Налаштування виводу посторінкової навигації" SETTINGS_MAIN_PAGENAVI = "Налаштування виводу посторінкової навигації"
SETTINGS_NAME = "Параметр" SETTINGS_NAME = "Параметр"
SETTINGS_VALUE = "Значення" SETTINGS_VALUE = "Значення"
SETTINGS_USE_EDITOR = "Редактор по замовчуванню"
SETTINGS_EDITOR_CKEDITOR = "CKEditor" SETTINGS_EDITOR_CKEDITOR = "CKEditor"
SETTINGS_ERROR = "Помилка" SETTINGS_ERROR = "Помилка"

2
admin/sysblocks.php

@ -36,7 +36,6 @@
case 'new': case 'new':
if (check_permission_acp('sysblocks_edit')) if (check_permission_acp('sysblocks_edit'))
{ {
$_SESSION['use_editor'] = get_settings('use_editor');
$AVE_SysBlock->sys_blockNew(); $AVE_SysBlock->sys_blockNew();
} }
break; break;
@ -44,7 +43,6 @@
case 'edit': case 'edit':
if (check_permission_acp('sysblocks_edit')) if (check_permission_acp('sysblocks_edit'))
{ {
$_SESSION['use_editor'] = get_settings('use_editor');
$AVE_SysBlock->sys_blockEdit(isset($_REQUEST['id']) ? $_REQUEST['id'] : null); $AVE_SysBlock->sys_blockEdit(isset($_REQUEST['id']) ? $_REQUEST['id'] : null);
} }
break; break;

15
admin/templates/blocks/form.tpl

@ -5,10 +5,6 @@
var clipboard = new Clipboard('.copyBtn'); var clipboard = new Clipboard('.copyBtn');
</script> </script>
{if $smarty.session.use_editor == 0}
{/if}
<div class="title"> <div class="title">
<h5>{#BLOCK_INSERT_H#}</h5> <h5>{#BLOCK_INSERT_H#}</h5>
</div> </div>
@ -82,9 +78,7 @@
<tbody> <tbody>
<tr> <tr>
<td> <td>
{if $smarty.session.use_editor == 0}
{$block_text} {$block_text}
{/if}
</td> </td>
</tr> </tr>
</tbody> </tbody>
@ -170,7 +164,7 @@
{rdelim} {rdelim}
function SaveAjax () {ldelim} function SaveAjax () {ldelim}
{if $smarty.session.use_editor == '0'}if (window.CKEDITOR) for(var instanceName in CKEDITOR.instances) CKEDITOR.instances[instanceName].updateElement();{/if} if (window.CKEDITOR) for(var instanceName in CKEDITOR.instances) CKEDITOR.instances[instanceName].updateElement();
{if $smarty.request.action=='edit'} {if $smarty.request.action=='edit'}
$('#block').ajaxSubmit(sett_options); $('#block').ajaxSubmit(sett_options);
{else} {else}
@ -182,19 +176,18 @@
Mousetrap.bind(['ctrl+s', 'command+s'], function(event) {ldelim} Mousetrap.bind(['ctrl+s', 'command+s'], function(event) {ldelim}
event.preventDefault(); event.preventDefault();
{if $smarty.session.use_editor == '0'}if (window.CKEDITOR) for(var instanceName in CKEDITOR.instances) CKEDITOR.instances[instanceName].updateElement();{/if} if (window.CKEDITOR) for(var instanceName in CKEDITOR.instances) CKEDITOR.instances[instanceName].updateElement();
SaveAjax(); SaveAjax();
return false; return false;
{rdelim}); {rdelim});
$('.SaveEdit').click(function (event) {ldelim} $('.SaveEdit').click(function (event) {ldelim}
event.preventDefault(); event.preventDefault();
{if $smarty.session.use_editor == '0'}if (window.CKEDITOR) for(var instanceName in CKEDITOR.instances) CKEDITOR.instances[instanceName].updateElement();{/if} if (window.CKEDITOR) for(var instanceName in CKEDITOR.instances) CKEDITOR.instances[instanceName].updateElement();
SaveAjax(); SaveAjax();
return false; return false;
{rdelim}); {rdelim});
{if $smarty.session.use_editor == '0'}
{literal} {literal}
window.onload = function(){ window.onload = function(){
if (window.CKEDITOR) { if (window.CKEDITOR) {
@ -204,7 +197,7 @@
} }
} }
{/literal} {/literal}
{/if}
{rdelim}); {rdelim});
</script> </script>
{/if} {/if}

97
admin/templates/browser/browser_2frames.tpl

@ -124,8 +124,6 @@
<div class="fix"></div> <div class="fix"></div>
</div> </div>
{if $smarty.session.use_editor == 0}
<script type="text/javascript"> <script type="text/javascript">
function getUrlParam(paramName) function getUrlParam(paramName)
@ -217,101 +215,6 @@ function NewFolder() {ldelim}
</script> </script>
{else}
<script type="text/javascript">
function submitTheForm() {ldelim}
if (document.bForm.bFileName.value == '' && ('{$target}' != 'dir' && '{$target}' != 'img_importfeld' && '{$target}' != 'directory')) {ldelim}
alert('{#MAIN_MP_PLEASE_SELECT#}');
{rdelim}
else
{ldelim}
{if $target=='link'}
window.opener.document.getElementById('txtUrl').value = '/{$mediapath}' + document.bForm.bDirName.value + document.bForm.bFileName.value;
{elseif $target=='link_image'}
window.opener.document.getElementById('txtLnkUrl').value = '/{$mediapath}' + document.bForm.bDirName.value + document.bForm.bFileName.value;
window.opener.UpdatePreview();
{elseif $target=='txtUrl'}
window.opener.document.getElementById('txtUrl').value = '/{$mediapath}' + document.bForm.bDirName.value + document.bForm.bFileName.value;
window.opener.UpdatePreview();
{elseif $target=='navi'}
/*window.opener.document.getElementById('Link_{$smarty.request.id|escape}').value = '{$cppath}/{$mediapath}' + document.bForm.bDirName.value + document.bForm.bFileName.value;*/
window.opener.document.getElementById('{$smarty.request.id|escape}').value = '/{$mediapath}' + document.bForm.bDirName.value + document.bForm.bFileName.value;
/*window.opener.document.getElementById('Titel_{$smarty.request.id|escape}').value = document.bForm.bFileName.value;*/
{elseif $target=='img_feld' || $target_img=='img_feld'}
/*
window.opener.document.getElementById('img_feld__{$target_id}').value = '{$mediapath}' + document.bForm.bDirName.value + document.bForm.bFileName.value;
window.opener.document.getElementById('span_feld__{$target_id}').style.display = '';
window.opener.document.getElementById('_img_feld__{$target_id}').src = '../index.php?mode=f&width=128&height=128&thumb=/{$mediapath}' + document.bForm.bDirName.value + document.bForm.bFileName.value;
window.opener.document.getElementById('preview__{$target_id}').href = '../index.php?mode=f&width=128&height=128&thumb=/{$mediapath}' + document.bForm.bDirName.value + document.bForm.bFileName.value;
*/
window.opener.document.getElementById('img_feld__{$target_id}').value = '/{$mediapath}' + document.bForm.bDirName.value + document.bForm.bFileName.value;
window.opener.document.getElementById('_img_feld__{$target_id}').src = '../index.php?mode=f&width=128&height=128&thumb=/{$mediapath}' + document.bForm.bDirName.value + document.bForm.bFileName.value;
window.opener.$('.preview__{$target_id}').attr("href", '../index.php?mode=f&width=128&height=128&thumb=/{$mediapath}' + document.bForm.bDirName.value + document.bForm.bFileName.value);
{elseif $target!='' && $target_id!='' && $target_id!=null}
{if $target=='image'}
window.opener.$('#preview__{$target_id}').attr('src', '../index.php?mode=f&width=128&height=128&thumb=/{$mediapath}' + document.bForm.bDirName.value + document.bForm.bFileName.value);
window.opener.$('.preview__{$target_id}').attr('href', '/{$mediapath}' + document.bForm.bDirName.value + document.bForm.bFileName.value);
window.opener.document.getElementById('{$target}__{$target_id}').value = '/{$mediapath}' + document.bForm.bDirName.value + document.bForm.bFileName.value;
{/if}
{if $target=='dir'}
//1
var bdn = document.bForm.bDirName.value.split('/').reverse();
window.opener.document.getElementById('{$target}__{$target_id}').value = bdn[1];
{elseif $target=='img_importfeld'}
//2
var bdn = document.bForm.bDirName.value.split('/').reverse();
window.opener.document.getElementById('{$target}__{$target_id}').value = '/{$mediapath}/'+bdn[1]+'/';
{else}
//3
window.opener.document.getElementById('{$target}__{$target_id}').value = '/{$mediapath}' + document.bForm.bDirName.value + document.bForm.bFileName.value;
{/if}
{if $target=='directory'}
window.opener.$.fn.myPlugin('/{$mediapath}' + document.bForm.bDirName.value, {$target_id});
{/if}
{elseif $target!='all'}
{if $smarty.request.fillout=='dl'}
window.opener.document.getElementById('{$smarty.request.target|escape}').value = '/{$mediapath}' + document.bForm.bDirName.value + document.bForm.bFileName.value;
{else}
window.opener.updatePreview();
{/if}
{/if}
setTimeout("self.close();", 100);
{rdelim}
{rdelim}
function NewFolder() {ldelim}
var title = '{#MAIN_MP_CREATE_FOLDER#}';
var text = '{#MAIN_ADD_FOLDER#}';
jPrompt(text, '', title, function(b){ldelim}
if (b){ldelim}
$.alerts._overlay('hide');
$.alerts._overlay('show');
parent.frames['zf'].location.href='index.php?do=browser&type={$smarty.request.type|escape}&target={$smarty.request.target|escape}&action=list&dir=' + document.bForm.bDirName.value + '&newdir=' + b;
$.alerts._overlay('hide');
{rdelim}
else
{ldelim}
$.alerts._overlay('hide');
$.jGrowl('{#MAIN_NO_ADD_FOLDER#}');
{rdelim}
{rdelim}
);
{rdelim}
</script>
{/if}
<!-- Footer --> <!-- Footer -->
<div id="footer"> <div id="footer">
<div class="wrapper"> <div class="wrapper">

12
admin/templates/documents/form.tpl

@ -1,8 +1,6 @@
{if $smarty.session.use_editor == 0}
<script> <script>
CKEDitor_loaded = false; CKEDitor_loaded = false;
</script> </script>
{/if}
<script type="text/javascript"> <script type="text/javascript">
@ -766,7 +764,7 @@ $(document).ready(function(){ldelim}
{rdelim} {rdelim}
function SaveAjax () {ldelim} function SaveAjax () {ldelim}
{if $smarty.session.use_editor == '0'}if (window.CKEDITOR) for(var instanceName in CKEDITOR.instances) CKEDITOR.instances[instanceName].updateElement();{/if} if (window.CKEDITOR) for(var instanceName in CKEDITOR.instances) CKEDITOR.instances[instanceName].updateElement();
{if $smarty.request.action=='edit'} {if $smarty.request.action=='edit'}
$('#formDoc').ajaxSubmit(sett_options); $('#formDoc').ajaxSubmit(sett_options);
{else} {else}
@ -786,14 +784,14 @@ $(document).ready(function(){ldelim}
Mousetrap.bind(['ctrl+s', 'command+s'], function(event) {ldelim} Mousetrap.bind(['ctrl+s', 'command+s'], function(event) {ldelim}
event.preventDefault(); event.preventDefault();
{if $smarty.session.use_editor == '0'}if (window.CKEDITOR) for(var instanceName in CKEDITOR.instances) CKEDITOR.instances[instanceName].updateElement();{/if} if (window.CKEDITOR) for(var instanceName in CKEDITOR.instances) CKEDITOR.instances[instanceName].updateElement();
SaveAjax(); SaveAjax();
return false; return false;
{rdelim}); {rdelim});
$('.SaveEdit').click(function (event) {ldelim} $('.SaveEdit').click(function (event) {ldelim}
event.preventDefault(); event.preventDefault();
{if $smarty.session.use_editor == '0'}if (window.CKEDITOR) for(var instanceName in CKEDITOR.instances) CKEDITOR.instances[instanceName].updateElement();{/if} if (window.CKEDITOR) for(var instanceName in CKEDITOR.instances) CKEDITOR.instances[instanceName].updateElement();
SaveAjax(); SaveAjax();
return false; return false;
{rdelim}); {rdelim});
@ -803,7 +801,7 @@ $(document).ready(function(){ldelim}
docLook(); docLook();
return false; return false;
{rdelim}); {rdelim});
{if $smarty.session.use_editor == '0'}
{literal} {literal}
window.onload = function(){ window.onload = function(){
if (window.CKEDITOR) { if (window.CKEDITOR) {
@ -813,6 +811,6 @@ $(document).ready(function(){ldelim}
} }
} }
{/literal} {/literal}
{/if}
{rdelim}); {rdelim});
</script> </script>

4
admin/templates/js/main.js

@ -683,8 +683,8 @@ var AveAdmin = {
$('.showDocs').click(function(event, x) { $('.showDocs').click(function(event, x) {
event.preventDefault(); event.preventDefault();
var title = cacheShowTitle; var title = docsShowTitle;
var confirm = cacheShowConfirm; var confirm = docsShowConfirm;
var rubric_id = $(this).attr('data-rubric-id'); var rubric_id = $(this).attr('data-rubric-id');

37
admin/templates/settings/settings_case.tpl

@ -39,10 +39,21 @@
<li><a href="index.php?do=settings&action=paginations&cp={$sess}">{#SETTINGS_PAGINATION#}</a></li> <li><a href="index.php?do=settings&action=paginations&cp={$sess}">{#SETTINGS_PAGINATION#}</a></li>
</ul> </ul>
</div>
</fieldset>
{foreach from=$CMS_CONFIG item=category key=type}
{assign var="header" value=$type|strtolower}
<div class="widget first">
<div class="head">
<h5 class="iFrames">{$smarty.config.$header}</h5>
</div>
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic"> <table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
<col width="300" /> <col width="300" />
<col /> <col />
<thead> <thead>
<tr> <tr>
<td>{#SETTINGS_NAME#}</td> <td>{#SETTINGS_NAME#}</td>
@ -50,12 +61,15 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{foreach from=$CMS_CONFIG item=def key=_var} {foreach from=$category item=def key=_var}
<tr> <tr>
<td>{$def.DESCR} <br /><small>{$_var}</small></td> <td>
<strong><small>{$_var}</small></strong><br />
{$def.DESCR}
</td>
<td> <td>
{if $def.TYPE=="dropdown"} {if $def.TYPE=="dropdown"}
<select class="mousetrap" name="GLOB[{$_var}]" style="width: 250px;"> <select class="mousetrap" name="GLOB[{$type}][{$_var}]" style="width: 250px;">
{foreach from=$def.VARIANT item=elem} {foreach from=$def.VARIANT item=elem}
<option value="{$elem}" <option value="{$elem}"
{php} {php}
@ -66,20 +80,23 @@
</select> </select>
{/if} {/if}
{if $def.TYPE=="string"} {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" autocomplete="off" /> <input class="mousetrap" name="GLOB[{$type}][{$_var}]" type="text" id="{$_var}" style="width:550px" value="{php} echo(constant($this->_tpl_vars['_var']));{/php}" size="100" autocomplete="off" />
{/if} {/if}
{if $def.TYPE=="integer"} {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" autocomplete="off" /> <input class="mousetrap" name="GLOB[{$type}][{$_var}]" type="text" id="{$_var}" style="width:550px" value="{php} echo(constant($this->_tpl_vars['_var']));{/php}" size="100" autocomplete="off" />
{/if} {/if}
{if $def.TYPE=="bool"} {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> <input type="radio" name="GLOB[{$type}][{$_var}]" value="1" {php} echo(constant($this->_tpl_vars['_var']) ? 'checked' : "");{/php} /><label style="cursor: pointer;">{#SETTINGS_YES#}</label>
<input type="radio" name="GLOB[{$_var}]" value="0" {php} echo(constant($this->_tpl_vars['_var']) ? '' : "checked");{/php} /><label style="cursor: pointer;">{#SETTINGS_NO#}</label> <input type="radio" name="GLOB[{$type}][{$_var}]" value="0" {php} echo(constant($this->_tpl_vars['_var']) ? '' : "checked");{/php} /><label style="cursor: pointer;">{#SETTINGS_NO#}</label>
{/if} {/if}
</td> </td>
</tr> </tr>
{/foreach} {/foreach}
</tbody> </tbody>
</table> </table>
</div>
{/foreach}
<div class="rowElem" id="saveBtn"> <div class="rowElem" id="saveBtn">
<div class="saveBtn"> <div class="saveBtn">
@ -87,10 +104,6 @@
</div> </div>
</div> </div>
</div>
</fieldset>
</form> </form>
<script language="javascript"> <script language="javascript">

9
admin/templates/settings/settings_main.tpl

@ -108,15 +108,6 @@
</td> </td>
</tr> </tr>
<tr>
<td>{#SETTINGS_USE_EDITOR#}</td>
<td>
<div class="pr12">
<input type="radio" name="use_editor" value="0"{if $row.use_editor==0} checked{/if} /><label style="cursor: pointer;">{#SETTINGS_EDITOR_CKEDITOR#}</label>
</div>
</td>
</tr>
<tr> <tr>
<td>{#SETTINGS_ERROR_PAGE#}</td> <td>{#SETTINGS_ERROR_PAGE#}</td>
<td> <td>

13
admin/templates/sysblocks/form_visual.tpl

@ -5,10 +5,6 @@
var clipboard = new Clipboard('.copyBtn'); var clipboard = new Clipboard('.copyBtn');
</script> </script>
{if $smarty.session.use_editor == 0}
{/if}
<div class="title"> <div class="title">
<h5>{#SYSBLOCK_INSERT_H#}</h5> <h5>{#SYSBLOCK_INSERT_H#}</h5>
</div> </div>
@ -187,7 +183,7 @@
{rdelim} {rdelim}
function SaveAjax () {ldelim} function SaveAjax () {ldelim}
{if $smarty.session.use_editor == '0'}if (window.CKEDITOR) for(var instanceName in CKEDITOR.instances) CKEDITOR.instances[instanceName].updateElement();{/if} if (window.CKEDITOR) for(var instanceName in CKEDITOR.instances) CKEDITOR.instances[instanceName].updateElement();
{if $smarty.request.action=='edit'} {if $smarty.request.action=='edit'}
$('#sysblock').ajaxSubmit(sett_options); $('#sysblock').ajaxSubmit(sett_options);
{else} {else}
@ -199,19 +195,18 @@
Mousetrap.bind(['ctrl+s', 'command+s'], function(event) {ldelim} Mousetrap.bind(['ctrl+s', 'command+s'], function(event) {ldelim}
event.preventDefault(); event.preventDefault();
{if $smarty.session.use_editor == '0'}if (window.CKEDITOR) for(var instanceName in CKEDITOR.instances) CKEDITOR.instances[instanceName].updateElement();{/if} if (window.CKEDITOR) for(var instanceName in CKEDITOR.instances) CKEDITOR.instances[instanceName].updateElement();
SaveAjax(); SaveAjax();
return false; return false;
{rdelim}); {rdelim});
$('.SaveEdit').click(function (event) {ldelim} $('.SaveEdit').click(function (event) {ldelim}
event.preventDefault(); event.preventDefault();
{if $smarty.session.use_editor == '0'}if (window.CKEDITOR) for(var instanceName in CKEDITOR.instances) CKEDITOR.instances[instanceName].updateElement();{/if} if (window.CKEDITOR) for(var instanceName in CKEDITOR.instances) CKEDITOR.instances[instanceName].updateElement();
SaveAjax(); SaveAjax();
return false; return false;
{rdelim}); {rdelim});
{if $smarty.session.use_editor == '0'}
{literal} {literal}
window.onload = function(){ window.onload = function(){
if (window.CKEDITOR) { if (window.CKEDITOR) {
@ -221,7 +216,7 @@
} }
} }
{/literal} {/literal}
{/if}
{rdelim}); {rdelim});
</script> </script>
{/if} {/if}

12
class/class.blocks.php

@ -171,10 +171,6 @@
$AVE_Template->assign('sid', $block_id); $AVE_Template->assign('sid', $block_id);
switch ($_SESSION['use_editor'])
{
case '0': // CKEditor
case '1':
$oCKeditor = new CKeditor(); $oCKeditor = new CKeditor();
$oCKeditor->returnOutput = true; $oCKeditor->returnOutput = true;
$oCKeditor->config['customConfig'] = 'block.js'; $oCKeditor->config['customConfig'] = 'block.js';
@ -182,8 +178,6 @@
$oCKeditor->config['height'] = 400; $oCKeditor->config['height'] = 400;
$config = array(); $config = array();
$row['block_text'] = $oCKeditor->editor('block_text', $row['block_text'], $config); $row['block_text'] = $oCKeditor->editor('block_text', $row['block_text'], $config);
break;
}
$AVE_Template->assign($row); $AVE_Template->assign($row);
$AVE_Template->assign('content', $AVE_Template->fetch('blocks/form.tpl')); $AVE_Template->assign('content', $AVE_Template->fetch('blocks/form.tpl'));
@ -202,10 +196,6 @@
$AVE_Template->assign('sid', 0); $AVE_Template->assign('sid', 0);
switch ($_SESSION['use_editor'])
{
case '0': // CKEditor
case '1':
$oCKeditor = new CKeditor(); $oCKeditor = new CKeditor();
$oCKeditor->returnOutput = true; $oCKeditor->returnOutput = true;
$oCKeditor->config['customConfig'] = 'block.js'; $oCKeditor->config['customConfig'] = 'block.js';
@ -213,8 +203,6 @@
$oCKeditor->config['height'] = 400; $oCKeditor->config['height'] = 400;
$config = array(); $config = array();
$row['block_text'] = $oCKeditor->editor('block_text', $row['block_text'], $config); $row['block_text'] = $oCKeditor->editor('block_text', $row['block_text'], $config);
break;
}
$AVE_Template->assign($row); $AVE_Template->assign($row);
$AVE_Template->assign('content', $AVE_Template->fetch('blocks/form.tpl')); $AVE_Template->assign('content', $AVE_Template->fetch('blocks/form.tpl'));

9
class/class.core.php

@ -672,8 +672,17 @@
global $AVE_DB, $AVE_Template; global $AVE_DB, $AVE_Template;
// Проверяем теги полей в шаблоне рубрики на условие != '' // Проверяем теги полей в шаблоне рубрики на условие != ''
if (defined('USE_GET_FIELDS') && USE_GET_FIELDS)
{
$main_content = preg_replace("/\[tag:if_notempty:fld:([a-zA-Z0-9-_]+)\]/u", '<'.'?php if((htmlspecialchars(get_field(\'$1\'), ENT_QUOTES)) != \'\') { '.'?'.'>', $rubTmpl);
$main_content = preg_replace("/\[tag:if_empty:fld:([a-zA-Z0-9-_]+)\]/u", '<'.'?php if((htmlspecialchars(get_field(\'$1\'), ENT_QUOTES)) == \'\') { '.'?'.'>', $main_content);
}
else
{
$main_content = preg_replace("/\[tag:if_notempty:fld:([a-zA-Z0-9-_]+)\]/u", '<'.'?php if((htmlspecialchars(document_get_field(\'$1\'), ENT_QUOTES)) != \'\') { '.'?'.'>', $rubTmpl); $main_content = preg_replace("/\[tag:if_notempty:fld:([a-zA-Z0-9-_]+)\]/u", '<'.'?php if((htmlspecialchars(document_get_field(\'$1\'), ENT_QUOTES)) != \'\') { '.'?'.'>', $rubTmpl);
$main_content = preg_replace("/\[tag:if_empty:fld:([a-zA-Z0-9-_]+)\]/u", '<'.'?php if((htmlspecialchars(document_get_field(\'$1\'), ENT_QUOTES)) == \'\') { '.'?'.'>', $main_content); $main_content = preg_replace("/\[tag:if_empty:fld:([a-zA-Z0-9-_]+)\]/u", '<'.'?php if((htmlspecialchars(document_get_field(\'$1\'), ENT_QUOTES)) == \'\') { '.'?'.'>', $main_content);
}
$main_content = str_replace('[tag:if:else]', '<?php }else{ ?>', $main_content); $main_content = str_replace('[tag:if:else]', '<?php }else{ ?>', $main_content);
$main_content = str_replace('[tag:/if]', '<?php } ?>', $main_content); $main_content = str_replace('[tag:/if]', '<?php } ?>', $main_content);

2
class/class.debug.php

@ -719,7 +719,7 @@
$out .= PHP_EOL; $out .= PHP_EOL;
$out .= '</div>'; $out .= '</div>';
echo $out; return $out;
} }
} }
?> ?>

19
class/class.docs.php

@ -1736,15 +1736,6 @@
} }
} }
// Очищаем кэш шаблона
$AVE_DB->Query("
DELETE
FROM
" . PREFIX . "_rubric_template_cache
WHERE
doc_id = '" . $document_id . "'
");
$field_module = isset($data['field_module']) $field_module = isset($data['field_module'])
? $data['field_module'] ? $data['field_module']
: ''; : '';
@ -2840,14 +2831,6 @@
f2.document_id = f1.document_id f2.document_id = f1.document_id
"); ");
// Очищаем кэш шаблона
$AVE_DB->Query("
DELETE FROM
" . PREFIX . "_rubric_template_cache
WHERE
doc_id = '" . $document_id . "'
");
$hash_url = md5($row->document_alias); $hash_url = md5($row->document_alias);
// Чистим кеш // Чистим кеш
@ -3958,7 +3941,7 @@
$alias = empty($_REQUEST['alias']) ? '' : prepare_url($_REQUEST['alias']); $alias = empty($_REQUEST['alias']) ? '' : prepare_url($_REQUEST['alias']);
$prefix = empty($_REQUEST['prefix']) ? '' : prepare_url($_REQUEST['prefix']); $prefix = empty($_REQUEST['prefix']) ? '' : prepare_url($_REQUEST['prefix']);
$title = empty($_REQUEST['title']) ? '' : $_REQUEST['title']; $title = empty($_REQUEST['title']) ? '' : $_REQUEST['title'];
$title = (URL_YANDEX==true) ? y_translate($title) : prepare_url($title); $title = prepare_url($title);
if ($alias != $title && $alias != trim($prefix . '/' . $title, '/')) if ($alias != $title && $alias != trim($prefix . '/' . $title, '/'))
$alias = trim($alias . '/' . $title, '/'); $alias = trim($alias . '/' . $title, '/');

8
class/class.rubs.php

@ -524,14 +524,6 @@
rubric_id = '" . $rubric_id . "' rubric_id = '" . $rubric_id . "'
"); ");
// Очищаем кэш шаблона документов рубрики
$AVE_DB->Query("
DELETE FROM
" . PREFIX . "_rubric_template_cache
WHERE
rub_id = '" . $rubric_id . "'
");
// Удалить КЕШ // Удалить КЕШ
$AVE_DB->clearCache('rub_' . $rubric_id); $AVE_DB->clearCache('rub_' . $rubric_id);

15
class/class.settings.php

@ -72,9 +72,11 @@
{ {
$set = '<?php' . "\r\n\r\n"; $set = '<?php' . "\r\n\r\n";
foreach($_REQUEST['GLOB'] as $k => $v) foreach($_REQUEST['GLOB'] as $key => $type)
{ {
switch ($GLOBALS['CMS_CONFIG'][$k]['TYPE']) foreach($type as $k => $v)
{
switch ($GLOBALS['CMS_CONFIG'][$key][$k]['TYPE'])
{ {
case 'bool' : case 'bool' :
$v = $v ? 'true' : 'false'; $v = $v ? 'true' : 'false';
@ -97,8 +99,9 @@
break; break;
} }
$set .= "//" . $GLOBALS['CMS_CONFIG'][$k]['DESCR'] . "\r\n"; $set .= "\t" . "// " . $GLOBALS['CMS_CONFIG'][$key][$k]['DESCR'] . "\r\n";
$set .= "define('" . $k . "', " . $v . ");\r\n\r\n"; $set .= "\t" . "define('" . $k . "', " . $v . ");\r\n\r\n";
}
} }
$set .= '?>'; $set .= '?>';
@ -205,8 +208,7 @@
bread_link_box_last = '" . ($_REQUEST['bread_link_box_last'] != 0 ? 1 : 0) . "', bread_link_box_last = '" . ($_REQUEST['bread_link_box_last'] != 0 ? 1 : 0) . "',
date_format = '" . $_REQUEST['date_format'] . "', date_format = '" . $_REQUEST['date_format'] . "',
time_format = '" . $_REQUEST['time_format'] . "', time_format = '" . $_REQUEST['time_format'] . "',
use_doctime = '" . intval($_REQUEST['use_doctime']) . "', use_doctime = '" . intval($_REQUEST['use_doctime']) . "'
use_editor = '" . intval($_REQUEST['use_editor']) . "'
WHERE WHERE
Id = 1 Id = 1
"); ");
@ -221,7 +223,6 @@
{ {
$this->clearSettingsCache(); $this->clearSettingsCache();
$_SESSION['use_editor'] = intval($_REQUEST['use_editor']);
$message = $AVE_Template->get_config_vars('SETTINGS_SAVED'); $message = $AVE_Template->get_config_vars('SETTINGS_SAVED');
$header = $AVE_Template->get_config_vars('SETTINGS_SUCCESS'); $header = $AVE_Template->get_config_vars('SETTINGS_SUCCESS');
$theme = 'accept'; $theme = 'accept';

13
class/class.sysblocks.php

@ -180,10 +180,6 @@
if ((isset($_REQUEST['sysblock_visual']) && $_REQUEST['sysblock_visual'] == 1) || $row['sysblock_visual'] == 1) if ((isset($_REQUEST['sysblock_visual']) && $_REQUEST['sysblock_visual'] == 1) || $row['sysblock_visual'] == 1)
{ {
switch ($_SESSION['use_editor'])
{
case '0': // CKEditor
case '1':
$oCKeditor = new CKeditor(); $oCKeditor = new CKeditor();
$oCKeditor->returnOutput = true; $oCKeditor->returnOutput = true;
$oCKeditor->config['customConfig'] = 'sysblock.js'; $oCKeditor->config['customConfig'] = 'sysblock.js';
@ -191,8 +187,7 @@
$oCKeditor->config['height'] = 400; $oCKeditor->config['height'] = 400;
$config = array(); $config = array();
$row['sysblock_text'] = $oCKeditor->editor('sysblock_text', $row['sysblock_text'], $config); $row['sysblock_text'] = $oCKeditor->editor('sysblock_text', $row['sysblock_text'], $config);
break;
}
$AVE_Template->assign($row); $AVE_Template->assign($row);
$AVE_Template->assign('content', $AVE_Template->fetch('sysblocks/form_visual.tpl')); $AVE_Template->assign('content', $AVE_Template->fetch('sysblocks/form_visual.tpl'));
} }
@ -219,10 +214,6 @@
if ((isset($_REQUEST['sysblock_visual']) && $_REQUEST['sysblock_visual'] == 1) || $row['sysblock_visual'] == 1) if ((isset($_REQUEST['sysblock_visual']) && $_REQUEST['sysblock_visual'] == 1) || $row['sysblock_visual'] == 1)
{ {
switch ($_SESSION['use_editor'])
{
case '0': // CKEditor
case '1':
$oCKeditor = new CKeditor(); $oCKeditor = new CKeditor();
$oCKeditor->returnOutput = true; $oCKeditor->returnOutput = true;
$oCKeditor->config['customConfig'] = 'sysblock.js'; $oCKeditor->config['customConfig'] = 'sysblock.js';
@ -230,8 +221,6 @@
$oCKeditor->config['height'] = 400; $oCKeditor->config['height'] = 400;
$config = array(); $config = array();
$row['sysblock_text'] = $oCKeditor->editor('sysblock_text', $row['sysblock_text'], $config); $row['sysblock_text'] = $oCKeditor->editor('sysblock_text', $row['sysblock_text'], $config);
break;
}
$AVE_Template->assign($row); $AVE_Template->assign($row);
$AVE_Template->assign('content', $AVE_Template->fetch('sysblocks/form_visual.tpl')); $AVE_Template->assign('content', $AVE_Template->fetch('sysblocks/form_visual.tpl'));

6
class/class.template.php

@ -252,12 +252,6 @@
$m->flush(); $m->flush();
} }
// Очищаем кэш шаблона документов рубрики
$AVE_DB->Query("
DELETE FROM
" . PREFIX . "_rubric_template_cache
");
$message[] = $AVE_Template->get_config_vars('TEMPLATES_CACHE_SUCCESS'); $message[] = $AVE_Template->get_config_vars('TEMPLATES_CACHE_SUCCESS');
reportLog($AVE_Template->get_config_vars('TEMPLATES_CACHE_SUCCESS_LOG')); reportLog($AVE_Template->get_config_vars('TEMPLATES_CACHE_SUCCESS_LOG'));

75
functions/func.common.php

@ -399,32 +399,6 @@
} }
/**
* Подготовка текста через API Яндекса (перевод с русского на английский)
*
* @param string $text
* @return string
*/
function y_translate($text)
{
include_once BASE_DIR.'/lib/translate/Yandex_Translate.php';
$translator = new Yandex_Translate();
$translatedText = $translator->yandexTranslate('ru', 'en', $text);
$translatedText = strtolower($translatedText);
$translatedText = preg_replace(
array('/^[\/-]+|[\/-]+$|^[\/_]+|[\/_]+$|[^\.a-zа-яеёA-ZА-ЯЕЁ0-9\/_-]/u', '/--+/', '/-*\/+-*/', '/\/\/+/'),
array('-', '-', '/', '/'),
$translatedText
);
return $translatedText;
}
/** /**
* Подготовка URL * Подготовка URL
* *
@ -950,7 +924,7 @@
/** /**
* Функция поиска ключевых слов * Функция поиска тегов
* *
* @param string $string - запрос * @param string $string - запрос
* @return string * @return string
@ -1078,7 +1052,8 @@
* *
* @return string * @return string
*/ */
function compress_htlm($data) { function compress_htlm($data)
{
$search = array( $search = array(
'/\>[^\S ]+/s', // strip whitespaces after tags, except space '/\>[^\S ]+/s', // strip whitespaces after tags, except space
@ -1109,46 +1084,48 @@
{ {
global $AVE_DB; global $AVE_DB;
$Gzip = strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false; //-- Вывод статистики загрузки и запросов SQL (только для администраторов)
if (! defined('ONLYCONTENT') && UGROUP == 1)
if (HTML_COMPRESSION)
$data = compress_htlm($data);
if ($Gzip && GZIP_COMPRESSION)
{ {
if ( if (defined('PROFILING') && PROFILING == 'light')
! defined('ONLYCONTENT')
&&
UGROUP == 1
&&
defined('PROFILING') && PROFILING
)
{ {
$data .= "\r\n" . "<!-- ------ Time generation: ".Debug::getStatistic('time')." sec ----- -->"; $data .= "\r\n" . "<!-- ------ Time generation: ".Debug::getStatistic('time')." sec ----- -->";
$data .= "\r\n" . "<!-- ------ Memory usage: ".Debug::getStatistic('memory')." ----- -->"; $data .= "\r\n" . "<!-- ------ Memory usage: ".Debug::getStatistic('memory')." ----- -->";
$data .= "\r\n" . "<!-- ------ Memory peak usage: ".Debug::getStatistic('peak')." ----- -->"; $data .= "\r\n" . "<!-- ------ Memory peak usage: ".Debug::getStatistic('peak')." ----- -->";
if (defined('SQL_PROFILING') && SQL_PROFILING)
$data .= "\r\n" . "<!-- ------ SQL Queries: ".$AVE_DB->DBProfilesGet('count')." for ".$AVE_DB->DBProfilesGet('time')." sec ----- -->"; $data .= "\r\n" . "<!-- ------ SQL Queries: ".$AVE_DB->DBProfilesGet('count')." for ".$AVE_DB->DBProfilesGet('time')." sec ----- -->";
} }
else if (defined('PROFILING') && PROFILING == 'full')
$content = gzencode($data, 9); $data .= Debug::displayInfo();
header ('Content-Encoding: gzip');
} }
else
$Gzip = strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false;
if (defined('HTML_COMPRESSION') && HTML_COMPRESSION)
$data = compress_htlm($data);
if ($Gzip && (defined('GZIP_COMPRESSION') && GZIP_COMPRESSION))
{ {
$content = $data; $data = gzencode($data, 9);
header ('Content-Encoding: gzip');
} }
header ('X-Engine: AVE.cms');
header ('X-Engine-Copyright: 2007-' . date('Y') . ' (c) AVE.cms');
header ('X-Engine-Site: https://www.ave-cms.ru');
header ('Content-Type: text/html; charset=utf-8'); header ('Content-Type: text/html; charset=utf-8');
header ('Cache-Control: must-revalidate'); header ('Cache-Control: must-revalidate');
if (OUTPUT_EXPIRE) if (defined('OUTPUT_EXPIRE') && OUTPUT_EXPIRE)
{ {
$expire = 'Expires: ' . gmdate ("D, d M Y H:i:s", time() + OUTPUT_EXPIRE_OFFSET) . ' GMT'; $expire = 'Expires: ' . gmdate ("D, d M Y H:i:s", time() + OUTPUT_EXPIRE_OFFSET) . ' GMT';
header ($expire); header ($expire);
} }
header ('Content-Length: ' . strlen($content)); header ('Content-Length: ' . strlen($data));
header ('Vary: Accept-Encoding'); header ('Vary: Accept-Encoding');
echo $content; echo $data;
} }

2
functions/func.navigation.php

@ -54,7 +54,7 @@
if (defined('DEV_MODE') AND DEV_MODE || $expnad_ext != 1) if (defined('DEV_MODE') AND DEV_MODE || $expnad_ext != 1)
$cache_file = null; $cache_file = null;
if (! file_exists(dirname($cache_file))) if (! is_dir(dirname($cache_file)))
mkdir(dirname($cache_file), 0766, true); mkdir(dirname($cache_file), 0766, true);
// получаем меню навигации по id, // получаем меню навигации по id,

9
functions/func.parserequest.php

@ -418,9 +418,18 @@
$cachefile_docid = null; $cachefile_docid = null;
if (! file_exists($cachefile_docid)) if (! file_exists($cachefile_docid))
{
if (defined('USE_GET_FIELDS') && USE_GET_FIELDS)
{
$template = preg_replace("/\[tag:if_notempty:rfld:([a-zA-Z0-9-_]+)]\[(more|esc|img|strip|[0-9-]+)]/u", '<'.'?php if((htmlspecialchars(get_field(\'$1\', '.$row->Id.'), ENT_QUOTES)) != \'\') { '.'?'.'>', $template);
$template = preg_replace("/\[tag:if_empty:rfld:([a-zA-Z0-9-_]+)]\[(more|esc|img|strip|[0-9-]+)]/u", '<'.'?php if((htmlspecialchars(get_field(\'$1\', '.$row->Id.'), ENT_QUOTES)) == \'\') { '.'?'.'>', $template);
}
else
{ {
$template = preg_replace("/\[tag:if_notempty:rfld:([a-zA-Z0-9-_]+)]\[(more|esc|img|strip|[0-9-]+)]/u", '<'.'?php if((htmlspecialchars(request_get_document_field(\'$1\', '.$row->Id.', \'$2\', '.(int)$row->rubric_id.'), ENT_QUOTES)) != \'\') { '.'?'.'>', $template); $template = preg_replace("/\[tag:if_notempty:rfld:([a-zA-Z0-9-_]+)]\[(more|esc|img|strip|[0-9-]+)]/u", '<'.'?php if((htmlspecialchars(request_get_document_field(\'$1\', '.$row->Id.', \'$2\', '.(int)$row->rubric_id.'), ENT_QUOTES)) != \'\') { '.'?'.'>', $template);
$template = preg_replace("/\[tag:if_empty:rfld:([a-zA-Z0-9-_]+)]\[(more|esc|img|strip|[0-9-]+)]/u", '<'.'?php if((htmlspecialchars(request_get_document_field(\'$1\', '.$row->Id.', \'$2\', '.(int)$row->rubric_id.'), ENT_QUOTES)) == \'\') { '.'?'.'>', $template); $template = preg_replace("/\[tag:if_empty:rfld:([a-zA-Z0-9-_]+)]\[(more|esc|img|strip|[0-9-]+)]/u", '<'.'?php if((htmlspecialchars(request_get_document_field(\'$1\', '.$row->Id.', \'$2\', '.(int)$row->rubric_id.'), ENT_QUOTES)) == \'\') { '.'?'.'>', $template);
}
$template = str_replace('[tag:if:else]', '<?php }else{ ?>', $template); $template = str_replace('[tag:if:else]', '<?php }else{ ?>', $template);
$template = str_replace('[tag:/if]', '<?php } ?>', $template); $template = str_replace('[tag:/if]', '<?php } ?>', $template);

509
inc/config.php

@ -15,27 +15,13 @@
@define('APP_VERSION', '3.25'); @define('APP_VERSION', '3.25');
@define('APP_INFO', '<a target="_blank" href="https://www.ave-cms.ru/">Ave-Cms.Ru</a> '.'&copy; 2007-' . date('Y')); @define('APP_INFO', '<a target="_blank" href="https://www.ave-cms.ru/">Ave-Cms.Ru</a> '.'&copy; 2007-' . date('Y'));
$GLOBALS['CMS_CONFIG']['USER_IP'] = array('DESCR' =>'Использовать IP для автологина на сайте','default'=>false,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['REWRITE_MODE'] = array('DESCR' =>'Использовать ЧПУ Адреса вида index.php будут преобразованы в /home/','default'=>true,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['TRANSLIT_URL'] = array('DESCR' =>'Использовать транслит в ЧПУ адреса вида /страница/ поменяються на /page/','default'=>true,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['URL_SUFF'] = array('DESCR' =>'Cуффикс ЧПУ','default'=>'','TYPE'=>'string','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['URL_YANDEX'] = array('DESCR' =>'Использовать для формирования ЧПУ API Яндекс Переводчика','default'=>false,'TYPE'=>'bool','VARIANT'=>'');
$themes = array(); $themes = array();
foreach (glob(dirname(dirname(__FILE__)) . '/templates/*') as $filename) foreach (glob(dirname(dirname(__FILE__)) . '/templates/*') AS $filename)
if (is_dir($filename)) if (is_dir($filename))
$themes[] = basename($filename); $themes[] = basename($filename);
$GLOBALS['CMS_CONFIG']['DEFAULT_THEME_FOLDER'] = array('DESCR' =>'Тема публичной части','default'=>$themes[0],'TYPE'=>'dropdown','VARIANT'=>$themes); $codemirror = array(
$GLOBALS['CMS_CONFIG']['DEFAULT_THEME_FOLDER_COLOR'] = array('DESCR' =>'Цвет панели администратора','default'=>'default', 'TYPE'=>'dropdown','VARIANT'=>array('default'));
$GLOBALS['CMS_CONFIG']['CODEMIRROR_THEME'] = array(
'DESCR' => 'Цветовая схема Codemirror',
'default' => 'dracula',
'TYPE' => 'dropdown',
'VARIANT' => array(
'default', 'default',
'3024-day', '3024-day',
'3024-night', '3024-night',
@ -84,79 +70,470 @@
'xq-light', 'xq-light',
'yeti', 'yeti',
'zenburn' 'zenburn'
)
); );
$GLOBALS['CMS_CONFIG']['ADMIN_MENU'] = array('DESCR' => 'Использовать плавующее боковое меню','default'=>true,'TYPE'=>'bool','VARIANT'=>''); /* ======================================================================================================== */
$GLOBALS['CMS_CONFIG']['ADMIN_MENU_QUICK_ADD'] = array('DESCR' => 'Показывать меню в шапке с действиями','default'=>false,'TYPE'=>'bool','VARIANT'=>'');
$GLOBALS['CMS_CONFIG']['ADMIN_CAPTCHA'] = array('DESCR' => 'Использовать капчу при входе в админку','default'=>false,'TYPE'=>'bool','VARIANT'=>''); //-- Использовать IP для автологина на сайте
$GLOBALS['CMS_CONFIG']['ADMIN_EDITMENU'] = array('DESCR' => 'Использовать всплывающие "Действия" в системе','default'=>true,'TYPE'=>'bool','VARIANT'=>''); $GLOBALS['CMS_CONFIG']['_CONST_AUTH']['USER_IP'] = array(
'DESCR' => 'Следить за IP при автологине на сайте',
'DEFAULT' => false,
'TYPE' => 'bool',
'VARIANT' => ''
);
//-- Использовать IP для автологина на сайте
$GLOBALS['CMS_CONFIG']['_CONST_AUTH']['ADMIN_CAPTCHA'] = array(
'DESCR' => 'Использовать CAPTCHA при входе в панель управления',
'DEFAULT' => false,
'TYPE' => 'bool',
'VARIANT' => ''
);
/* ======================================================================================================== */
//-- Использовать ЧПУ Адреса вида index.php будут преобразованы в /home
$GLOBALS['CMS_CONFIG']['_CONST_URL']['REWRITE_MODE'] = array(
'DESCR' => 'Использовать ЧПУ Адреса вида index.php будут преобразованы в /home',
'DEFAULT' => true,
'TYPE' => 'bool',
'VARIANT' => ''
);
//-- Cуффикс ЧПУ, к примеру .html
$GLOBALS['CMS_CONFIG']['_CONST_URL']['URL_SUFF'] = array(
'DESCR' => 'Cуффикс ЧПУ, к примеру .html',
'DEFAULT' => '',
'TYPE' => 'string',
'VARIANT' => ''
);
//-- Использовать транслит в ЧПУ адреса вида /страница/ поменяються на /stranica/
$GLOBALS['CMS_CONFIG']['_CONST_URL']['TRANSLIT_URL'] = array(
'DESCR' => 'Использовать транслит в ЧПУ адреса вида /страница поменяються на /stranica',
'DEFAULT' => true,
'TYPE' => 'bool',
'VARIANT' => ''
);
/* ======================================================================================================== */
// Тема публичной части
$GLOBALS['CMS_CONFIG']['_CONST_THEMES']['DEFAULT_THEME_FOLDER'] = array(
'DESCR' => 'Тема публичной части',
'DEFAULT' => $themes[0],
'TYPE' => 'dropdown',
'VARIANT' => $themes
);
// Тема панели администратора
$GLOBALS['CMS_CONFIG']['_CONST_THEMES']['DEFAULT_THEME_FOLDER_COLOR'] = array(
'DESCR' => 'Тема панели администратора',
'DEFAULT' => 'default',
'TYPE' => 'dropdown',
'VARIANT' => array('default')
);
// Цветовая схема Codemirror
$GLOBALS['CMS_CONFIG']['_CONST_THEMES']['CODEMIRROR_THEME'] = array(
'DESCR' => 'Цветовая схема Codemirror',
'DEFAULT' => 'dracula',
'TYPE' => 'dropdown',
'VARIANT' => $codemirror
);
//-- Использовать плавающее боковое меню
$GLOBALS['CMS_CONFIG']['_CONST_THEMES']['ADMIN_MENU'] = array(
'DESCR' => 'Использовать плавающее боковое меню',
'DEFAULT' => true,
'TYPE' => 'bool',
'VARIANT' => ''
);
//-- Показывать меню в шапке с действиями
$GLOBALS['CMS_CONFIG']['_CONST_THEMES']['ADMIN_MENU_QUICK_ADD'] = array(
'DESCR' => 'Показывать меню в шапке с действиями',
'DEFAULT' => false,
'TYPE' => 'bool',
'VARIANT' => ''
);
//-- Использовать всплывающие "Действия" в системе
$GLOBALS['CMS_CONFIG']['_CONST_THEMES']['ADMIN_EDITMENU'] = array(
'DESCR' => 'Использовать всплывающие "Действия" в системе',
'DEFAULT' => true,
'TYPE' => 'bool',
'VARIANT' => ''
);
/* ======================================================================================================== */
//-- Директория для хранения вложений
$GLOBALS['CMS_CONFIG']['_CONST_FOLDERS']['ATTACH_DIR'] = array(
'DESCR' => 'Директория для хранения вложений /tmp/XXX',
'DEFAULT' => 'attachments',
'TYPE' => 'string',
'VARIANT' => ''
);
//-- Директория для хранения вложений
$GLOBALS['CMS_CONFIG']['_CONST_FOLDERS']['UPLOAD_DIR'] = array(
'DESCR' => 'Директория для хранения вложений /XXX',
'DEFAULT' => 'uploads',
'TYPE' => 'string',
'VARIANT' => ''
);
//-- Директория для хранения миниатюр Галерей /UPLOAD_DIR/XXX
$GLOBALS['CMS_CONFIG']['_CONST_FOLDERS']['UPLOAD_GALLERY_DIR'] = array(
'DESCR' => 'Директория для хранения миниатюр Галерей /UPLOAD_DIR/XXX',
'DEFAULT' => 'uploads/gallery',
'TYPE' => 'string',
'VARIANT' => ''
);
/* ======================================================================================================== */
//-- Директория для хранения миниатюр изображений /UPLOAD_DIR/XXX
$GLOBALS['CMS_CONFIG']['_CONST_THUMBS']['THUMBNAIL_DIR'] = array(
'DESCR' => 'Директория для хранения миниатюр изображений /UPLOAD_DIR/XXX',
'DEFAULT' => 'th',
'TYPE' => 'string',
'VARIANT' => ''
);
//-- Разрешенные методы и размеры для миниатюр (через запятую)
$GLOBALS['CMS_CONFIG']['_CONST_THUMBS']['THUMBNAIL_SIZES'] = array(
'DESCR' => 'Разрешенные методы и размеры для миниатюр (через запятую)',
'DEFAULT' => '',
'TYPE' => 'string',
'VARIANT' => ''
);
//-- Генерировать миниатюрам IPTC
$GLOBALS['CMS_CONFIG']['_CONST_THUMBS']['THUMBNAIL_IPTC'] = array(
'DESCR' => 'Генерировать миниатюрам IPTC',
'DEFAULT' => false,
'TYPE' => 'bool',
'VARIANT' => ''
);
/* ======================================================================================================== */
//-- Директория для хранения оригиналов изображений (watermark)
$GLOBALS['CMS_CONFIG']['_CONST_WATERMARKS']['WATERMARKS_DIR'] = array(
'DESCR' => 'Директория для хранения оригиналов изображений (watermark) /XXX',
'DEFAULT' => 'source',
'TYPE' => 'string',
'VARIANT' => ''
);
//-- Файл watermark
$GLOBALS['CMS_CONFIG']['_CONST_WATERMARKS']['WATERMARKS_FILE'] = array(
'DESCR' => 'Файл watermark /UPLOAD_DIR/XXX',
'DEFAULT' => 'watermark.png',
'TYPE' => 'string',
'VARIANT' => ''
);
/* ======================================================================================================== */
//-- Метод хранение сессий
$GLOBALS['CMS_CONFIG']['_CONST_SESSIONS']['SESSION_SAVE_HANDLER'] = array(
'DESCR' => 'Метод хранение сессий',
'DEFAULT' => 'mysql',
'TYPE' => 'dropdown',
'VARIANT' => array('mysql', 'files', 'memcached')
);
//-- Время жизни сессии (60*60*24 - 24 часа)
$GLOBALS['CMS_CONFIG']['_CONST_SESSIONS']['SESSION_LIFETIME'] = array(
'DESCR' => 'Время жизни сессии (60*60*24 - 24 часа)',
'DEFAULT' => 60*60*24,
'TYPE' => 'integer',
'VARIANT' => ''
);
//-- Время жизни cookie для автологина (60*60*24*14 - 2 недели)
$GLOBALS['CMS_CONFIG']['_CONST_SESSIONS']['COOKIE_LIFETIME'] = array(
'DESCR' => 'Время жизни cookie для автологина (60*60*24*14 - 2 недели)',
'DEFAULT' => 60*60*24*14,
'TYPE' => 'integer',
'VARIANT' => ''
);
/* ======================================================================================================== */
//-- Режим разработчика (Отключает кеширование SQL запросов в системе)
$GLOBALS['CMS_CONFIG']['_CONST_DEV']['DEV_MODE'] = array(
'DESCR' => 'Режим разработчика (Отключает кеширование SQL запросов в системе)',
'DEFAULT' => false,
'TYPE' => 'bool',
'VARIANT' => ''
);
//-- Вывод общей статистики
$GLOBALS['CMS_CONFIG']['_CONST_DEV']['PROFILING'] = array(
'DESCR' => 'Вывод общей статистики',
'DEFAULT' => 'off',
'TYPE' => 'dropdown',
'VARIANT' => array('off', 'light', 'full')
);
//-- Собирать статистику выполненных запросов
$GLOBALS['CMS_CONFIG']['_CONST_DEV']['SQL_PROFILING'] = array(
'DESCR' => 'Собирать статистику выполненных SQL запросов',
'DEFAULT' => false,
'TYPE' => 'bool',
'VARIANT' => ''
);
//-- Включить стандартную обработку ошибок PHP
$GLOBALS['CMS_CONFIG']['_CONST_DEV']['PHP_DEBUGGING'] = array(
'DESCR' => 'Включить стандартную обработку ошибок PHP',
'DEFAULT' => false,
'TYPE' => 'bool',
'VARIANT' => ''
);
//-- Включить обработку ошибок PHP через обработчик cms
$GLOBALS['CMS_CONFIG']['_CONST_DEV']['PHP_DEBUGGING_FILE'] = array(
'DESCR' => 'Включить обработку ошибок PHP через обработчик системы',
'DEFAULT' => false,
'TYPE' => 'bool',
'VARIANT' => ''
);
//-- Отправка писем с ошибками MySQL
$GLOBALS['CMS_CONFIG']['_CONST_DEV']['SEND_SQL_ERROR'] = array(
'DESCR' => 'Отправка писем с ошибками MySQL',
'DEFAULT' => false,
'TYPE' => 'bool',
'VARIANT' => ''
);
//-- Принудительно проверять SQL запросы
$GLOBALS['CMS_CONFIG']['_CONST_DEV']['SQL_QUERY_SANITIZE'] = array(
'DESCR' => 'Принудительно проверять SQL запросы',
'DEFAULT' => false,
'TYPE' => 'bool',
'VARIANT' => ''
);
//-- Пытаться очистить память если выходит за пределы ("-1" выключенно) в Мегабайтах (увеличивается нагрузка на MySQL)
$GLOBALS['CMS_CONFIG']['_CONST_DEV']['MEMORY_LIMIT_PANIC'] = array(
'DESCR' => 'Пытаться очистить память если выходит за пределы ("-1" выключенно) в Мегабайтах (увеличивается нагрузка на MySQL)',
'DEFAULT' => -1,
'TYPE' => 'dropdown',
'VARIANT' => array('-1','6','12','28','54','100')
);
/* ======================================================================================================== */
//-- Консоль отладки Smarty
$GLOBALS['CMS_CONFIG']['_CONST_SMARTY']['SMARTY_DEBUGGING'] = array(
'DESCR' => 'Консоль отладки Smarty',
'DEFAULT' => false,
'TYPE' => 'bool',
'VARIANT' => ''
);
//-- Контролировать изменения tpl файлов После настройки сайта установить - false
$GLOBALS['CMS_CONFIG']['_CONST_SMARTY']['SMARTY_COMPILE_CHECK'] = array(
'DESCR' => 'Контролировать изменения tpl файлов После настройки сайта установить - false',
'DEFAULT' => true,
'TYPE' => 'bool',
'VARIANT' => ''
);
//-- Создание папок для кэширования Установите это в false если ваше окружение PHP не разрешает создание директорий от имени Smarty. Поддиректории более эффективны, так что используйте их, если можете.
$GLOBALS['CMS_CONFIG']['_CONST_SMARTY']['SMARTY_USE_SUB_DIRS'] = array(
'DESCR' => 'Создание папок для кэширования Установите это в false если ваше окружение PHP не разрешает создание директорий от имени Smarty. Поддиректории более эффективны, так что используйте их, если можете.',
'DEFAULT' => true,
'TYPE' => 'bool',
'VARIANT' => ''
);
/* ======================================================================================================== */
$GLOBALS['CMS_CONFIG']['ATTACH_DIR'] = array('DESCR' => 'Директория для хранения вложений','default'=>'attachments','TYPE'=>'string','VARIANT'=>''); //-- Кэширование скомпилированных шаблонов документов
$GLOBALS['CMS_CONFIG']['UPLOAD_DIR'] = array('DESCR' => 'Директория для хранения файлов','default'=>'uploads','TYPE'=>'string','VARIANT'=>''); $GLOBALS['CMS_CONFIG']['_CONST_CACHE']['CACHE_DOC_TPL'] = array(
$GLOBALS['CMS_CONFIG']['UPLOAD_SHOP_DIR'] = array('DESCR' => 'Директория для хранения миниатюр Магазина','default'=>'uploads/shop','TYPE'=>'string','VARIANT'=>''); 'DESCR' => 'Кэширование скомпилированных шаблонов документов',
$GLOBALS['CMS_CONFIG']['UPLOAD_GALLERY_DIR'] = array('DESCR' => 'Директория для хранения миниатюр Галерей','default'=>'uploads/gallery','TYPE'=>'string','VARIANT'=>''); 'DEFAULT' => false,
'TYPE' => 'bool',
'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']['_CONST_CACHE']['CACHE_DOC_FILE'] = array(
$GLOBALS['CMS_CONFIG']['THUMBNAIL_IPTC'] = array('DESCR' => 'Генерировать миниютарам IPTC','default'=>false,'TYPE'=>'bool','VARIANT'=>''); 'DESCR' => 'Кэширование информацию о документе и его полях',
'DEFAULT' => false,
'TYPE' => 'bool',
'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']['_CONST_CACHE']['SITEMAP_CACHE_LIFETIME'] = array(
'DESCR' => 'Время жизни кеша для карты сайта',
'DEFAULT' => 0,
'TYPE' => 'integer',
'VARIANT' => ''
);
$GLOBALS['CMS_CONFIG']['SESSION_SAVE_HANDLER'] = array('DESCR' => 'Хранение сессий', 'default'=>'mysql', 'TYPE'=>'dropdown', 'VARIANT' => array('mysql', 'files', 'memcached')); /* ======================================================================================================== */
$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']['USERS_TIME_SHOW'] = array('DESCR' => 'Показывать кто был онлайн в течении: (Значение по умолчанию 24 часа)','default'=>60*60*24,'TYPE'=>'integer','VARIANT'=>''); //-- Включить html компрессию
$GLOBALS['CMS_CONFIG']['_CONST_COMPRESSION']['HTML_COMPRESSION'] = array(
'DESCR' => 'Включить html компрессию',
'DEFAULT' => false,
'TYPE' => 'bool',
'VARIANT' => ''
);
$GLOBALS['CMS_CONFIG']['PROFILING'] = array('DESCR' => 'Вывод статистики','default'=>false,'TYPE'=>'bool','VARIANT'=>''); //-- Включить gzip компрессию
$GLOBALS['CMS_CONFIG']['SQL_PROFILING'] = array('DESCR' => 'Вывод статистики выполненых запросов','default'=>false,'TYPE'=>'bool','VARIANT'=>''); $GLOBALS['CMS_CONFIG']['_CONST_COMPRESSION']['GZIP_COMPRESSION'] = array(
'DESCR' => 'Включить gzip компрессию',
'DEFAULT' => false,
'TYPE' => 'bool',
'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']['_CONST_COMPRESSION']['OUTPUT_EXPIRE'] = array(
$GLOBALS['CMS_CONFIG']['PHP_DEBUGGING'] = array('DESCR' => 'Включить стандартную обработку ошибок PHP','default'=>false,'TYPE'=>'bool','VARIANT'=>''); 'DESCR' => 'Отдавать заголовок на кеширование страницы',
$GLOBALS['CMS_CONFIG']['SMARTY_DEBUGGING'] = array('DESCR' => 'Консоль отладки Smarty','default'=>false,'TYPE'=>'bool','VARIANT'=>''); 'DEFAULT' => false,
'TYPE' => 'bool',
'VARIANT' => ''
);
$GLOBALS['CMS_CONFIG']['MEMORY_LIMIT_PANIC'] = array('DESCR' => 'Пытаться очистить память если выходит за пределы ("-1" выключенно) в Мегабайтах (увеличивается нагрузка на MySQL)','default'=>-1,'TYPE'=>'dropdown','VARIANT'=>array('-1','6','12','28','54','100')); //-- Время жизни кеширования страницы (60*60 - 1 час)
$GLOBALS['CMS_CONFIG']['_CONST_COMPRESSION']['OUTPUT_EXPIRE_OFFSET'] = array(
'DESCR' => 'Время жизни кеширования страницы (60*60 - 1 час)',
'DEFAULT' => 0,
'TYPE' => 'integer',
'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']['SITEMAP_CACHE_LIFETIME'] = array('DESCR' => 'Время жизни кеша для карты сайта (60*60*24*14 - 2 недели)','default'=>0,'TYPE'=>'integer','VARIANT'=>''); //-- Адрес Memcached сервера
$GLOBALS['CMS_CONFIG']['_CONST_MEMCACHED']['MEMCACHED_SERVER'] = array(
'DESCR' => 'Адрес Memcached сервера',
'DEFAULT' => '',
'TYPE' => 'string',
'VARIANT' => ''
);
$GLOBALS['CMS_CONFIG']['YANDEX_MAP_API_KEY'] = array('DESCR' => 'Yandex MAP API REY','default'=>'','TYPE'=>'string','VARIANT'=>''); //-- Порт Memcached сервера
$GLOBALS['CMS_CONFIG']['GOOGLE_MAP_API_KEY'] = array('DESCR' => 'Google MAP API REY','default'=>'','TYPE'=>'string','VARIANT'=>''); $GLOBALS['CMS_CONFIG']['_CONST_MEMCACHED']['MEMCACHED_PORT'] = array(
'DESCR' => 'Порт Memcached сервера',
'DEFAULT' => '',
'TYPE' => 'string',
'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']['_CONST_REQUEST']['REQUEST_ETC'] = array(
$GLOBALS['CMS_CONFIG']['DB_EXPORT_PREFIX'] = array('DESCR' => 'Использовать префикс при экспорте бд','default'=>true,'TYPE'=>'bool','VARIANT'=>''); 'DESCR' => 'Окончание в полях запроса',
'DEFAULT' => '...',
'TYPE' => 'string',
'VARIANT' => ''
);
$GLOBALS['CMS_CONFIG']['HTML_COMPRESSION'] = array('DESCR' => 'Включить html компрессию','default'=>false,'TYPE'=>'bool','VARIANT'=>''); //-- Разбивать слова при выводе полей в запросе
$GLOBALS['CMS_CONFIG']['_CONST_REQUEST']['REQUEST_BREAK_WORDS'] = array(
'DESCR' => 'Разбивать слова при выводе полей в запросе',
'DEFAULT' => false,
'TYPE' => 'bool',
'VARIANT' => ''
);
$GLOBALS['CMS_CONFIG']['GZIP_COMPRESSION'] = array('DESCR' => 'Включить gzip компрессию','default'=>false,'TYPE'=>'bool','VARIANT'=>''); //-- При - у поля, оставляем теги в результате
$GLOBALS['CMS_CONFIG']['_CONST_REQUEST']['REQUEST_STRIP_TAGS'] = array(
'DESCR' => 'При - (минус) у поля, оставлять html теги в результате',
'DEFAULT' => '',
'TYPE' => 'string',
'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'=>''); //-- Создание резервной копии базы данных со сжатием
// 3.23 $GLOBALS['CMS_CONFIG']['_CONST_DATABASE']['DB_EXPORT_GZ'] = array(
$GLOBALS['CMS_CONFIG']['REQUEST_ETC'] = array('DESCR' => 'Окончание в полях запроса', 'default'=>'...', 'TYPE'=>'string', 'VARIANT'=>''); 'DESCR' => 'Создание резервной копии базы данных со сжатием .gz',
$GLOBALS['CMS_CONFIG']['REQUEST_BREAK_WORDS'] = array('DESCR' => 'Разбивать слова при выводе полей в запросе', 'default'=>false, 'TYPE'=>'bool', 'VARIANT'=>''); 'DEFAULT' => false,
$GLOBALS['CMS_CONFIG']['REQUEST_STRIP_TAGS'] = array('DESCR' => 'При - у поля, оставляем теги в результате', 'default'=>'', 'TYPE'=>'string', 'VARIANT'=>''); 'TYPE' => 'bool',
'VARIANT' => ''
);
$GLOBALS['CMS_CONFIG']['DEV_MODE'] = array('DESCR' => 'Режим разработчика (Отключено кеширование SQL)', 'default'=>false, 'TYPE'=>'bool', 'VARIANT'=>''); //-- Использовать префикс при экспорте бд
$GLOBALS['CMS_CONFIG']['SQL_QUERY_SANITIZE'] = array('DESCR' => 'Принудительно проверять SQL запросы', 'default'=>false, 'TYPE'=>'bool', 'VARIANT'=>''); $GLOBALS['CMS_CONFIG']['_CONST_DATABASE']['DB_EXPORT_PREFIX'] = array(
'DESCR' => 'Использовать префикс при экспорте бд',
'DEFAULT' => true,
'TYPE' => 'bool',
'VARIANT' => ''
);
//-- Шаблон имени файла экспорта бд (%SERVER%,%DATE%,%TIME%)
$GLOBALS['CMS_CONFIG']['_CONST_DATABASE']['DB_EXPORT_TPL'] = array(
'DESCR' => 'Шаблон имени файла экспорта бд (%SERVER%, %DATE%, %TIME%)',
'DEFAULT' => '%SERVER%_DB_BackUP_%DATE%_%TIME%',
'TYPE' => 'string',
'VARIANT' => ''
);
/* ======================================================================================================== */
//-- Yandex MAP API KEY
$GLOBALS['CMS_CONFIG']['_CONST_OTHER']['YANDEX_MAP_API_KEY'] = array(
'DESCR' => 'Yandex MAP API KEY',
'DEFAULT' => '',
'TYPE' => 'string',
'VARIANT' => ''
);
//-- Google MAP API KEY
$GLOBALS['CMS_CONFIG']['_CONST_OTHER']['GOOGLE_MAP_API_KEY'] = array(
'DESCR' => 'Google MAP API KEY',
'DEFAULT' => '',
'TYPE' => 'string',
'VARIANT' => ''
);
//-- Показывать кто был онлайн в течении: (Значение по умолчанию 24 часа)
$GLOBALS['CMS_CONFIG']['_CONST_OTHER']['USERS_TIME_SHOW'] = array(
'DESCR' => 'Показывать кто был онлайн в течении: (Значение по умолчанию 24 часа)',
'DEFAULT' => 60*60*24,
'TYPE' => 'integer',
'VARIANT' => ''
);
//-- Использовать проверку в полях на пусто, только исходные данные, исключая шаблон поля
$GLOBALS['CMS_CONFIG']['_CONST_OTHER']['USE_GET_FIELDS'] = array(
'DESCR' => 'Использовать, проверку в полях на "пусто", только исходные данные, исключая шаблон поля',
'DEFAULT' => false,
'TYPE' => 'bool',
'VARIANT' => ''
);
//-- Проверка наличия новых версий
$GLOBALS['CMS_CONFIG']['_CONST_OTHER']['CHECK_VERSION'] = array(
'DESCR' => 'Проверка наличия новых версий',
'DEFAULT' => false,
'TYPE' => 'bool',
'VARIANT' => ''
);
unset ($themes, $codemirror);
if (file_exists(dirname(dirname(__FILE__)) . '/config/config.inc.php')) if (file_exists(dirname(dirname(__FILE__)) . '/config/config.inc.php'))
include_once(dirname(dirname(__FILE__)) . '/config/config.inc.php'); include_once(dirname(dirname(__FILE__)) . '/config/config.inc.php');
foreach($GLOBALS['CMS_CONFIG'] as $k => $v) foreach ($GLOBALS['CMS_CONFIG'] AS $key => $const)
foreach ($const AS $k => $v)
if(! defined($k)) if(! defined($k))
define($k, $v['default']); define($k, $v['DEFAULT']);
?> ?>

1
inc/init.php

@ -213,7 +213,6 @@
require_once (BASE_DIR . '/functions/func.users.php'); // Функции по работе с пользователями require_once (BASE_DIR . '/functions/func.users.php'); // Функции по работе с пользователями
require_once (BASE_DIR . '/functions/func.watermarks.php'); // Функции по работе с водными знаками require_once (BASE_DIR . '/functions/func.watermarks.php'); // Функции по работе с водными знаками
//-- Создание папок и файлов //-- Создание папок и файлов
foreach (array(ATTACH_DIR, 'cache', 'backup', 'logs', 'session', 'update') as $dir) foreach (array(ATTACH_DIR, 'cache', 'backup', 'logs', 'session', 'update') as $dir)
write_htaccess_deny(BASE_DIR . '/tmp/' . $dir); write_htaccess_deny(BASE_DIR . '/tmp/' . $dir);

2
inc/sitemap.php

@ -153,7 +153,7 @@
$res = $AVE_DB->Query($sql, SITEMAP_CACHE_LIFETIME, 'sitemap', true, '.limit'); $res = $AVE_DB->Query($sql, SITEMAP_CACHE_LIFETIME, 'sitemap', true, '.limit');
if (! $res->NumRows()) if (! $res->NumRows() && (int)$_REQUEST['id'] != 1)
{ {
report404(); report404();
$AVE_DB->clearCurrentCache('sitemap', $sql, '.limit'); $AVE_DB->clearCurrentCache('sitemap', $sql, '.limit');

21
index.php

@ -97,10 +97,8 @@
$content = ob_get_clean(); $content = ob_get_clean();
if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') && GZIP_COMPRESSION) if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') && (defined('GZIP_COMPRESSION') && GZIP_COMPRESSION))
{
ob_start('ob_gzhandler'); ob_start('ob_gzhandler');
}
else else
ob_start(); ob_start();
@ -166,23 +164,6 @@
unset ($rubheader, $rubfooter); unset ($rubheader, $rubfooter);
//-- Header Engine
header('X-Engine: AVE.cms');
header('X-Engine-Copyright: 2007-' . date('Y') . ' (c) AVE.cms');
header('X-Engine-Site: https://ave-cms.ru');
//-- Вывод конечного результата //-- Вывод конечного результата
output_compress($render); output_compress($render);
//-- Вывод статистики загрузки и запросов SQL (только для администраторов)
if (
! defined('ONLYCONTENT')
&&
! GZIP_COMPRESSION
&&
UGROUP == 1
&&
defined('PROFILING') && PROFILING
)
Debug::displayInfo();
?> ?>

6
install/data_base.sql

@ -265,7 +265,7 @@ INSERT INTO `%%PRFX%%_rubric_permissions` VALUES
(5, 1, 5, 'docread');#inst# (5, 1, 5, 'docread');#inst#
INSERT INTO `%%PRFX%%_rubrics` VALUES INSERT INTO `%%PRFX%%_rubrics` VALUES
(1,'Основные страницы','','0','<h1 class=\"mt-5\">[tag:fld:header]</h1>\n[tag:fld:text]','1','1','0','1','','','','','','','','0','','0','0','0','0');#inst# (1,'Основные страницы','','0','<h1 class=\"mt-5\">[tag:fld:header]</h1>\n[tag:fld:text]','1','1','0','1','','','','','','','','0','','0','0',UNIX_TIMESTAMP(),UNIX_TIMESTAMP());#inst#
INSERT INTO `%%PRFX%%_settings` VALUES INSERT INTO `%%PRFX%%_settings` VALUES
( (
@ -328,7 +328,7 @@ INSERT INTO `%%PRFX%%_settings_lang` VALUES
(11, 'bg', 'Български', 'bg', '0', '0');#inst# (11, 'bg', 'Български', 'bg', '0', '0');#inst#
INSERT INTO `%%PRFX%%_templates` VALUES INSERT INTO `%%PRFX%%_templates` VALUES
(1,'Основной шаблон','<!DOCTYPE html>\n<html lang=\\\"ru\\\">\n <head>\n <meta charset=\\\"utf-8\\\">\n\n <meta name=\\\"robots\\\" content=\\\"[tag:robots]\\\">\n <meta name=\\\"keywords\\\" content=\\\"[tag:keywords]\\\">\n <meta name=\\\"description\\\" content=\\\"[tag:description]\\\">\n\n <meta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1, shrink-to-fit=no\\\">\n\n <link href=\\\"[tag:canonical]\\\" rel=\\\"canonical\\\">\n\n <!-- Bootstrap CSS -->\n <link rel=\\\"stylesheet\\\" href=\\\"https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css\\\">\n <!-- Font awesome CSS -->\n <link rel=\\\"stylesheet\\\" href=\\\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css\\\">\n <!-- Custom styles -->\n <link rel=\\\"stylesheet\\\" href=\\\"[tag:mediapath]css/styles.css\\\">\n\n [tag:rubheader]\n\n <title>[tag:title] - [tag:sitename]</title>\n </head>\n <body>\n <!--Header-->\n <header>\n <nav class=\\\"navbar navbar-expand-md navbar-dark fixed-top bg-dark\\\">\n <a class=\\\"navbar-brand\\\" href=\\\"[tag:path]\\\">[tag:sitename]</a>\n <button class=\\\"navbar-toggler\\\" type=\\\"button\\\" data-toggle=\\\"collapse\\\" data-target=\\\"#navbarCollapse\\\" aria-controls=\\\"navbarCollapse\\\" aria-expanded=\\\"false\\\" aria-label=\\\"Toggle navigation\\\">\n <span class=\\\"navbar-toggler-icon\\\"></span>\n </button>\n <div class=\\\"collapse navbar-collapse\\\" id=\\\"navbarCollapse\\\">\n [tag:navigation:main]\n </div>\n </nav>\n </header><!--./Header-->\n\n <!--Page content-->\n <main role=\\\"main\\\" class=\\\"container\\\">\n <div class=\\\"row\\\">\n <div class=\\\"col-12\\\">\n [tag:maincontent]\n </div>\n </div>\n </main><!--./Page content-->\n\n <!--Footer-->\n <footer class=\\\"footer\\\">\n <div class=\\\"container\\\">\n <span class=\\\"text-muted\\\">Создано при помощи [tag:version]</span>\n </div>\n </footer><!--./Footer-->\n\n <!-- JavaScript\n ================================================== -->\n <script src=\\\"https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js\\\"></script>\n <script src=\\\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js\\\"></script>\n <script src=\\\"https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.2.2/jquery.form.min.js\\\"></script>\n <script src=\\\"https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js\\\"></script>\n <script src=\\\"[tag:mediapath]js/main.js\\\"></script>\n\n [tag:rubfooter]\n </body>\n</html>',1,0);#inst# (1,'Основной шаблон','<!DOCTYPE html>\n<html lang=\\\"ru\\\">\n <head>\n <meta charset=\\\"utf-8\\\">\n\n <meta name=\\\"robots\\\" content=\\\"[tag:robots]\\\">\n <meta name=\\\"keywords\\\" content=\\\"[tag:keywords]\\\">\n <meta name=\\\"description\\\" content=\\\"[tag:description]\\\">\n\n <meta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1, shrink-to-fit=no\\\">\n\n <link href=\\\"[tag:canonical]\\\" rel=\\\"canonical\\\">\n\n <!-- Load CSS -->\n <script>\n function loadCSS(hf) {\n var ms=document.createElement(\\\"link\\\");ms.rel=\\\"stylesheet\\\";\n ms.href=hf;document.getElementsByTagName(\\\"head\\\")[0].appendChild(ms);\n }\n loadCSS(\\\"https://maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css\\\"); // Bootstrap CSS\n loadCSS(\\\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css\\\"); // Font awesome CSS\n </script>\n\n <!-- Custom styles -->\n <link rel=\\\"stylesheet\\\" href=\\\"[tag:mediapath]css/styles.css\\\">\n\n [tag:rubheader]\n\n <title>[tag:title] - [tag:sitename]</title>\n </head>\n <body>\n <!--Header-->\n <header>\n <nav class=\\\"navbar navbar-expand-md navbar-dark fixed-top bg-dark\\\">\n <a class=\\\"navbar-brand\\\" href=\\\"[tag:path]\\\">[tag:sitename]</a>\n <button class=\\\"navbar-toggler\\\" type=\\\"button\\\" data-toggle=\\\"collapse\\\" data-target=\\\"#navbarCollapse\\\" aria-controls=\\\"navbarCollapse\\\" aria-expanded=\\\"false\\\" aria-label=\\\"Toggle navigation\\\">\n <span class=\\\"navbar-toggler-icon\\\"></span>\n </button>\n <div class=\\\"collapse navbar-collapse\\\" id=\\\"navbarCollapse\\\">\n [tag:navigation:main]\n </div>\n </nav>\n </header><!--./Header-->\n\n <!--Page content-->\n <main role=\\\"main\\\" class=\\\"container\\\">\n <div class=\\\"row\\\">\n <div class=\\\"col-12\\\">\n [tag:maincontent]\n </div>\n </div>\n </main><!--./Page content-->\n\n <!--Footer-->\n <footer class=\\\"footer\\\">\n <div class=\\\"container\\\">\n <span class=\\\"text-muted\\\">Создано при помощи [tag:version]</span>\n </div>\n </footer><!--./Footer-->\n\n <!-- Load JS -->\n <script>\n var scr = {\\\"scripts\\\":[\n {\\\"src\\\" : \\\"https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js\\\", \\\"async\\\" : false},\n {\\\"src\\\" : \\\"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js\\\", \\\"async\\\" : false},\n {\\\"src\\\" : \\\"https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.2.2/jquery.form.min.js\\\", \\\"async\\\" : false},\n {\\\"src\\\" : \\\"https://maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js\\\", \\\"async\\\" : false},\n {\\\"src\\\" : \\\"[tag:mediapath]js/main.js\\\", \\\"async\\\" : false}\n ]};!function(t,n,r){\\\"use strict\\\";var c=function(t){if(\\\"[object Array]\\\"!==Object.prototype.toString.call(t))return!1;for(var r=0;r<t.length;r++){var c=n.createElement(\\\"script\\\"),e=t[r];c.src=e.src,c.async=e.async,n.body.appendChild(c)}return!0};t.addEventListener?t.addEventListener(\\\"load\\\",function(){c(r.scripts);},!1):t.attachEvent?t.attachEvent(\\\"onload\\\",function(){c(r.scripts)}):t.onload=function(){c(r.scripts)}}(window,document,scr);\n </script>\n\n [tag:rubfooter]\n </body>\n</html>',1,UNIX_TIMESTAMP());#inst#
INSERT INTO `%%PRFX%%_user_groups` VALUES INSERT INTO `%%PRFX%%_user_groups` VALUES
(1, 'Администраторы', '1', '0', '', 'alles'), (1, 'Администраторы', '1', '0', '', 'alles'),
@ -337,7 +337,7 @@ INSERT INTO `%%PRFX%%_user_groups` VALUES
(4, 'Зарегистрированные', '1', '0', '', '');#inst# (4, 'Зарегистрированные', '1', '0', '', '');#inst#
INSERT INTO `%%PRFX%%_users` VALUES INSERT INTO `%%PRFX%%_users` VALUES
(1, '%%PASS%%', '%%EMAIL%%', '', '', '', '', '', '', '', '', '', '%%USERNAME%%', 1, '', '', '1', '', 'RU', '', '0', '0', '0', '0', '', '', '', '%%SALT%%', '', 0);#inst# (1, '%%PASS%%', '%%EMAIL%%', '', '', '', '', '', '', '', '', '', '%%USERNAME%%', 1, '', UNIX_TIMESTAMP(), '1', UNIX_TIMESTAMP(), 'RU', '', '0', '0', '0', '0', '', '', '', '%%SALT%%', '', 0);#inst#
INSERT INTO `%%PRFX%%_paginations` (`id`, `pagination_name`, `pagination_box`, `pagination_start_label`, `pagination_end_label`, `pagination_separator_box`, `pagination_separator_label`, `pagination_next_label`, `pagination_prev_label`, `pagination_link_box`, `pagination_active_link_box`, `pagination_link_template`, `pagination_link_active_template`) INSERT INTO `%%PRFX%%_paginations` (`id`, `pagination_name`, `pagination_box`, `pagination_start_label`, `pagination_end_label`, `pagination_separator_box`, `pagination_separator_label`, `pagination_next_label`, `pagination_prev_label`, `pagination_link_box`, `pagination_active_link_box`, `pagination_link_template`, `pagination_link_active_template`)
VALUES VALUES

64
install/structure_base.sql

@ -31,9 +31,10 @@ CREATE TABLE `%%PRFX%%_document_fields` (
`document_in_search` enum('1','0') NOT NULL DEFAULT '1', `document_in_search` enum('1','0') NOT NULL DEFAULT '1',
PRIMARY KEY (`Id`), PRIMARY KEY (`Id`),
KEY `document_id` (`document_id`), KEY `document_id` (`document_id`),
KEY `rubric_field_id` (`rubric_field_id`), KEY `field_id` (`rubric_field_id`),
KEY `field_value` (`field_value`), KEY `value` (`field_value`),
KEY `field_number_value` (`field_number_value`) KEY `number_value` (`field_number_value`),
KEY `queries` (`document_id`, `rubric_field_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst# ) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst#
@ -44,7 +45,7 @@ CREATE TABLE `%%PRFX%%_document_fields_text` (
`field_value` longtext NOT NULL, `field_value` longtext NOT NULL,
PRIMARY KEY (`Id`), PRIMARY KEY (`Id`),
KEY `document_id` (`document_id`), KEY `document_id` (`document_id`),
KEY `rubric_field_id` (`rubric_field_id`) KEY `field_id` (`rubric_field_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst# ) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst#
@ -115,13 +116,14 @@ CREATE TABLE `%%PRFX%%_documents` (
`document_lang_group` int(10) NOT NULL DEFAULT '0', `document_lang_group` int(10) NOT NULL DEFAULT '0',
`document_property` text, `document_property` text,
PRIMARY KEY (`Id`), PRIMARY KEY (`Id`),
UNIQUE KEY `document_alias` (`document_alias`), UNIQUE KEY `alias` (`document_alias`),
KEY `rubric_id` (`rubric_id`), KEY `rubric_id` (`rubric_id`),
KEY `document_parent` (`document_parent`), KEY `parent` (`document_parent`),
KEY `document_status` (`document_status`), KEY `published` (`document_published`),
KEY `document_published` (`document_published`), KEY `expire` (`document_expire`),
KEY `document_expire` (`document_expire`), KEY `status` (`document_status`),
KEY `document_count_view` (`document_count_view`) KEY `deleted` (`document_deleted`),
KEY `count_view` (`document_count_view`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst# ) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst#
@ -132,7 +134,7 @@ CREATE TABLE `%%PRFX%%_document_alias_history` (
`document_alias_author` mediumint(5) unsigned NOT NULL DEFAULT '1', `document_alias_author` mediumint(5) unsigned NOT NULL DEFAULT '1',
`document_alias_changed` int(10) unsigned NOT NULL DEFAULT '0', `document_alias_changed` int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`Id`), PRIMARY KEY (`Id`),
UNIQUE KEY `document_alias` (`document_alias`), UNIQUE KEY `alias` (`document_alias`),
KEY `document_id` (`document_id`) KEY `document_id` (`document_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst# ) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst#
@ -163,7 +165,7 @@ CREATE TABLE `%%PRFX%%_module` (
`ModuleAdminEdit` enum('0','1') NOT NULL default '0', `ModuleAdminEdit` enum('0','1') NOT NULL default '0',
`ModuleSettings` text default NULL, `ModuleSettings` text default NULL,
PRIMARY KEY (`Id`), PRIMARY KEY (`Id`),
UNIQUE KEY `ModuleName` (`ModuleName`) UNIQUE KEY `name` (`ModuleName`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst# ) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst#
@ -177,8 +179,8 @@ CREATE TABLE `%%PRFX%%_modules_aliases` (
`module_url` varchar(255) NOT NULL DEFAULT '', `module_url` varchar(255) NOT NULL DEFAULT '',
`module_admin` enum('0','1') NOT NULL DEFAULT '1', `module_admin` enum('0','1') NOT NULL DEFAULT '1',
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `module_url` (`module_url`), UNIQUE KEY `url` (`module_url`),
KEY `module_name` (`module_name`) KEY `name` (`module_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst# ) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst#
@ -226,7 +228,7 @@ CREATE TABLE `%%PRFX%%_navigation_items` (
PRIMARY KEY (`navigation_item_id`), PRIMARY KEY (`navigation_item_id`),
KEY `navi_id` (`navigation_id`), KEY `navi_id` (`navigation_id`),
KEY `document_alias` (`document_id`), KEY `document_alias` (`document_id`),
KEY `navi_item_status` (`status`) KEY `status` (`status`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst# ) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst#
@ -278,8 +280,8 @@ CREATE TABLE `%%PRFX%%_request` (
`request_changed` int(10) unsigned NOT NULL DEFAULT '0', # 3.24 `request_changed` int(10) unsigned NOT NULL DEFAULT '0', # 3.24
`request_changed_elements` int(10) unsigned NOT NULL DEFAULT '0', # 3.24 `request_changed_elements` int(10) unsigned NOT NULL DEFAULT '0', # 3.24
PRIMARY KEY (`Id`), PRIMARY KEY (`Id`),
KEY `rubric_id` (`rubric_id`), KEY `id` (`rubric_id`),
KEY `request_alias` (`request_alias`) KEY `alias` (`request_alias`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst# ) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst#
@ -331,8 +333,8 @@ CREATE TABLE `%%PRFX%%_rubric_fields` (
`rubric_field_description` text NOT NULL, `rubric_field_description` text NOT NULL,
PRIMARY KEY (`Id`), PRIMARY KEY (`Id`),
KEY `rubric_id` (`rubric_id`), KEY `rubric_id` (`rubric_id`),
KEY `rubric_field_type` (`rubric_field_type`), KEY `field_type` (`rubric_field_type`),
KEY `rubric_field_alias` (`rubric_field_alias`) KEY `field_alias` (`rubric_field_alias`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst# ) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst#
@ -357,21 +359,6 @@ CREATE TABLE `%%PRFX%%_rubric_permissions` (
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst# ) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst#
CREATE TABLE `%%PRFX%%_rubric_template_cache` (
`id` bigint(15) unsigned NOT NULL AUTO_INCREMENT,
`hash` char(32) NOT NULL,
`rub_id` smallint(3) NOT NULL,
`rub_tmpl_id` mediumint(5) NOT NULL,
`grp_id` smallint(3) NOT NULL DEFAULT '2',
`doc_id` int(10) NOT NULL,
`wysiwyg` enum('0','1') NOT NULL DEFAULT '0',
`expire` int(10) unsigned DEFAULT '0',
`compiled` longtext NOT NULL,
PRIMARY KEY (`id`),
KEY `rubric_id` (`rub_id`,`doc_id`,`wysiwyg`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst#
CREATE TABLE `%%PRFX%%_rubrics` ( CREATE TABLE `%%PRFX%%_rubrics` (
`Id` smallint(3) unsigned NOT NULL AUTO_INCREMENT, `Id` smallint(3) unsigned NOT NULL AUTO_INCREMENT,
`rubric_title` varchar(255) NOT NULL, `rubric_title` varchar(255) NOT NULL,
@ -396,7 +383,7 @@ CREATE TABLE `%%PRFX%%_rubrics` (
`rubric_changed` int(10) NOT NULL DEFAULT '0', # 3.24 `rubric_changed` int(10) NOT NULL DEFAULT '0', # 3.24
`rubric_changed_fields` int(10) NOT NULL DEFAULT '0', # 3.24 `rubric_changed_fields` int(10) NOT NULL DEFAULT '0', # 3.24
PRIMARY KEY (`Id`), PRIMARY KEY (`Id`),
KEY `rubric_template_id` (`rubric_template_id`) KEY `template_id` (`rubric_template_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst# ) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst#
@ -465,7 +452,6 @@ CREATE TABLE `%%PRFX%%_settings` (
`date_format` varchar(25) NOT NULL DEFAULT '%d.%m.%Y', `date_format` varchar(25) NOT NULL DEFAULT '%d.%m.%Y',
`time_format` varchar(25) NOT NULL DEFAULT '%d.%m.%Y, %H:%M', `time_format` varchar(25) NOT NULL DEFAULT '%d.%m.%Y, %H:%M',
`default_country` char(2) NOT NULL DEFAULT 'RU', `default_country` char(2) NOT NULL DEFAULT 'RU',
`use_editor` int(1) unsigned NOT NULL DEFAULT '0',
`use_doctime` enum('1','0') NOT NULL DEFAULT '1', `use_doctime` enum('1','0') NOT NULL DEFAULT '1',
`hidden_text` text NOT NULL, `hidden_text` text NOT NULL,
PRIMARY KEY (`Id`) PRIMARY KEY (`Id`)
@ -507,7 +493,7 @@ CREATE TABLE `%%PRFX%%_sysblocks` (
`sysblock_author_id` int(10) unsigned NOT NULL DEFAULT '1', `sysblock_author_id` int(10) unsigned NOT NULL DEFAULT '1',
`sysblock_created` int(10) unsigned NOT NULL DEFAULT '0', `sysblock_created` int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
KEY `sysblock_alias` (`sysblock_alias`) KEY `alias` (`sysblock_alias`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;#inst# ) ENGINE=MyISAM DEFAULT CHARSET=utf8;#inst#
@ -565,8 +551,8 @@ CREATE TABLE `%%PRFX%%_users` (
`user_ip` int(10) unsigned NOT NULL DEFAULT '0', `user_ip` int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`Id`), PRIMARY KEY (`Id`),
UNIQUE KEY `email` (`email`), UNIQUE KEY `email` (`email`),
UNIQUE KEY `user_name` (`user_name`), UNIQUE KEY `name` (`user_name`),
KEY `user_group` (`user_group`) KEY `group` (`user_group`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst# ) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;#inst#

58
lib/translate/Big_Text_Translate.php

@ -1,58 +0,0 @@
<?php
abstract class Big_Text_Translate {
/**
* @var int - максимальное число символов для отправки переводчику
*/
public static $symbolLimit = 2000;
/**
* @var string- символы, по которым текст делится на предложения
*/
public static $sentensesDelimiter = '.';
/**
* @static
* @param $text - исходный текст для разбиения на предложения
* @return array - массив предложений, еще не окончательный
*/
protected static function toSentenses ($text) {
$sentArray = explode(self::$sentensesDelimiter, $text);
return $sentArray;
}
/**
* Разделение текста на массив больших кусков
* @param string $text - большой текстовый фрагмент, требующий разделения на куски
* @return array - массив элементов, каждый из которых не превышает предельного числа символов
*/
public static function toBigPieces ($text) {
$sentArray = self::toSentenses($text);
$i = 0;
$bigPiecesArray[0] = '';
for ($k = 0; $k < count($sentArray); $k++) {
$bigPiecesArray[$i] .= $sentArray[$k].self::$sentensesDelimiter;
if (strlen($bigPiecesArray[$i]) > self::$symbolLimit){
$i++;
$bigPiecesArray[$i] = '';
}
}
return $bigPiecesArray;
}
/**
* Склеивание текста
* @param array $bigPiecesArray - массив переведенных кусков текста, в произвольном порядке,
* но ключи должна соответствовать исходному тексту
* @return string - "склеенный" текст
*/
public static function fromBigPieces (array $bigPiecesArray) {
ksort($bigPiecesArray);
return implode($bigPiecesArray);
}
}

119
lib/translate/Yandex_Translate.php

@ -1,119 +0,0 @@
<?php
/*
* Класс для использования API переводчика от Яндекс
* Идеален для славянских языков, в частности русский <-> украинский
*/
class Yandex_Translate {
protected $rootURL = 'http://translate.yandex.ru/tr.json';
protected $translatePath = '/translate';
protected $langCodesPairsListPath = '/getLangs';
/**
* @var string - символ или тег конца абзаца
* Варианты: вывод в браузер - <br />, в файл - \n, может зависеть от ОС
*/
public $eolSymbol = '<br />';
/**
* @var string - разделитель языков в запросе. Пока однозначно так определено Яндексом
*/
public $langDelimiter = '-';
protected $cURLHeaders = array(
'User-Agent' => "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0; .NET CLR 2.0.50727)",
'Accept' => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
'Accept-Language' => "ru,en-us;q=0.7,en;q=0.3",
'Accept-Encoding' => "gzip,deflate",
'Accept-Charset' => "utf-8;q=0.7,*;q=0.7",
'Keep-Alive' => '300',
'Connection' => 'keep-alive',
);
protected function yandexConnect($path, $transferData = array()) {
$res = curl_init();
$url = $this->rootURL.$path.'?'.http_build_query($transferData, '', '&');
$options = array(
CURLOPT_URL => $url,
CURLOPT_HTTPHEADER => $this->cURLHeaders,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 30,
);
curl_setopt_array($res, $options);
$response = curl_exec($res);
curl_close($res);
return $response;
}
/**
* @return mixed Получаем пары перевода from-to в виде 'ru-uk', 'en-fr'
*/
public function yandexGetLangsPairs(){
$jsonLangsPairs = $this->yandexConnect($this->langCodesPairsListPath);
$rawOut = json_decode($jsonLangsPairs, true);
return $rawOut['dirs'];
}
/**
* @return получаем все языки FROM
*/
public function yandexGet_FROM_Langs(){
$langPairs = $this->yandexGetLangsPairs();
foreach ($langPairs as $langPair){
$smallArray = explode($this->langDelimiter, $langPair);
$outerArray[$smallArray[0]] = $smallArray[0];
}
return $outerArray;
}
/**
* @return получаем все языки TO
*/
public function yandexGet_TO_Langs(){
$langPairs = $this->yandexGetLangsPairs();
foreach ($langPairs as $langPair){
$smallArray = explode($this->langDelimiter, $langPair);
$outerArray[$smallArray[1]] = $smallArray[1];
}
return $outerArray;
}
/**
* Собственно перевод
* @param $fromLang - с какого, код языка, 'ru' напр.
* @param $toLang - на какой, код языка. Следите: не все языки FROM доступны в TO
* @param $text - переводимый текст
* @return mixed - перевод. Следите за разделителями eolSymbol
*/
public function yandexTranslate($fromLang, $toLang, $text) {
//один из языков должен быть ru - проверяем, хотя переводчик и так вернет текст - сообщение об ошибке
if ($fromLang != 'ru' AND $toLang != 'ru'){
return 'Sorry, translation directly from '.$fromLang.' to '.$toLang.' is impossible';
}
$transferData = array(
'lang' => $fromLang.'-'.$toLang,
'text' => $text,
);
$rawTranslate = $this->yandexConnect($this->translatePath, $transferData);
$rawTranslate = trim($rawTranslate, '"');
$translate = str_replace('\n', $this->eolSymbol, $rawTranslate);
return $translate;
}
}
?>

1
tmp/cache/templates/.htaccess vendored

@ -1 +0,0 @@
Deny from all

62
tmp/update/sql.update.php

@ -229,7 +229,6 @@
"); ");
} }
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
$check = $AVE_DB->Query(" $check = $AVE_DB->Query("
@ -261,7 +260,68 @@
"); ");
} }
/* -------------------------------------------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------------------3.25---------------------------------------------------- */ /* -------------------------------------------------------3.25---------------------------------------------------- */
/* -------------------------------------------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------------------------------------------- */
$check = $AVE_DB->Query("
SELECT COUNT(1)
FROM INFORMATION_SCHEMA.STATISTICS
WHERE
TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = '" . PREFIX . "_document_fields'
AND INDEX_NAME = 'queries';
")->GetCell();
$exist = ($check > 0) ? true : false;
if ($exist === false)
{
$AVE_DB->Real_Query("
CREATE INDEX queries ON " . PREFIX . "_document_fields(document_id, rubric_field_id)
");
}
// ----------------------------------------------------------------------------------------
$check = $AVE_DB->Query("
SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'ave325_settings'
AND COLUMN_NAME = 'use_editor';
")->GetCell();
$exist = ($check) ? true : false;
if ($exist === true)
{
$AVE_DB->Real_Query("
ALTER TABLE " . PREFIX . "_settings
DROP use_editor;
");
}
// ----------------------------------------------------------------------------------------
$check = $AVE_DB->Query("
SELECT COUNT(1)
FROM INFORMATION_SCHEMA.TABLES
WHERE
TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = '" . PREFIX . "_rubric_template_cache';
")->GetCell();
$exist = ($check > 0) ? true : false;
if ($exist === true)
{
$AVE_DB->Real_Query("
DROP TABLE " . PREFIX . "_rubric_template_cache;
");
}
?> ?>
Loading…
Cancel
Save