mirror of https://github.com/avecms/AVE.cms.git
M@d D3n
7 years ago
51 changed files with 7113 additions and 5700 deletions
@ -1,186 +1,186 @@ |
|||||||
<?php |
<?php |
||||||
|
|
||||||
/** |
/** |
||||||
* AVE.cms |
* AVE.cms |
||||||
* |
* |
||||||
* @package AVE.cms |
* @package AVE.cms |
||||||
* @version 3.x |
* @version 3.x |
||||||
* @filesource |
* @filesource |
||||||
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru |
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru |
||||||
* |
* |
||||||
* @license GPL v.2 |
* @license GPL v.2 |
||||||
*/ |
*/ |
||||||
|
|
||||||
if (!defined('ACP')) |
if (!defined('ACP')) |
||||||
{ |
{ |
||||||
header('Location:index.php'); |
header('Location:index.php'); |
||||||
exit; |
exit; |
||||||
} |
} |
||||||
|
|
||||||
global $AVE_Template; |
global $AVE_Template; |
||||||
|
|
||||||
require(BASE_DIR . '/class/class.docs.php'); |
require(BASE_DIR . '/class/class.docs.php'); |
||||||
require(BASE_DIR . '/class/class.settings.php'); |
require(BASE_DIR . '/class/class.settings.php'); |
||||||
$AVE_Settings = new AVE_Settings; |
$AVE_Settings = new AVE_Settings; |
||||||
$AVE_Document = new AVE_Document; |
$AVE_Document = new AVE_Document; |
||||||
|
|
||||||
$AVE_Template->config_load(BASE_DIR . '/admin/lang/' . $_SESSION['admin_language'] . '/settings.txt','settings'); |
$AVE_Template->config_load(BASE_DIR . '/admin/lang/' . $_SESSION['admin_language'] . '/settings.txt','settings'); |
||||||
|
|
||||||
switch($_REQUEST['action']) |
switch($_REQUEST['action']) |
||||||
{ |
{ |
||||||
case '': |
case '': |
||||||
switch ($_REQUEST['sub']) |
switch ($_REQUEST['sub']) |
||||||
{ |
|
||||||
case '': |
|
||||||
if(check_permission_acp('gen_settings')) |
|
||||||
{ |
{ |
||||||
$AVE_Settings->settingsShow(); |
case '': |
||||||
break; |
if(check_permission_acp('gen_settings')) |
||||||
} |
{ |
||||||
|
$AVE_Settings->settingsShow(); |
||||||
case 'case': |
break; |
||||||
if(check_permission_acp('gen_settings_more')) |
} |
||||||
{ |
|
||||||
$AVE_Settings->settingsCase(); |
|
||||||
break; |
|
||||||
} |
|
||||||
|
|
||||||
case 'save': |
case 'case': |
||||||
if (isset($_REQUEST['more'])) { |
if(check_permission_acp('gen_settings_more')) |
||||||
if(check_permission_acp('gen_settings_more')) $AVE_Settings->settingsCase(); |
{ |
||||||
} else { |
$AVE_Settings->settingsCase(); |
||||||
if(check_permission_acp('gen_settings')) $AVE_Settings->settingsSave(); |
break; |
||||||
} |
} |
||||||
break; |
|
||||||
|
|
||||||
case 'countries': |
case 'save': |
||||||
if(check_permission_acp('gen_settings_countries')) |
if (isset($_REQUEST['more'])) { |
||||||
{ |
if(check_permission_acp('gen_settings_more')) $AVE_Settings->settingsCase(); |
||||||
if (isset($_REQUEST['save']) && $_REQUEST['save'] == 1) |
} else { |
||||||
|
if(check_permission_acp('gen_settings')) $AVE_Settings->settingsSave(); |
||||||
|
} |
||||||
|
break; |
||||||
|
|
||||||
|
case 'countries': |
||||||
|
if(check_permission_acp('gen_settings_countries')) |
||||||
{ |
{ |
||||||
$AVE_Settings->settingsCountriesSave(); |
if (isset($_REQUEST['save']) && $_REQUEST['save'] == 1) |
||||||
|
{ |
||||||
|
$AVE_Settings->settingsCountriesSave(); |
||||||
|
|
||||||
header('Location:index.php?do=settings&sub=countries&cp=' . SESSION); |
header('Location:index.php?do=settings&sub=countries&cp=' . SESSION); |
||||||
exit; |
exit; |
||||||
|
} |
||||||
|
$AVE_Settings->settingsCountriesList(); |
||||||
|
break; |
||||||
} |
} |
||||||
$AVE_Settings->settingsCountriesList(); |
|
||||||
break; |
|
||||||
} |
|
||||||
|
|
||||||
case 'language': |
case 'language': |
||||||
if(check_permission_acp('gen_settings_languages')) |
if(check_permission_acp('gen_settings_languages')) |
||||||
{ |
{ |
||||||
if(isset($_REQUEST['func'])){ |
if(isset($_REQUEST['func'])){ |
||||||
switch($_REQUEST['func']) |
switch($_REQUEST['func']) |
||||||
{ |
{ |
||||||
case 'default': |
case 'default': |
||||||
if(isset($_REQUEST['Id'])){ |
if(isset($_REQUEST['Id'])){ |
||||||
$exists=$AVE_DB->Query("SELECT Id FROM ".PREFIX."_settings_lang WHERE Id=".(int)$_REQUEST['Id'])->GetCell(); |
$exists=$AVE_DB->Query("SELECT Id FROM ".PREFIX."_settings_lang WHERE Id=".(int)$_REQUEST['Id'])->GetCell(); |
||||||
if($exists){ |
if($exists){ |
||||||
$AVE_DB->Query("UPDATE ".PREFIX."_settings_lang SET lang_default=0"); |
$AVE_DB->Query("UPDATE ".PREFIX."_settings_lang SET lang_default=0"); |
||||||
$AVE_DB->Query("UPDATE ".PREFIX."_settings_lang SET lang_default=1 WHERE Id=".(int)$_REQUEST['Id']." LIMIT 1"); |
$AVE_DB->Query("UPDATE ".PREFIX."_settings_lang SET lang_default=1 WHERE Id=".(int)$_REQUEST['Id']." LIMIT 1"); |
||||||
|
} |
||||||
} |
} |
||||||
} |
header('Location:index.php?do=settings&sub=language&cp=' . SESSION); |
||||||
header('Location:index.php?do=settings&sub=language&cp=' . SESSION); |
exit; |
||||||
exit; |
|
||||||
|
case 'on': |
||||||
case 'on': |
if(isset($_REQUEST['Id'])){ |
||||||
if(isset($_REQUEST['Id'])){ |
$AVE_DB->Query("UPDATE ".PREFIX."_settings_lang SET lang_status=1 WHERE Id=".(int)$_REQUEST['Id']); |
||||||
$AVE_DB->Query("UPDATE ".PREFIX."_settings_lang SET lang_status=1 WHERE Id=".(int)$_REQUEST['Id']); |
} |
||||||
} |
header('Location:index.php?do=settings&sub=language&cp=' . SESSION); |
||||||
header('Location:index.php?do=settings&sub=language&cp=' . SESSION); |
exit; |
||||||
exit; |
|
||||||
|
case 'off': |
||||||
case 'off': |
if(isset($_REQUEST['Id'])){ |
||||||
if(isset($_REQUEST['Id'])){ |
$AVE_DB->Query("UPDATE ".PREFIX."_settings_lang SET lang_status=0 WHERE Id=".(int)$_REQUEST['Id']); |
||||||
$AVE_DB->Query("UPDATE ".PREFIX."_settings_lang SET lang_status=0 WHERE Id=".(int)$_REQUEST['Id']); |
} |
||||||
} |
header('Location:index.php?do=settings&sub=language&cp=' . SESSION); |
||||||
header('Location:index.php?do=settings&sub=language&cp=' . SESSION); |
exit; |
||||||
exit; |
|
||||||
|
case 'save': |
||||||
case 'save': |
$AVE_Settings->settingsLanguageEditSave(); |
||||||
$AVE_Settings->settingsLanguageEditSave(); |
exit; |
||||||
exit; |
} |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
$AVE_Settings->settingsLanguageList(); |
||||||
|
break; |
||||||
} |
} |
||||||
} |
} |
||||||
else |
|
||||||
|
case 'editlang': |
||||||
|
if (check_permission_acp('gen_settings_languages')) |
||||||
{ |
{ |
||||||
$AVE_Settings->settingsLanguageList(); |
$AVE_Settings->settingsLanguageEdit(); |
||||||
break; |
break; |
||||||
} |
} |
||||||
} |
|
||||||
|
|
||||||
case 'editlang': |
case 'clearcache': |
||||||
if(check_permission_acp('gen_settings_languages')) |
if (check_permission_acp('cache_clear')) |
||||||
{ |
{ |
||||||
$AVE_Settings->settingsLanguageEdit(); |
$AVE_Template->CacheClear(); |
||||||
break; |
exit; |
||||||
} |
} |
||||||
|
|
||||||
case 'clearcache': |
case 'clearthumb': |
||||||
if(check_permission_acp('cache_clear')) |
if (check_permission_acp('cache_thumb')) |
||||||
{ |
{ |
||||||
$AVE_Template->CacheClear(); |
$AVE_Template->ThumbnailsClear(); |
||||||
exit; |
exit; |
||||||
} |
} |
||||||
|
|
||||||
case 'clearthumb': |
case 'clearrevision': |
||||||
if(check_permission_acp('cache_thumb')) |
if (check_permission_acp('document_revisions')) |
||||||
{ |
{ |
||||||
$AVE_Template->ThumbnailsClear(); |
$AVE_Document->documentsRevisionsClear(); |
||||||
exit; |
exit; |
||||||
} |
} |
||||||
|
|
||||||
case 'clearrevision': |
case 'clearcounter': |
||||||
if(check_permission_acp('document_revisions')) |
if (check_permission_acp('gen_settings')) |
||||||
{ |
{ |
||||||
$AVE_Document->documentsRevisionsClear(); |
$AVE_Document->documentCounterClear(); |
||||||
exit; |
exit; |
||||||
} |
} |
||||||
|
|
||||||
case 'clearcounter': |
case 'showcache': |
||||||
if(check_permission_acp('gen_settings')) |
cacheShow(); |
||||||
{ |
exit; |
||||||
$AVE_Document->documentCounterClear(); |
|
||||||
exit; |
|
||||||
} |
} |
||||||
|
break; |
||||||
case 'showcache': |
|
||||||
cacheShow(); |
//-- v3.2 |
||||||
exit; |
case 'paginations': |
||||||
} |
$AVE_Settings->settingsPaginationsList(); |
||||||
break; |
break; |
||||||
|
|
||||||
//-- v3.2 |
case 'new_paginations': |
||||||
case 'paginations': |
$AVE_Settings->settingsPaginationsNew(); |
||||||
$AVE_Settings->settingsPaginationsList(); |
break; |
||||||
break; |
|
||||||
|
case 'edit_paginations': |
||||||
case 'new_paginations': |
$AVE_Settings->settingsPaginationsEdit(); |
||||||
$AVE_Settings->settingsPaginationsNew(); |
break; |
||||||
break; |
|
||||||
|
case 'save_paginations': |
||||||
case 'edit_paginations': |
$AVE_Settings->settingsPaginationsSave(); |
||||||
$AVE_Settings->settingsPaginationsEdit(); |
break; |
||||||
break; |
|
||||||
|
case 'del_paginations': |
||||||
case 'save_paginations': |
$AVE_Settings->settingsPaginationsDel(); |
||||||
$AVE_Settings->settingsPaginationsSave(); |
break; |
||||||
break; |
//-- v3.2 |
||||||
|
|
||||||
case 'del_paginations': |
//-- v3.24 |
||||||
$AVE_Settings->settingsPaginationsDel(); |
case 'robots': |
||||||
break; |
$AVE_Settings->editRobots(); |
||||||
//-- v3.2 |
break; |
||||||
|
|
||||||
//-- v3.24 |
case 'custom': |
||||||
case 'robots': |
$AVE_Settings->editCustom(); |
||||||
$AVE_Settings->editRobots(); |
break; |
||||||
break; |
//-- v3.24 |
||||||
|
} |
||||||
case 'custom': |
|
||||||
$AVE_Settings->editCustom(); |
|
||||||
break; |
|
||||||
//-- v3.24 |
|
||||||
} |
|
||||||
?> |
?> |
@ -0,0 +1,109 @@ |
|||||||
|
<?php |
||||||
|
class Lingua_Stem_Ru |
||||||
|
{ |
||||||
|
public $VERSION = "0.02"; |
||||||
|
public $Stem_Caching = 1; |
||||||
|
public $Stem_Cache = array(); |
||||||
|
public $VOWEL = '/аеиоуыэюя/'; |
||||||
|
public $PERFECTIVEGROUND = '/((ив|ивши|ившись|ыв|ывши|ывшись)|((?<=[ая])(в|вши|вшись)))$/'; |
||||||
|
public $REFLEXIVE = '/(с[яь])$/'; |
||||||
|
public $ADJECTIVE = '/(ее|ие|ые|ое|ими|ыми|ей|ий|ый|ой|ем|им|ым|ом|его|ого|ему|ому|их|ых|ую|юю|ая|яя|ою|ею)$/'; |
||||||
|
public $PARTICIPLE = '/((ивш|ывш|ующ)|((?<=[ая])(ем|нн|вш|ющ|щ)))$/'; |
||||||
|
public $VERB = '/((ила|ыла|ена|ейте|уйте|ите|или|ыли|ей|уй|ил|ыл|им|ым|ен|ило|ыло|ено|ят|ует|уют|ит|ыт|ены|ить|ыть|ишь|ую|ю)|((?<=[ая])(ла|на|ете|йте|ли|й|л|ем|н|ло|но|ет|ют|ны|ть|ешь|нно)))$/'; |
||||||
|
public $NOUN = '/(а|ев|ов|ие|ье|е|иями|ями|ами|еи|ии|и|ией|ей|ой|ий|й|иям|ям|ием|ем|ам|ом|о|у|ах|иях|ях|ы|ь|ию|ью|ю|ия|ья|я)$/'; |
||||||
|
public $RVRE = '/^(.*?[аеиоуыэюя])(.*)$/'; |
||||||
|
public $DERIVATIONAL = '/[^аеиоуыэюя][аеиоуыэюя]+[^аеиоуыэюя]+[аеиоуыэюя].*(?<=о)сть?$/'; |
||||||
|
|
||||||
|
function s(&$s, $re, $to) |
||||||
|
{ |
||||||
|
$orig = $s; |
||||||
|
$s = preg_replace($re, $to, $s); |
||||||
|
return $orig !== $s; |
||||||
|
} |
||||||
|
|
||||||
|
function m($s, $re) |
||||||
|
{ |
||||||
|
return preg_match($re, $s); |
||||||
|
} |
||||||
|
|
||||||
|
function stem_word($word) |
||||||
|
{ |
||||||
|
$word = mb_strtolower($word); |
||||||
|
//$word = strtr($word, 'ё', 'е'); |
||||||
|
# Check against cache of stemmed words |
||||||
|
if ($this->Stem_Caching && isset($this->Stem_Cache[$word])) |
||||||
|
{ |
||||||
|
return $this->Stem_Cache[$word]; |
||||||
|
} |
||||||
|
|
||||||
|
$stem = $word; |
||||||
|
|
||||||
|
do |
||||||
|
{ |
||||||
|
if (! preg_match($this->RVRE, $word, $p)) |
||||||
|
break; |
||||||
|
|
||||||
|
$start = $p[1]; |
||||||
|
$RV = $p[2]; |
||||||
|
|
||||||
|
if (!$RV) |
||||||
|
break; |
||||||
|
|
||||||
|
# Step 1 |
||||||
|
if (! $this->s($RV, $this->PERFECTIVEGROUND, '')) |
||||||
|
{ |
||||||
|
$this->s($RV, $this->REFLEXIVE, ''); |
||||||
|
|
||||||
|
if ($this->s($RV, $this->ADJECTIVE, '')) |
||||||
|
{ |
||||||
|
$this->s($RV, $this->PARTICIPLE, ''); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
if (! $this->s($RV, $this->VERB, '')) |
||||||
|
$this->s($RV, $this->NOUN, ''); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
# Step 2 |
||||||
|
$this->s($RV, '/и$/', ''); |
||||||
|
|
||||||
|
# Step 3 |
||||||
|
if ($this->m($RV, $this->DERIVATIONAL)) |
||||||
|
$this->s($RV, '/ость?$/', ''); |
||||||
|
|
||||||
|
# Step 4 |
||||||
|
if (!$this->s($RV, '/ь$/', '')) |
||||||
|
{ |
||||||
|
$this->s($RV, '/ейше?/', ''); |
||||||
|
$this->s($RV, '/нн$/', 'н'); |
||||||
|
} |
||||||
|
|
||||||
|
$stem = $start.$RV; |
||||||
|
} |
||||||
|
while(false); |
||||||
|
|
||||||
|
if ($this->Stem_Caching) |
||||||
|
$this->Stem_Cache[$word] = $stem; |
||||||
|
|
||||||
|
return $stem; |
||||||
|
} |
||||||
|
|
||||||
|
function stem_caching($parm_ref) |
||||||
|
{ |
||||||
|
$caching_level = @$parm_ref['-level']; |
||||||
|
if ($caching_level) { |
||||||
|
if (!$this->m($caching_level, '/^[012]$/')) { |
||||||
|
die(__CLASS__ . "::stem_caching() - Legal values are '0','1' or '2'. '$caching_level' is not a legal value"); |
||||||
|
} |
||||||
|
$this->Stem_Caching = $caching_level; |
||||||
|
} |
||||||
|
return $this->Stem_Caching; |
||||||
|
} |
||||||
|
|
||||||
|
function clear_stem_cache() |
||||||
|
{ |
||||||
|
$this->Stem_Cache = array(); |
||||||
|
} |
||||||
|
} |
||||||
|
?> |
@ -1,401 +1,376 @@ |
|||||||
<?php |
<?php |
||||||
|
|
||||||
/** |
/** |
||||||
* AVE.cms |
* AVE.cms |
||||||
* |
* |
||||||
* @package AVE.cms |
* @package AVE.cms |
||||||
* @version 3.x |
* @version 3.x |
||||||
* @filesource |
* @filesource |
||||||
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru |
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru |
||||||
* |
* |
||||||
*/ |
*/ |
||||||
|
|
||||||
/** |
|
||||||
* Подключаем файл шаблонизатора Smarty |
|
||||||
*/ |
|
||||||
require(BASE_DIR . '/lib/Smarty/Smarty.class.php'); |
|
||||||
|
|
||||||
/** |
|
||||||
* Расширение класса шаблонизатора Smarty |
|
||||||
* |
|
||||||
*/ |
|
||||||
class AVE_Template extends Smarty |
|
||||||
{ |
|
||||||
/** |
|
||||||
* СВОЙСТВА |
|
||||||
*/ |
|
||||||
|
|
||||||
/** |
/** |
||||||
* Конструктор |
* Подключаем файл шаблонизатора Smarty |
||||||
|
*/ |
||||||
|
require(BASE_DIR . '/lib/Smarty/Smarty.class.php'); |
||||||
|
|
||||||
|
/** |
||||||
|
* Расширение класса шаблонизатора Smarty |
||||||
* |
* |
||||||
* @param string $template_dir путь к директории шаблонов по умолчанию |
|
||||||
* @return AVE_Template |
|
||||||
*/ |
*/ |
||||||
function __construct($template_dir) |
class AVE_Template extends Smarty |
||||||
{ |
{ |
||||||
/** |
/** |
||||||
* Путь к директории шаблонов по умолчанию. |
* СВОЙСТВА |
||||||
* Если вы не передадите тип ресурса во время подключения файлов, они будут искаться здесь. |
*/ |
||||||
*/ |
|
||||||
$this->template_dir = $template_dir; |
|
||||||
|
|
||||||
/** |
/** |
||||||
* Имя каталога, в котором хранятся компилированные шаблоны. |
* Конструктор |
||||||
|
* |
||||||
|
* @param string $template_dir путь к директории шаблонов по умолчанию |
||||||
|
* @return AVE_Template |
||||||
*/ |
*/ |
||||||
$this->compile_dir = BASE_DIR . '/tmp/cache/smarty'; |
function __construct($template_dir) |
||||||
|
{ |
||||||
|
/** |
||||||
|
* Путь к директории шаблонов по умолчанию. |
||||||
|
* Если вы не передадите тип ресурса во время подключения файлов, они будут искаться здесь. |
||||||
|
*/ |
||||||
|
$this->template_dir = $template_dir; |
||||||
|
|
||||||
|
/** |
||||||
|
* Имя каталога, в котором хранятся компилированные шаблоны. |
||||||
|
*/ |
||||||
|
$this->compile_dir = BASE_DIR . '/tmp/cache/smarty'; |
||||||
|
|
||||||
|
/** |
||||||
|
* Имя каталога, в котором хранится кэш. |
||||||
|
*/ |
||||||
|
$this->cache_dir_root = BASE_DIR . '/tmp/cache'; |
||||||
|
|
||||||
|
/** |
||||||
|
* Имя каталога, в котором хранится кэш шаблонов. |
||||||
|
*/ |
||||||
|
$this->cache_dir = BASE_DIR . '/tmp/cache/tpl'; |
||||||
|
|
||||||
|
/** |
||||||
|
* Имя каталога, в котором хранится кэш модулей. |
||||||
|
*/ |
||||||
|
$this->module_cache_dir = BASE_DIR . '/tmp/cache/module'; |
||||||
|
|
||||||
|
/** |
||||||
|
* Имя каталога, в котором хранится сессии пользователей. |
||||||
|
*/ |
||||||
|
$this->session_dir = BASE_DIR . '/tmp/session'; |
||||||
|
|
||||||
|
/** |
||||||
|
* Имя каталога, в котором хранится сессии пользователей. |
||||||
|
*/ |
||||||
|
$this->sql_cache_dir = BASE_DIR . '/tmp/cache/sql'; |
||||||
|
|
||||||
|
/** |
||||||
|
* Использование поддиректорий для хранения кэша и скомпилированных шаблонов. |
||||||
|
*/ |
||||||
|
$this->use_sub_dirs = SMARTY_USE_SUB_DIRS; |
||||||
|
|
||||||
|
/** |
||||||
|
* При каждом вызове РНР-приложения Smarty проверяет, изменился или нет текущий шаблон |
||||||
|
* с момента последней компиляции. Если шаблон изменился, он перекомпилируется. |
||||||
|
* В случае, если шаблон еще не был скомпилирован, его компиляция производится |
||||||
|
* с игнорированием значения этого параметра. |
||||||
|
*/ |
||||||
|
$this->compile_check = SMARTY_COMPILE_CHECK; |
||||||
|
|
||||||
|
/** |
||||||
|
* Активирует debugging console - порожденное при помощи javascript окно браузера, |
||||||
|
* содержащее информацию о подключенных шаблонах и загруженных переменных для текущей страницы. |
||||||
|
*/ |
||||||
|
$this->debugging = SMARTY_DEBUGGING; |
||||||
|
|
||||||
|
/** |
||||||
|
* Регистрация плагинов-функций Smarty. |
||||||
|
* Передается наименование функции шаблона и имя функции, реализующей ее. |
||||||
|
*/ |
||||||
|
$this->register_function('check_permission', 'check_permission'); |
||||||
|
$this->register_function('get_home_link', 'get_home_link'); |
||||||
|
$this->register_function('num_format', 'num_format'); |
||||||
|
$this->register_function('thumb', 'make_thumbnail'); |
||||||
|
|
||||||
|
/** |
||||||
|
* Регистрация плагинов-модификаторов Smarty. |
||||||
|
* Передается имя модификатора и имя функции, реализующей его. |
||||||
|
*/ |
||||||
|
$this->register_modifier('pretty_date', 'pretty_date'); |
||||||
|
$this->register_modifier('translate_date', 'translate_date'); |
||||||
|
$this->register_modifier('utf8', 'utf8'); |
||||||
|
|
||||||
|
// плагин позволяющий поставить метки шаблонов |
||||||
|
// для быстрого поиска шаблона отвечающего за вывод |
||||||
|
// перед использованием очистить cache/smarty |
||||||
|
// $this->register_postfilter('add_template_comment'); |
||||||
|
|
||||||
|
/** |
||||||
|
* Присваиваем общие значения для шаблонов. |
||||||
|
* Можно явно передавать пары имя/значение, |
||||||
|
* или ассоциативные массивы, содержащие пары имя/значение. |
||||||
|
*/ |
||||||
|
$assign['BASE_DIR'] = BASE_DIR; |
||||||
|
$assign['ABS_PATH'] = ABS_PATH; |
||||||
|
$assign['DATE_FORMAT'] = DATE_FORMAT; |
||||||
|
$assign['TIME_FORMAT'] = TIME_FORMAT; |
||||||
|
$assign['PAGE_NOT_FOUND_ID'] = PAGE_NOT_FOUND_ID; |
||||||
|
|
||||||
|
$this->assign($assign); |
||||||
|
} |
||||||
|
|
||||||
/** |
/** |
||||||
* Имя каталога, в котором хранится кэш. |
* ВНУТРЕННИЕ МЕТОДЫ |
||||||
*/ |
*/ |
||||||
$this->cache_dir_root = BASE_DIR . '/tmp/cache'; |
|
||||||
|
|
||||||
/** |
/** |
||||||
* Имя каталога, в котором хранится кэш шаблонов. |
* Проверка наличия одноименного шаблона в директории темы дизайна. |
||||||
|
* При наличии шаблона в директории темы дизайна используется этот шаблон. |
||||||
|
* |
||||||
|
* @param string $tpl путь к шаблону |
||||||
|
* @return string |
||||||
*/ |
*/ |
||||||
$this->cache_dir = BASE_DIR . '/tmp/cache/tpl'; |
function _redefine_template($tpl) |
||||||
|
{ |
||||||
|
if (!defined('THEME_FOLDER')) return $tpl; |
||||||
|
|
||||||
/** |
$r_tpl = str_replace(BASE_DIR, BASE_DIR . '/templates/' . THEME_FOLDER, $tpl); |
||||||
* Имя каталога, в котором хранится кэш модулей. |
|
||||||
*/ |
|
||||||
$this->module_cache_dir = BASE_DIR . '/tmp/cache/module'; |
|
||||||
|
|
||||||
/** |
return (file_exists($r_tpl) && is_file($r_tpl)) ? $r_tpl : $tpl; |
||||||
* Имя каталога, в котором хранится сессии пользователей. |
} |
||||||
*/ |
|
||||||
$this->session_dir = BASE_DIR . '/tmp/session'; |
|
||||||
|
|
||||||
/** |
/** |
||||||
* Имя каталога, в котором хранится сессии пользователей. |
* ВНЕШНИЕ МЕТОДЫ |
||||||
*/ |
*/ |
||||||
$this->sql_cache_dir = BASE_DIR . '/tmp/cache/sql'; |
|
||||||
|
|
||||||
/** |
/** |
||||||
* Использование поддиректорий для хранения кэша и скомпилированных шаблонов. |
* Переопределение одноименного метода Smarty |
||||||
|
* для конфигурационных файлов созданных в теме дизайна. |
||||||
|
* |
||||||
|
* @param string $file |
||||||
|
* @param string $section |
||||||
|
* @param string $scope |
||||||
*/ |
*/ |
||||||
$this->use_sub_dirs = SMARTY_USE_SUB_DIRS; |
function config_load($file, $section = null, $scope = 'global') |
||||||
|
{ |
||||||
|
Smarty::config_load($this->_redefine_template($file), $section, $scope); |
||||||
|
} |
||||||
|
|
||||||
/** |
/** |
||||||
* При каждом вызове РНР-приложения Smarty проверяет, изменился или нет текущий шаблон |
* Переопределение одноименного метода Smarty |
||||||
* с момента последней компиляции. Если шаблон изменился, он перекомпилируется. |
* для пользовательских шаблонов созданных в теме дизайна. |
||||||
* В случае, если шаблон еще не был скомпилирован, его компиляция производится |
* |
||||||
* с игнорированием значения этого параметра. |
* @param string $tpl_file name of template file |
||||||
|
* @param string $cache_id |
||||||
|
* @param string $compile_id |
||||||
|
* @return string|false results of {@link _read_cache_file()} |
||||||
*/ |
*/ |
||||||
$this->compile_check = SMARTY_COMPILE_CHECK; |
function is_cached($tpl_file, $cache_id = null, $compile_id = null) |
||||||
|
{ |
||||||
|
return Smarty::is_cached($this->_redefine_template($tpl_file), $cache_id, $compile_id); |
||||||
|
} |
||||||
|
|
||||||
/** |
/** |
||||||
* Активирует debugging console - порожденное при помощи javascript окно браузера, |
* Переопределение одноименного метода Smarty |
||||||
* содержащее информацию о подключенных шаблонах и загруженных переменных для текущей страницы. |
* для пользовательских шаблонов созданных в теме дизайна. |
||||||
|
* |
||||||
|
* @param string $resource_name |
||||||
|
* @param string $cache_id |
||||||
|
* @param string $compile_id |
||||||
|
* @param boolean $display |
||||||
*/ |
*/ |
||||||
$this->debugging = SMARTY_DEBUGGING; |
function fetch($resource_name, $cache_id = null, $compile_id = null, $display = false) |
||||||
|
{ |
||||||
|
return Smarty::fetch($this->_redefine_template($resource_name), $cache_id, $compile_id, $display); |
||||||
|
} |
||||||
|
|
||||||
/** |
/** |
||||||
* Регистрация плагинов-функций Smarty. |
* Переопределение одноименного метода Smarty |
||||||
* Передается наименование функции шаблона и имя функции, реализующей ее. |
* для пользовательских шаблонов созданных в теме дизайна. |
||||||
|
* |
||||||
|
* @param string $resource_name |
||||||
|
* @param string $cache_id |
||||||
|
* @param string $compile_id |
||||||
*/ |
*/ |
||||||
$this->register_function('check_permission', 'check_permission'); |
function display($resource_name, $cache_id = null, $compile_id = null) |
||||||
$this->register_function('get_home_link', 'get_home_link'); |
{ |
||||||
$this->register_function('num_format', 'num_format'); |
$this->fetch($resource_name, $cache_id, $compile_id, true); |
||||||
$this->register_function('thumb', 'make_thumbnail'); |
} |
||||||
|
|
||||||
/** |
|
||||||
* Регистрация плагинов-модификаторов Smarty. |
|
||||||
* Передается имя модификатора и имя функции, реализующей его. |
|
||||||
*/ |
|
||||||
$this->register_modifier('pretty_date', 'pretty_date'); |
|
||||||
$this->register_modifier('translate_date', 'translate_date'); |
|
||||||
$this->register_modifier('utf8', 'utf8'); |
|
||||||
|
|
||||||
// плагин позволяющий поставить метки шаблонов |
function recursivDelete($dir) |
||||||
// для быстрого поиска шаблона отвечающего за вывод |
{ |
||||||
// перед использованием очистить cache/smarty |
$it = new RecursiveDirectoryIterator($dir . '/'); |
||||||
// $this->register_postfilter('add_template_comment'); |
$files = new RecursiveIteratorIterator($it, RecursiveIteratorIterator::CHILD_FIRST); |
||||||
|
|
||||||
/** |
foreach($files as $file) |
||||||
* Присваиваем общие значения для шаблонов. |
{ |
||||||
* Можно явно передавать пары имя/значение, |
if ($file->getFilename() === '.' || $file->getFilename() === '..') |
||||||
* или ассоциативные массивы, содержащие пары имя/значение. |
continue; |
||||||
*/ |
|
||||||
$assign['BASE_DIR'] = BASE_DIR; |
|
||||||
$assign['ABS_PATH'] = ABS_PATH; |
|
||||||
$assign['DATE_FORMAT'] = DATE_FORMAT; |
|
||||||
$assign['TIME_FORMAT'] = TIME_FORMAT; |
|
||||||
$assign['PAGE_NOT_FOUND_ID'] = PAGE_NOT_FOUND_ID; |
|
||||||
|
|
||||||
$this->assign($assign); |
if ($file->isDir()) |
||||||
} |
rmdir($file->getRealPath()); |
||||||
|
else |
||||||
|
unlink($file->getRealPath()); |
||||||
|
} |
||||||
|
|
||||||
/** |
rmdir($dir); |
||||||
* ВНУТРЕННИЕ МЕТОДЫ |
} |
||||||
*/ |
|
||||||
|
|
||||||
/** |
|
||||||
* Проверка наличия одноименного шаблона в директории темы дизайна. |
|
||||||
* При наличии шаблона в директории темы дизайна используется этот шаблон. |
|
||||||
* |
|
||||||
* @param string $tpl путь к шаблону |
|
||||||
* @return string |
|
||||||
*/ |
|
||||||
function _redefine_template($tpl) |
|
||||||
{ |
|
||||||
if (!defined('THEME_FOLDER')) return $tpl; |
|
||||||
|
|
||||||
$r_tpl = str_replace(BASE_DIR, BASE_DIR . '/templates/' . THEME_FOLDER, $tpl); |
/** |
||||||
|
* Метод очистки кэша |
||||||
|
* |
||||||
|
*/ |
||||||
|
function CacheClear() |
||||||
|
{ |
||||||
|
global $AVE_DB, $AVE_Template; |
||||||
|
|
||||||
return (file_exists($r_tpl) && is_file($r_tpl)) ? $r_tpl : $tpl; |
$message = array(); |
||||||
} |
|
||||||
|
|
||||||
/** |
// Метод очистки кэша |
||||||
* ВНЕШНИЕ МЕТОДЫ |
if (isset($_REQUEST['templateCache']) && $_REQUEST['templateCache'] == '1') |
||||||
*/ |
{ |
||||||
|
// Smarty clear cache |
||||||
|
$this->clear_all_cache(); |
||||||
|
|
||||||
/** |
foreach (glob($this->cache_dir_root . "/cache_*") as $filename) |
||||||
* Переопределение одноименного метода Smarty |
@unlink($filename); |
||||||
* для конфигурационных файлов созданных в теме дизайна. |
|
||||||
* |
|
||||||
* @param string $file |
|
||||||
* @param string $section |
|
||||||
* @param string $scope |
|
||||||
*/ |
|
||||||
function config_load($file, $section = null, $scope = 'global') |
|
||||||
{ |
|
||||||
Smarty::config_load($this->_redefine_template($file), $section, $scope); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
write_htaccess_deny($this->cache_dir . '/'); |
||||||
* Переопределение одноименного метода Smarty |
|
||||||
* для пользовательских шаблонов созданных в теме дизайна. |
|
||||||
* |
|
||||||
* @param string $tpl_file name of template file |
|
||||||
* @param string $cache_id |
|
||||||
* @param string $compile_id |
|
||||||
* @return string|false results of {@link _read_cache_file()} |
|
||||||
*/ |
|
||||||
function is_cached($tpl_file, $cache_id = null, $compile_id = null) |
|
||||||
{ |
|
||||||
return Smarty::is_cached($this->_redefine_template($tpl_file), $cache_id, $compile_id); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
// Memcached |
||||||
* Переопределение одноименного метода Smarty |
if ($_REQUEST['ajax'] && Memcached_Server && Memcached_Port) |
||||||
* для пользовательских шаблонов созданных в теме дизайна. |
{ |
||||||
* |
$memcache = new Memcache; |
||||||
* @param string $resource_name |
$memcache->connect(Memcached_Server, Memcached_Port); |
||||||
* @param string $cache_id |
$memcache->flush(); |
||||||
* @param string $compile_id |
} |
||||||
* @param boolean $display |
|
||||||
*/ |
|
||||||
function fetch($resource_name, $cache_id = null, $compile_id = null, $display = false) |
|
||||||
{ |
|
||||||
return Smarty::fetch($this->_redefine_template($resource_name), $cache_id, $compile_id, $display); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* Переопределение одноименного метода Smarty |
|
||||||
* для пользовательских шаблонов созданных в теме дизайна. |
|
||||||
* |
|
||||||
* @param string $resource_name |
|
||||||
* @param string $cache_id |
|
||||||
* @param string $compile_id |
|
||||||
*/ |
|
||||||
function display($resource_name, $cache_id = null, $compile_id = null) |
|
||||||
{ |
|
||||||
$this->fetch($resource_name, $cache_id, $compile_id, true); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
// Очищаем кэш шаблона документов рубрики |
||||||
* Метод очистки кэша |
$AVE_DB->Query(" |
||||||
* |
DELETE FROM |
||||||
*/ |
" . PREFIX . "_rubric_template_cache |
||||||
function CacheClear() |
"); |
||||||
{ |
|
||||||
global $AVE_DB, $AVE_Template; |
|
||||||
|
|
||||||
$message = array(); |
$message[] = $AVE_Template->get_config_vars('TEMPLATES_CACHE_SUCCESS'); |
||||||
|
reportLog($AVE_Template->get_config_vars('TEMPLATES_CACHE_SUCCESS_LOG')); |
||||||
|
|
||||||
//Метод очистки кэша |
// Очищаем кэш сессий в БД в таблице _sessions |
||||||
if (isset($_REQUEST['templateCache']) && $_REQUEST['templateCache'] == '1') |
$AVE_DB->Query(" |
||||||
{ |
DELETE FROM |
||||||
$this->clear_all_cache(); |
" . PREFIX . "_sessions |
||||||
|
"); |
||||||
|
|
||||||
foreach (glob($this->cache_dir_root . "/cache_*") as $filename) |
$message[] = $AVE_Template->get_config_vars('TEMPLATES_CACHE_DB_SUCCESS'); |
||||||
{ |
reportLog($AVE_Template->get_config_vars('TEMPLATES_CACHE_DB_SUCCESS_LOG')); |
||||||
@unlink($filename); |
|
||||||
} |
} |
||||||
|
|
||||||
$filename = $this->cache_dir . '/.htaccess'; |
|
||||||
|
|
||||||
if (! file_exists($filename)) |
|
||||||
{ |
|
||||||
$fp = @fopen($filename, 'w'); |
|
||||||
if ($fp) |
|
||||||
{ |
|
||||||
fputs($fp, 'Deny from all'); |
|
||||||
fclose($fp); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
if ($_REQUEST['ajax'] && Memcached_Server && Memcached_Port) |
//Метод удаления скомпилированных шаблонов |
||||||
|
if (isset($_REQUEST['templateCompiledTemplate']) && $_REQUEST['templateCompiledTemplate'] == '1') |
||||||
{ |
{ |
||||||
$memcache = new Memcache; |
// Smarty compiled cache |
||||||
$memcache->connect(Memcached_Server, Memcached_Port); |
$this->clear_compiled_tpl(); |
||||||
$memcache->flush(); |
|
||||||
} |
|
||||||
|
|
||||||
// Очищаем кэш шаблона документов рубрики |
write_htaccess_deny($this->compile_dir . '/'); |
||||||
$GLOBALS['AVE_DB']->Query(" |
|
||||||
DELETE |
|
||||||
FROM |
|
||||||
" . PREFIX . "_rubric_template_cache |
|
||||||
"); |
|
||||||
|
|
||||||
$message[] = $AVE_Template->get_config_vars('TEMPLATES_CACHE_SUCCESS'); |
|
||||||
reportLog($AVE_Template->get_config_vars('TEMPLATES_CACHE_SUCCESS_LOG')); |
|
||||||
|
|
||||||
// Очищаем кэш сессий в БД в таблице _sessions |
|
||||||
$GLOBALS['AVE_DB']->Query(" |
|
||||||
DELETE |
|
||||||
FROM |
|
||||||
" . PREFIX . "_sessions |
|
||||||
"); |
|
||||||
|
|
||||||
$message[] = $AVE_Template->get_config_vars('TEMPLATES_CACHE_DB_SUCCESS'); |
|
||||||
reportLog($AVE_Template->get_config_vars('TEMPLATES_CACHE_DB_SUCCESS_LOG')); |
|
||||||
} |
|
||||||
|
|
||||||
//Метод удаления скомпилированных шаблонов |
$filename = $this->compile_dir . '/.htaccess'; |
||||||
if (isset($_REQUEST['templateCompiledTemplate']) && $_REQUEST['templateCompiledTemplate'] == '1') |
|
||||||
{ |
|
||||||
$this->clear_compiled_tpl(); |
|
||||||
|
|
||||||
$filename = $this->compile_dir . '/.htaccess'; |
$message[] = $AVE_Template->get_config_vars('TEMPLATES_CACHE_CT_SUCCESS'); |
||||||
if (! file_exists($filename)) |
reportLog($AVE_Template->get_config_vars('TEMPLATES_CACHE_CT_SUCCESS_LOG')); |
||||||
{ |
|
||||||
$fp = @fopen($filename, 'w'); |
|
||||||
if ($fp) |
|
||||||
{ |
|
||||||
fputs($fp, 'Deny from all'); |
|
||||||
fclose($fp); |
|
||||||
} |
|
||||||
} |
} |
||||||
|
|
||||||
$message[] = $AVE_Template->get_config_vars('TEMPLATES_CACHE_CT_SUCCESS'); |
|
||||||
reportLog($AVE_Template->get_config_vars('TEMPLATES_CACHE_CT_SUCCESS_LOG')); |
|
||||||
} |
|
||||||
|
|
||||||
//Метод удаления скомпилированных шаблонов модулей |
//Метод удаления скомпилированных шаблонов модулей |
||||||
if (isset($_REQUEST['moduleCache']) && $_REQUEST['moduleCache'] == '1') |
if (isset($_REQUEST['moduleCache']) && $_REQUEST['moduleCache'] == '1') |
||||||
{ |
{ |
||||||
rrmdir($this->module_cache_dir); |
$this->recursivDelete($this->module_cache_dir); |
||||||
|
|
||||||
mkdir($this->module_cache_dir,0777,true); |
mkdir($this->module_cache_dir, 0777, true); |
||||||
|
|
||||||
$filename = $this->module_cache_dir . '/.htaccess'; |
write_htaccess_deny($this->module_cache_dir . '/'); |
||||||
|
|
||||||
if (! file_exists($filename)) |
$message[] = $AVE_Template->get_config_vars('TEMPLATES_CACHE_MC_SUCCESS'); |
||||||
{ |
reportLog($AVE_Template->get_config_vars('TEMPLATES_CACHE_MC_SUCCESS_LOG')); |
||||||
$fp = @fopen($filename, 'w'); |
|
||||||
if ($fp) |
|
||||||
{ |
|
||||||
fputs($fp, 'Deny from all'); |
|
||||||
fclose($fp); |
|
||||||
} |
|
||||||
} |
} |
||||||
|
|
||||||
$message[] = $AVE_Template->get_config_vars('TEMPLATES_CACHE_MC_SUCCESS'); |
|
||||||
reportLog($AVE_Template->get_config_vars('TEMPLATES_CACHE_MC_SUCCESS_LOG')); |
|
||||||
} |
|
||||||
|
|
||||||
//Метод удаления всех сессий |
//Метод удаления всех сессий |
||||||
if (isset($_REQUEST['sessionUsers']) && $_REQUEST['sessionUsers'] == '1') |
if (isset($_REQUEST['sessionUsers']) && $_REQUEST['sessionUsers'] == '1') |
||||||
{ |
{ |
||||||
rrmdir($this->session_dir); |
$this->recursivDelete($this->session_dir); |
||||||
|
|
||||||
mkdir($this->session_dir,0777,true); |
mkdir($this->session_dir, 0777, true); |
||||||
|
|
||||||
$filename = $this->session_dir . '/.htaccess'; |
write_htaccess_deny($this->session_dir . '/'); |
||||||
|
|
||||||
if (! file_exists($filename)) |
$message[] = $AVE_Template->get_config_vars('TEMPLATES_CACHE_SU_SUCCESS'); |
||||||
{ |
reportLog($AVE_Template->get_config_vars('TEMPLATES_CACHE_SU_SUCCESS_LOG')); |
||||||
$fp = @fopen($filename, 'w'); |
|
||||||
if ($fp) |
|
||||||
{ |
|
||||||
fputs($fp, 'Deny from all'); |
|
||||||
fclose($fp); |
|
||||||
} |
|
||||||
} |
} |
||||||
|
|
||||||
$message[] = $AVE_Template->get_config_vars('TEMPLATES_CACHE_SU_SUCCESS'); |
|
||||||
reportLog($AVE_Template->get_config_vars('TEMPLATES_CACHE_SU_SUCCESS_LOG')); |
|
||||||
} |
|
||||||
|
|
||||||
//Метод удаления кэша запросов |
//Метод удаления кэша запросов |
||||||
if (isset($_REQUEST['sqlCache']) && $_REQUEST['sqlCache'] == '1') |
if (isset($_REQUEST['sqlCache']) && $_REQUEST['sqlCache'] == '1') |
||||||
{ |
{ |
||||||
rrmdir($this->sql_cache_dir); |
$this->recursivDelete($this->sql_cache_dir); |
||||||
|
|
||||||
mkdir($this->sql_cache_dir,0777,true); |
mkdir($this->sql_cache_dir, 0777, true); |
||||||
|
|
||||||
$filename = $this->sql_cache_dir . '/.htaccess'; |
write_htaccess_deny($this->sql_cache_dir . '/'); |
||||||
|
|
||||||
if (!file_exists($filename)) |
$message[] = $AVE_Template->get_config_vars('TEMPLATES_CACHE_SC_SUCCESS'); |
||||||
{ |
reportLog($AVE_Template->get_config_vars('TEMPLATES_CACHE_SC_SUCCESS_LOG')); |
||||||
$fp = @fopen($filename, 'w'); |
|
||||||
if ($fp) |
|
||||||
{ |
|
||||||
fputs($fp, 'Deny from all'); |
|
||||||
fclose($fp); |
|
||||||
} |
|
||||||
} |
} |
||||||
|
|
||||||
$message[] = $AVE_Template->get_config_vars('TEMPLATES_CACHE_SC_SUCCESS'); |
echo json_encode(array($AVE_Template->get_config_vars('TEMPLATES_MESSAGE') . "<br />" . implode('<br />', $message), 'accept')); |
||||||
reportLog($AVE_Template->get_config_vars('TEMPLATES_CACHE_SC_SUCCESS_LOG')); |
|
||||||
} |
} |
||||||
|
|
||||||
echo json_encode(array($AVE_Template->get_config_vars('TEMPLATES_MESSAGE') . "<br />" . implode('<br />', $message), 'accept')); |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* Метод очистки миниатюр |
|
||||||
* |
|
||||||
*/ |
|
||||||
function ThumbnailsClear() |
|
||||||
{ |
|
||||||
global $AVE_DB, $AVE_Template; |
|
||||||
|
|
||||||
$message = array(); |
/** |
||||||
|
* Метод очистки миниатюр |
||||||
function rdel_thumb($dirname) |
* |
||||||
|
*/ |
||||||
|
function ThumbnailsClear() |
||||||
{ |
{ |
||||||
$dirs = glob("$dirname/*", GLOB_ONLYDIR|GLOB_NOSORT); |
global $AVE_DB, $AVE_Template; |
||||||
|
|
||||||
|
$message = array(); |
||||||
|
|
||||||
foreach ($dirs as $dir) |
function rdel_thumb($dirname) |
||||||
{ |
{ |
||||||
$dir_thumb = THUMBNAIL_DIR; |
$dirs = glob("$dirname/*", GLOB_ONLYDIR|GLOB_NOSORT); |
||||||
$tmb = glob("$dir/$dir_thumb", GLOB_ONLYDIR|GLOB_NOSORT); |
|
||||||
|
|
||||||
foreach ($tmb as $tmbs) |
foreach ($dirs as $dir) |
||||||
{ |
{ |
||||||
rrmdir($tmbs); |
$dir_thumb = THUMBNAIL_DIR; |
||||||
} |
$tmb = glob("$dir/$dir_thumb", GLOB_ONLYDIR|GLOB_NOSORT); |
||||||
|
|
||||||
rdel_thumb($dir); |
foreach ($tmb as $tmbs) |
||||||
} |
rrmdir($tmbs); |
||||||
|
|
||||||
$hid_cat=(glob("$dirname/{.tmb}*", GLOB_ONLYDIR|GLOB_BRACE)); |
rdel_thumb($dir); |
||||||
$hid_tmb=$hid_cat[0]; |
} |
||||||
|
|
||||||
foreach (glob("$hid_cat[0]/*.png", GLOB_NOSORT) as $filename) |
$hid_cat = (glob("$dirname/{.tmb}*", GLOB_ONLYDIR|GLOB_BRACE)); |
||||||
unlink("$filename"); |
$hid_tmb = $hid_cat[0]; |
||||||
} |
|
||||||
|
|
||||||
rdel_thumb(BASE_DIR . '/' . UPLOAD_DIR); |
foreach (glob("$hid_cat[0]/*.png", GLOB_NOSORT) as $filename) |
||||||
|
unlink("$filename"); |
||||||
|
} |
||||||
|
|
||||||
$message[] = $AVE_Template->get_config_vars('TEMPLATES_THUMBNAILS_SUCCESS'); |
rdel_thumb(BASE_DIR . '/' . UPLOAD_DIR); |
||||||
|
|
||||||
reportLog($AVE_Template->get_config_vars('TEMPLATES_THUMBNAILS_SUCCESS_LOG')); |
$message[] = $AVE_Template->get_config_vars('TEMPLATES_THUMBNAILS_SUCCESS'); |
||||||
|
|
||||||
echo json_encode(array($AVE_Template->get_config_vars('TEMPLATES_MESSAGE') . "<br />" . implode('<br />', $message), 'accept')); |
reportLog($AVE_Template->get_config_vars('TEMPLATES_THUMBNAILS_SUCCESS_LOG')); |
||||||
} |
|
||||||
|
|
||||||
} |
echo json_encode(array($AVE_Template->get_config_vars('TEMPLATES_MESSAGE') . "<br />" . implode('<br />', $message), 'accept')); |
||||||
|
} |
||||||
|
} |
||||||
?> |
?> |
@ -0,0 +1,121 @@ |
|||||||
|
<?php |
||||||
|
/* |
||||||
|
|
||||||
|
Версия от 06.03.2018г. |
||||||
|
|
||||||
|
Как это работает: |
||||||
|
1) Пользователь зашел на сайт первый раз. |
||||||
|
2) Если есть хотя бы один параметр - сохраняет cookies |
||||||
|
3) Если utm_history уже есть, то сохраняет данные в utm_last |
||||||
|
4) utm_last перезаписывается при каждом новом значении, а utm_history всегда остаётся неизменной (если был передан хотя бы один параметр) |
||||||
|
5) utm_source сохраняется всегда до закрытия браузера |
||||||
|
|
||||||
|
*/ |
||||||
|
class UTMCookie |
||||||
|
{ |
||||||
|
|
||||||
|
private $parameters = array('utm_source', 'utm_medium', 'utm_campaign'); |
||||||
|
|
||||||
|
private $utm_history = ''; |
||||||
|
private $utm_last = ''; |
||||||
|
private $utm_source = ''; |
||||||
|
|
||||||
|
//Проверка параметров: Если все присутствуют - true, иначе false |
||||||
|
private function check_parameters() |
||||||
|
{ |
||||||
|
//return true; //Сохранять всегда! |
||||||
|
|
||||||
|
$return = false; |
||||||
|
|
||||||
|
foreach ($this->parameters as $param) |
||||||
|
if (isset($_GET[$param]) && $_GET[$param] != '') |
||||||
|
$return = true; |
||||||
|
|
||||||
|
return $return; |
||||||
|
} |
||||||
|
|
||||||
|
//Создаёт строку с параметрами вот такого вида: utm_source=test; utm_medium=none; utm_campaign=kompaniya1; |
||||||
|
private function create_parameters() |
||||||
|
{ |
||||||
|
$content = ''; |
||||||
|
foreach($this->parameters as $param){ |
||||||
|
|
||||||
|
if (isset($_GET[$param]) && $_GET[$param] != '') |
||||||
|
{ |
||||||
|
$content .= $param.'='.$_GET[$param].'; '; |
||||||
|
|
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
$content .= $param.'=none; '; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
return $content; |
||||||
|
} |
||||||
|
|
||||||
|
//Сохраняет переданные параметры, если требуется |
||||||
|
//Если utm_history присутствует, то сохраняет utm_last |
||||||
|
public function save_parameters() |
||||||
|
{ |
||||||
|
if (isset($_GET['utm_source']) && trim($_GET['utm_source']) != '') |
||||||
|
{ |
||||||
|
setcookie('utm_source', $_GET['utm_source']); |
||||||
|
|
||||||
|
$this->utm_source = $_GET['utm_source']; |
||||||
|
} |
||||||
|
|
||||||
|
//$utm_history = ''; |
||||||
|
|
||||||
|
if (! isset($_COOKIE['utm_history']) || $_COOKIE['utm_history'] == '') |
||||||
|
{ |
||||||
|
//Отсутствует utm_history |
||||||
|
if($this->check_parameters() == true) |
||||||
|
{ |
||||||
|
|
||||||
|
$utm_history = $this->create_parameters(); |
||||||
|
setcookie('utm_history', $utm_history, time()+15552000); //На 6 месяцев |
||||||
|
setcookie('utm_last', ''); |
||||||
|
|
||||||
|
$this->utm_history = $utm_history; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
//utm_history присутствует |
||||||
|
|
||||||
|
$this->utm_history = $_COOKIE['utm_history']; |
||||||
|
|
||||||
|
//Перезапишем utm_last, если есть данные для этого |
||||||
|
if($this->check_parameters() == true){ |
||||||
|
|
||||||
|
$utm_last = $this->create_parameters(); |
||||||
|
|
||||||
|
if($utm_last != $_COOKIE['utm_history']) |
||||||
|
setcookie('utm_last', $utm_last, time()+15552000); //На 6 месяцев |
||||||
|
|
||||||
|
$this->utm_last = $utm_last; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
//Возвращает значение cookies |
||||||
|
public function get_value($name = '') |
||||||
|
{ |
||||||
|
$name = trim($name); |
||||||
|
|
||||||
|
if ($name == '' || ! in_array($name, array('utm_history', 'utm_last', 'utm_source'))) |
||||||
|
$name = 'utm_history'; |
||||||
|
|
||||||
|
if (isset($this->$name) && $this->$name != '') |
||||||
|
return $this->$name; |
||||||
|
|
||||||
|
return isset($_COOKIE[$name]) ? $_COOKIE[$name] : ''; |
||||||
|
} |
||||||
|
} |
||||||
|
?> |
@ -0,0 +1,224 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
/** |
||||||
|
* AVE.cms |
||||||
|
* |
||||||
|
* @package AVE.cms |
||||||
|
* @version 3.x |
||||||
|
* @filesource |
||||||
|
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru |
||||||
|
* |
||||||
|
* @license GPL v.2 |
||||||
|
*/ |
||||||
|
|
||||||
|
// Tags |
||||||
|
function get_field_tags ($field_value, $action, $field_id = 0, $tpl = '', $tpl_empty = 0, &$maxlength = null, $document_fields = array(), $rubric_id = 0, $default = null, $_tpl = null) |
||||||
|
{ |
||||||
|
global $AVE_DB, $AVE_Template; |
||||||
|
|
||||||
|
$fld_dir = dirname(__FILE__) . '/'; |
||||||
|
$tpl_dir = $fld_dir . 'tpl/'; |
||||||
|
$fld_name = basename($fld_dir); |
||||||
|
|
||||||
|
$rubric_id = $rubric_id > 0 |
||||||
|
? $rubric_id |
||||||
|
: $_REQUEST['rubric_id'] |
||||||
|
? (int)$_REQUEST['rubric_id'] |
||||||
|
: $AVE_DB->Query("SELECT rubric_id FROM ".PREFIX."_documents WHERE Id = '".$_REQUEST['Id']."'")->GetCell(); |
||||||
|
|
||||||
|
$lang_file = $fld_dir . 'lang/' . (defined('ACP') |
||||||
|
? $_SESSION['admin_language'] |
||||||
|
: $_SESSION['user_language']) . '.txt'; |
||||||
|
|
||||||
|
$AVE_Template->config_load($lang_file, 'lang'); |
||||||
|
$AVE_Template->assign('config_vars', $AVE_Template->get_config_vars()); |
||||||
|
$AVE_Template->config_load($lang_file, 'admin'); |
||||||
|
|
||||||
|
switch ($action) |
||||||
|
{ |
||||||
|
case 'edit': |
||||||
|
$sql = " |
||||||
|
SELECT DISTINCT |
||||||
|
tag |
||||||
|
FROM |
||||||
|
".PREFIX."_document_tags |
||||||
|
WHERE |
||||||
|
rubric_id = '".$rubric_id."' |
||||||
|
ORDER BY tag ASC |
||||||
|
"; |
||||||
|
|
||||||
|
$query = $AVE_DB->Query($sql); |
||||||
|
|
||||||
|
$field_tags = array(); |
||||||
|
|
||||||
|
while ($row = $query->GetCell()) |
||||||
|
array_push($field_tags, $row); |
||||||
|
|
||||||
|
$field_value = explode('|', $field_value); |
||||||
|
$field_value = array_diff($field_value, array('')); |
||||||
|
|
||||||
|
$total = count($field_tags); |
||||||
|
|
||||||
|
$field_points = array(ceil($total/4), 2*ceil($total/4), 3*ceil($total/4)); |
||||||
|
|
||||||
|
$AVE_Template->assign('field_points', $field_points); |
||||||
|
$AVE_Template->assign('field_tags', $field_tags); |
||||||
|
$AVE_Template->assign('field_dir', $fld_name); |
||||||
|
$AVE_Template->assign('field_id', $field_id); |
||||||
|
$AVE_Template->assign('field_value', $field_value); |
||||||
|
|
||||||
|
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin', $_tpl); |
||||||
|
|
||||||
|
return $AVE_Template->fetch($tpl_file); |
||||||
|
break; |
||||||
|
|
||||||
|
case 'doc': |
||||||
|
|
||||||
|
$AVE_Template->config_load($lang_file, 'public'); |
||||||
|
|
||||||
|
if ($tpl_empty) |
||||||
|
{ |
||||||
|
$field_value = explode('|', $field_value); |
||||||
|
$field_value = array_diff($field_value, array('')); |
||||||
|
$field_value = array_values($field_value); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
$field_param = explode('|', $field_value); |
||||||
|
$field_param = array_diff($field_param, array('')); |
||||||
|
$field_param = array_values($field_param); |
||||||
|
$field_value = preg_replace_callback( |
||||||
|
'/\[tag:parametr:(\d+)\]/i', |
||||||
|
function ($data) use ($field_param) |
||||||
|
{ |
||||||
|
return $field_param[(int)$data[1]]; |
||||||
|
}, |
||||||
|
$tpl |
||||||
|
); |
||||||
|
} |
||||||
|
|
||||||
|
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'doc', $_tpl); |
||||||
|
|
||||||
|
if ($tpl_empty && $tpl_file) |
||||||
|
{ |
||||||
|
$AVE_Template->assign('field_id', $field_id); |
||||||
|
$AVE_Template->assign('field_default', $default); |
||||||
|
$AVE_Template->assign('field_value', $field_value); |
||||||
|
|
||||||
|
return $AVE_Template->fetch($tpl_file); |
||||||
|
} |
||||||
|
|
||||||
|
return $field_value; |
||||||
|
break; |
||||||
|
|
||||||
|
case 'req': |
||||||
|
|
||||||
|
$AVE_Template->config_load($lang_file, 'public'); |
||||||
|
|
||||||
|
if ($tpl_empty) |
||||||
|
{ |
||||||
|
$field_value = explode('|', $field_value); |
||||||
|
$field_value = array_diff($field_value, array('')); |
||||||
|
$field_value = array_values($field_value); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
$field_param = explode('|', $field_value); |
||||||
|
$field_param = array_diff($field_param, array('')); |
||||||
|
$field_param = array_values($field_param); |
||||||
|
$field_value = preg_replace_callback( |
||||||
|
'/\[tag:parametr:(\d+)\]/i', |
||||||
|
function($data) use($field_param) |
||||||
|
{ |
||||||
|
return $field_param[(int)$data[1]]; |
||||||
|
}, |
||||||
|
$tpl |
||||||
|
); |
||||||
|
} |
||||||
|
|
||||||
|
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'req', $_tpl); |
||||||
|
|
||||||
|
if ($tpl_empty && $tpl_file) |
||||||
|
{ |
||||||
|
$AVE_Template->assign('field_id', $field_id); |
||||||
|
$AVE_Template->assign('field_default', $default); |
||||||
|
$AVE_Template->assign('field_value', $field_value); |
||||||
|
|
||||||
|
return $AVE_Template->fetch($tpl_file); |
||||||
|
} |
||||||
|
|
||||||
|
return $field_value; |
||||||
|
break; |
||||||
|
|
||||||
|
case 'save': |
||||||
|
// Регистрируем хук |
||||||
|
Hooks::register('DocumentAfterSave', 'afterTagsSave', 10); |
||||||
|
|
||||||
|
$field_value = tagsValue($field_value); |
||||||
|
|
||||||
|
if (! empty($field_value)) |
||||||
|
$field_value = '|' . implode('|', $field_value) . '|'; |
||||||
|
|
||||||
|
return $field_value; |
||||||
|
|
||||||
|
case 'name': |
||||||
|
return $AVE_Template->get_config_vars('name'); |
||||||
|
|
||||||
|
default: |
||||||
|
return $field_value; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (! function_exists('tagsValue')) |
||||||
|
{ |
||||||
|
function tagsValue ($field_value) |
||||||
|
{ |
||||||
|
// Если есть выделенные теги |
||||||
|
if (! empty($field_value['tags'])) |
||||||
|
$tags = $field_value['tags']; |
||||||
|
else |
||||||
|
$tags = array(); |
||||||
|
|
||||||
|
unset ($tags['other']); |
||||||
|
|
||||||
|
// Если есть теги через зяпятую |
||||||
|
if (! empty($field_value['tags']['other'])) |
||||||
|
{ |
||||||
|
$tags_new = explode(',', $field_value['tags']['other']); |
||||||
|
$tags_new = array_map('trim', $tags_new); |
||||||
|
} |
||||||
|
else |
||||||
|
$tags_new = array(); |
||||||
|
|
||||||
|
// Совмещаем массивы |
||||||
|
$tags = array_merge($tags, $tags_new); |
||||||
|
|
||||||
|
// Делаем уникальные значения |
||||||
|
$field_value = array_unique($tags); |
||||||
|
|
||||||
|
return $field_value; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (! function_exists('afterTagsSave')) |
||||||
|
{ |
||||||
|
function afterTagsSave ($data) |
||||||
|
{ |
||||||
|
global $AVE_Document; |
||||||
|
|
||||||
|
foreach ($data['data']['feld'] AS $_k => $_v) |
||||||
|
{ |
||||||
|
if (array_key_exists('tags', $_v)) |
||||||
|
{ |
||||||
|
$tags = tagsValue($_v); |
||||||
|
|
||||||
|
if (! empty($tags)) |
||||||
|
{ |
||||||
|
$tags = implode(',', $tags); |
||||||
|
$AVE_Document->saveTags($data['document_id'], $data['rubric_id'], $tags); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
?> |
@ -0,0 +1,4 @@ |
|||||||
|
[admin] |
||||||
|
name = "Теги" |
||||||
|
new = "Новые теги, через запятую" |
||||||
|
notags = "Отсутвуют теги" |
@ -0,0 +1,9 @@ |
|||||||
|
{* |
||||||
|
$field_id |
||||||
|
$field_value |
||||||
|
*} |
||||||
|
{if $field_value} |
||||||
|
{foreach from=$field_value item=tag} |
||||||
|
<li>{$tag}</li> |
||||||
|
{/foreach} |
||||||
|
{/if} |
@ -0,0 +1,5 @@ |
|||||||
|
{* |
||||||
|
$field_id |
||||||
|
$field_value |
||||||
|
*} |
||||||
|
{$field_value} |
@ -0,0 +1,26 @@ |
|||||||
|
{if $field_tags} |
||||||
|
<div style="width:25%; float:left;"> |
||||||
|
{foreach from=$field_tags item=tag name=tags} |
||||||
|
<label style="clear:both; display:block; padding: 2px; width: 90%;"> |
||||||
|
<input class="float checkbox" type="checkbox" value="{$tag}" name="feld[{$field_id}][tags][]" {if in_array($tag, $field_value)}checked="checked"{/if} /> {$tag} |
||||||
|
</label> |
||||||
|
{if in_array($smarty.foreach.tags.index, $field_points)} |
||||||
|
<div class="fix"></div> |
||||||
|
</div> |
||||||
|
<div style="width:25%; float:left;"> |
||||||
|
{/if} |
||||||
|
{/foreach} |
||||||
|
<div class="fix"></div> |
||||||
|
</div> |
||||||
|
{else} |
||||||
|
<ul class="messages"> |
||||||
|
<li class="highlight yellow">{#notags#}</li> |
||||||
|
</ul> |
||||||
|
{/if} |
||||||
|
<div class="fix"></div> |
||||||
|
<div> |
||||||
|
<br/> |
||||||
|
<h6>{#new#}</h6> |
||||||
|
<input type="text" style="width: 100%;" name="feld[{$field_id}][tags][other]" value="" class="mousetrap" /> |
||||||
|
<div class="fix"></div> |
||||||
|
</div> |
@ -1,213 +1,226 @@ |
|||||||
<?php |
<?php |
||||||
|
/** |
||||||
/** |
* AVE.cms |
||||||
* AVE.cms |
* |
||||||
* |
* @package AVE.cms |
||||||
* @package AVE.cms |
* @version 3.x |
||||||
* @version 3.x |
* @filesource |
||||||
* @filesource |
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru |
||||||
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru |
* |
||||||
* |
* @license GPL v.2 |
||||||
* @license GPL v.2 |
*/ |
||||||
*/ |
|
||||||
|
|
||||||
/** |
/** |
||||||
* Функция дописывает в JPG файлы IPTC Tag |
* Функция дописывает в JPG файлы IPTC Tag |
||||||
* |
* |
||||||
* @param string $rec |
* @param string $rec |
||||||
* @param string $data |
* @param string $data |
||||||
* @param string $value |
* @param string $value |
||||||
* @return string |
* @return string |
||||||
*/ |
*/ |
||||||
function iptc_make_tag($rec, $data, $value) |
|
||||||
{ |
if (! function_exists('iptc_make_tag')) |
||||||
$length = strlen($value); |
|
||||||
$retval = chr(0x1C) . chr($rec) . chr($data); |
|
||||||
|
|
||||||
if($length < 0x8000) |
|
||||||
{ |
|
||||||
$retval .= chr($length >> 8) . chr($length & 0xFF); |
|
||||||
} |
|
||||||
else |
|
||||||
{ |
{ |
||||||
$retval .= chr(0x80) . |
function iptc_make_tag($rec, $data, $value) |
||||||
chr(0x04) . |
{ |
||||||
chr(($length >> 24) & 0xFF) . |
$length = strlen($value); |
||||||
chr(($length >> 16) & 0xFF) . |
$retval = chr(0x1C) . chr($rec) . chr($data); |
||||||
chr(($length >> 8) & 0xFF) . |
|
||||||
chr($length & 0xFF); |
|
||||||
} |
|
||||||
|
|
||||||
return $retval . $value; |
|
||||||
} |
|
||||||
|
|
||||||
/** |
|
||||||
* Функция накладывает watermark на заданный файл |
|
||||||
* |
|
||||||
* @param string $file URL Файла |
|
||||||
* @param string $position Позиция |
|
||||||
* @param int $transparency Прозарчность |
|
||||||
* @return string link |
|
||||||
*/ |
|
||||||
function watermarks($file, $position='center', $transparency=100) { |
|
||||||
|
|
||||||
global $AVE_DB; |
if ($length < 0x8000) |
||||||
|
{ |
||||||
|
$retval .= chr($length >> 8) . chr($length & 0xFF); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
$retval .= chr(0x80) . |
||||||
|
chr(0x04) . |
||||||
|
chr(($length >> 24) & 0xFF) . |
||||||
|
chr(($length >> 16) & 0xFF) . |
||||||
|
chr(($length >> 8) & 0xFF) . |
||||||
|
chr($length & 0xFF); |
||||||
|
} |
||||||
|
|
||||||
if (!defined('WATERMARKS_DIR') || !defined('WATERMARKS_FILE')) exit(0); |
return $retval . $value; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
$save = true; |
|
||||||
|
|
||||||
$margin = 10; |
/** |
||||||
|
* Функция накладывает watermark на заданный файл |
||||||
|
* |
||||||
|
* @param string $file URL Файла |
||||||
|
* @param string $position Позиция |
||||||
|
* @param int $transparency Прозарчность |
||||||
|
* @return string link |
||||||
|
*/ |
||||||
|
function watermarks($file, $position='center', $transparency=100) |
||||||
|
{ |
||||||
|
global $AVE_DB; |
||||||
|
|
||||||
$file_info = pathinfo($file); |
if (! defined('WATERMARKS_DIR') || ! defined('WATERMARKS_FILE')) |
||||||
|
return $file; |
||||||
|
|
||||||
$watermarkFile = BASE_DIR . '/' . WATERMARKS_FILE; |
$save = true; |
||||||
$watermarkDir = BASE_DIR . '/' . WATERMARKS_DIR; |
|
||||||
|
|
||||||
$imagePath = BASE_DIR . '/' . trim($file_info['dirname'], '/'); |
$margin = 10; |
||||||
$imageName = $file_info['basename']; |
|
||||||
|
|
||||||
$copyPath = $watermarkDir . '/' . trim($file_info['dirname'], '/'); |
$file_info = pathinfo($file); |
||||||
$copyName = $imageName; |
|
||||||
|
|
||||||
if(!is_dir($watermarkDir)) { |
$watermarkFile = BASE_DIR . '/' . WATERMARKS_FILE; |
||||||
@mkdir($watermarkDir, 0777, true); |
$watermarkDir = BASE_DIR . '/' . WATERMARKS_DIR; |
||||||
write_htaccess_deny($watermarkDir); |
|
||||||
} |
|
||||||
|
|
||||||
if(file_exists("$copyPath/$copyName") || !file_exists("$imagePath/$imageName")){ |
$imagePath = BASE_DIR . '/' . trim($file_info['dirname'], '/'); |
||||||
$save = false; |
$imageName = $file_info['basename']; |
||||||
} |
|
||||||
|
|
||||||
if(file_exists($watermarkFile) && file_exists("$imagePath/$imageName")){ |
$copyPath = $watermarkDir . '/' . trim($file_info['dirname'], '/'); |
||||||
|
$copyName = $imageName; |
||||||
|
|
||||||
$size_image = getimagesize("$imagePath/$imageName"); |
if (! file_exists($watermarkDir . $file)) |
||||||
$size_wtmrk = getimagesize($watermarkFile); |
return $file; |
||||||
|
|
||||||
list($xImage, $yImage) = $size_image; |
if (! is_dir($watermarkDir)) |
||||||
list($xWtmrk, $yWtmrk) = $size_wtmrk; |
{ |
||||||
|
@mkdir($watermarkDir, 0777, true); |
||||||
|
write_htaccess_deny($watermarkDir); |
||||||
|
} |
||||||
|
|
||||||
if ($xImage < $xWtmrk || $yImage < $yWtmrk) { |
if (file_exists("$copyPath/$copyName") || !file_exists("$imagePath/$imageName")) |
||||||
$save = false; |
$save = false; |
||||||
} else { |
|
||||||
$save = true; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
if (file_exists("$copyPath/$copyName")) $save = false; |
if (file_exists($watermarkFile) && file_exists("$imagePath/$imageName")) |
||||||
|
{ |
||||||
|
$size_image = getimagesize("$imagePath/$imageName"); |
||||||
|
$size_wtmrk = getimagesize($watermarkFile); |
||||||
|
|
||||||
if ($save){ |
list($xImage, $yImage) = $size_image; |
||||||
if (!is_dir($copyPath) && !@mkdir($copyPath, 0777, true)) exit(0); |
list($xWtmrk, $yWtmrk) = $size_wtmrk; |
||||||
require_once BASE_DIR.'/class/class.thumbnail.php'; |
|
||||||
$watermark = new Image_Toolbox("$imagePath/$imageName"); |
|
||||||
|
|
||||||
if (rename("$imagePath/$imageName", "$copyPath/$copyName")) |
if ($xImage < $xWtmrk || $yImage < $yWtmrk) |
||||||
{ |
$save = false; |
||||||
$old = umask(0); |
else |
||||||
chmod("$copyPath/$copyName", 0777); |
$save = true; |
||||||
umask($old); |
|
||||||
} |
} |
||||||
|
|
||||||
switch ($position) |
if (file_exists("$copyPath/$copyName")) |
||||||
|
$save = false; |
||||||
|
|
||||||
|
if ($save) |
||||||
{ |
{ |
||||||
case 'top': |
if (! is_dir($copyPath) && !@mkdir($copyPath, 0777, true)) |
||||||
case 'topcenter': |
return $file; |
||||||
$xLogoPosition = 'center -'; |
|
||||||
$yLogoPosition = 'top +'.$margin; |
|
||||||
break; |
|
||||||
|
|
||||||
case 'topleft': |
|
||||||
$xLogoPosition = 'left +'.$margin; |
|
||||||
$yLogoPosition = 'top +'.$margin; |
|
||||||
break; |
|
||||||
|
|
||||||
case 'topright': |
|
||||||
$xLogoPosition = 'right -'.$margin; |
|
||||||
$yLogoPosition = 'top +'.$margin; |
|
||||||
break; |
|
||||||
|
|
||||||
case 'center': |
|
||||||
$xLogoPosition = 'center -'; |
|
||||||
$yLogoPosition = 'center -'; |
|
||||||
break; |
|
||||||
|
|
||||||
case 'centerleft': |
|
||||||
$xLogoPosition = 'left +'.$margin; |
|
||||||
$yLogoPosition = 'center -'; |
|
||||||
break; |
|
||||||
|
|
||||||
case 'centerright': |
|
||||||
$xLogoPosition = 'right -'.$margin; |
|
||||||
$yLogoPosition = 'center -'; |
|
||||||
break; |
|
||||||
|
|
||||||
case 'bottom': |
|
||||||
case 'bottomcenter': |
|
||||||
$xLogoPosition = 'center -'; |
|
||||||
$yLogoPosition = 'bottom -'.$margin; |
|
||||||
break; |
|
||||||
|
|
||||||
case 'bottomleft': |
|
||||||
$xLogoPosition = 'left +'.$margin; |
|
||||||
$yLogoPosition = 'bottom -'.$margin; |
|
||||||
break; |
|
||||||
|
|
||||||
case 'bottomright': |
|
||||||
$xLogoPosition = 'right -'.$margin; |
|
||||||
$yLogoPosition = 'bottom -'.$margin; |
|
||||||
break; |
|
||||||
|
|
||||||
case 'repeat': |
|
||||||
$xLogoPosition = 'repeat '; |
|
||||||
$yLogoPosition = 'repeat '; |
|
||||||
break; |
|
||||||
|
|
||||||
default: |
|
||||||
$xLogoPosition = 'center -'; |
|
||||||
$yLogoPosition = 'center -'; |
|
||||||
break; |
|
||||||
} |
|
||||||
|
|
||||||
$watermark->addImage($watermarkFile); |
require_once BASE_DIR.'/class/class.thumbnail.php'; |
||||||
$watermark->blend($xLogoPosition, $yLogoPosition, IMAGE_TOOLBOX_BLEND_COPY, $transparency); |
|
||||||
$watermark->save("$imagePath/$imageName"); |
|
||||||
|
|
||||||
if($watermark->_img['main']['type']==2){ |
$watermark = new Image_Toolbox("$imagePath/$imageName"); |
||||||
$image = getimagesize("$imagePath/$imageName", $info); |
|
||||||
if(!isset($info['APP13'])) |
if (rename("$imagePath/$imageName", "$copyPath/$copyName")) |
||||||
{ |
{ |
||||||
|
$old = umask(0); |
||||||
|
chmod("$copyPath/$copyName", 0777); |
||||||
|
umask($old); |
||||||
|
} |
||||||
|
|
||||||
$sitename = get_settings('site_name'); |
switch ($position) |
||||||
|
{ |
||||||
|
case 'top': |
||||||
|
case 'topcenter': |
||||||
|
$xLogoPosition = 'center -'; |
||||||
|
$yLogoPosition = 'top +'.$margin; |
||||||
|
break; |
||||||
|
|
||||||
|
case 'topleft': |
||||||
|
$xLogoPosition = 'left +'.$margin; |
||||||
|
$yLogoPosition = 'top +'.$margin; |
||||||
|
break; |
||||||
|
|
||||||
|
case 'topright': |
||||||
|
$xLogoPosition = 'right -'.$margin; |
||||||
|
$yLogoPosition = 'top +'.$margin; |
||||||
|
break; |
||||||
|
|
||||||
|
case 'center': |
||||||
|
$xLogoPosition = 'center -'; |
||||||
|
$yLogoPosition = 'center -'; |
||||||
|
break; |
||||||
|
|
||||||
|
case 'centerleft': |
||||||
|
$xLogoPosition = 'left +'.$margin; |
||||||
|
$yLogoPosition = 'center -'; |
||||||
|
break; |
||||||
|
|
||||||
|
case 'centerright': |
||||||
|
$xLogoPosition = 'right -'.$margin; |
||||||
|
$yLogoPosition = 'center -'; |
||||||
|
break; |
||||||
|
|
||||||
|
case 'bottom': |
||||||
|
case 'bottomcenter': |
||||||
|
$xLogoPosition = 'center -'; |
||||||
|
$yLogoPosition = 'bottom -'.$margin; |
||||||
|
break; |
||||||
|
|
||||||
|
case 'bottomleft': |
||||||
|
$xLogoPosition = 'left +'.$margin; |
||||||
|
$yLogoPosition = 'bottom -'.$margin; |
||||||
|
break; |
||||||
|
|
||||||
|
case 'bottomright': |
||||||
|
$xLogoPosition = 'right -'.$margin; |
||||||
|
$yLogoPosition = 'bottom -'.$margin; |
||||||
|
break; |
||||||
|
|
||||||
|
case 'repeat': |
||||||
|
$xLogoPosition = 'repeat '; |
||||||
|
$yLogoPosition = 'repeat '; |
||||||
|
break; |
||||||
|
|
||||||
|
default: |
||||||
|
$xLogoPosition = 'center -'; |
||||||
|
$yLogoPosition = 'center -'; |
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
// установка IPTC тэгов |
$watermark->addImage($watermarkFile); |
||||||
$iptc = array( |
$watermark->blend($xLogoPosition, $yLogoPosition, IMAGE_TOOLBOX_BLEND_COPY, $transparency); |
||||||
'2#120' => iconv("UTF-8","WINDOWS-1251",$sitename), |
$watermark->save("$imagePath/$imageName"); |
||||||
'2#116' => "http://".$_SERVER['SERVER_NAME'] |
|
||||||
); |
|
||||||
|
|
||||||
// Преобразование IPTC тэгов в двоичный код |
if ($watermark->_img['main']['type'] == 2) |
||||||
$data = ''; |
{ |
||||||
|
$image = getimagesize("$imagePath/$imageName", $info); |
||||||
|
|
||||||
foreach($iptc as $tag => $string) |
if (! isset($info['APP13'])) |
||||||
{ |
{ |
||||||
$tag = substr($tag, 2); |
$sitename = get_settings('site_name'); |
||||||
$data .= iptc_make_tag(2, $tag, $string); |
|
||||||
|
// установка IPTC тэгов |
||||||
|
$iptc = array( |
||||||
|
'2#120' => iconv("UTF-8","WINDOWS-1251",$sitename), |
||||||
|
'2#116' => "http://".$_SERVER['SERVER_NAME'] |
||||||
|
); |
||||||
|
|
||||||
|
// Преобразование IPTC тэгов в двоичный код |
||||||
|
$data = ''; |
||||||
|
|
||||||
|
foreach ($iptc AS $tag => $string) |
||||||
|
{ |
||||||
|
$tag = substr($tag, 2); |
||||||
|
$data .= iptc_make_tag(2, $tag, $string); |
||||||
|
} |
||||||
|
|
||||||
|
// Встраивание IPTC данных |
||||||
|
$content = iptcembed($data, "$imagePath/$imageName"); |
||||||
|
|
||||||
|
// запись нового изображения в файл |
||||||
|
$fp = fopen("$imagePath/$imageName", "wb"); |
||||||
|
fwrite($fp, $content); |
||||||
|
fclose($fp); |
||||||
} |
} |
||||||
|
|
||||||
// Встраивание IPTC данных |
|
||||||
$content = iptcembed($data, "$imagePath/$imageName"); |
|
||||||
|
|
||||||
// запись нового изображения в файл |
|
||||||
$fp = fopen("$imagePath/$imageName", "wb"); |
|
||||||
fwrite($fp, $content); |
|
||||||
fclose($fp); |
|
||||||
} |
} |
||||||
|
|
||||||
|
unset($watermark); |
||||||
} |
} |
||||||
|
|
||||||
unset($watermark); |
return $file; |
||||||
} |
} |
||||||
|
?> |
||||||
return $file; |
|
||||||
} |
|
||||||
|
|
||||||
?> |
|
@ -0,0 +1,33 @@ |
|||||||
|
/* Sticky footer styles |
||||||
|
-------------------------------------------------- */ |
||||||
|
html { |
||||||
|
position: relative; |
||||||
|
min-height: 100%; |
||||||
|
} |
||||||
|
body { |
||||||
|
/* Margin bottom by footer height */ |
||||||
|
margin-bottom: 60px; |
||||||
|
} |
||||||
|
.footer { |
||||||
|
position: absolute; |
||||||
|
bottom: 0; |
||||||
|
width: 100%; |
||||||
|
/* Set the fixed height of the footer here */ |
||||||
|
height: 60px; |
||||||
|
line-height: 60px; /* Vertically center the text there */ |
||||||
|
background-color: #f5f5f5; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/* Custom page CSS |
||||||
|
-------------------------------------------------- */ |
||||||
|
/* Not required for template or sticky footer method. */ |
||||||
|
|
||||||
|
body > .container { |
||||||
|
padding: 60px 15px 0; |
||||||
|
} |
||||||
|
|
||||||
|
.footer > .container { |
||||||
|
padding-right: 15px; |
||||||
|
padding-left: 15px; |
||||||
|
} |
@ -0,0 +1,267 @@ |
|||||||
|
<? |
||||||
|
/* -------------------------------------------------------------------------------------------------------------- */ |
||||||
|
/* -------------------------------------------------------3.24-------------------------------------------------- */ |
||||||
|
/* -------------------------------------------------------------------------------------------------------------- */ |
||||||
|
|
||||||
|
|
||||||
|
$check = $AVE_DB->Query(" |
||||||
|
SHOW COLUMNS |
||||||
|
FROM |
||||||
|
" . PREFIX . "_rubrics |
||||||
|
LIKE |
||||||
|
'rubric_changed' |
||||||
|
")->NumRows(); |
||||||
|
|
||||||
|
$exist = ($check) ? true : false; |
||||||
|
|
||||||
|
if ($exist === false) |
||||||
|
{ |
||||||
|
$AVE_DB->Real_Query(" |
||||||
|
ALTER TABLE |
||||||
|
" . PREFIX . "_rubrics |
||||||
|
ADD |
||||||
|
`rubric_changed` int(10) NOT NULL DEFAULT '0' |
||||||
|
AFTER |
||||||
|
`rubric_position` |
||||||
|
"); |
||||||
|
|
||||||
|
$AVE_DB->Real_Query(" |
||||||
|
UPDATE |
||||||
|
" . PREFIX . "_rubrics |
||||||
|
SET |
||||||
|
`rubric_changed` = UNIX_TIMESTAMP() |
||||||
|
"); |
||||||
|
} |
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------------- |
||||||
|
|
||||||
|
$check = $AVE_DB->Query(" |
||||||
|
SHOW COLUMNS |
||||||
|
FROM |
||||||
|
" . PREFIX . "_rubrics |
||||||
|
LIKE |
||||||
|
'rubric_changed_fields' |
||||||
|
")->NumRows(); |
||||||
|
|
||||||
|
$exist = ($check) ? true : false; |
||||||
|
|
||||||
|
if ($exist === false) |
||||||
|
{ |
||||||
|
$AVE_DB->Real_Query(" |
||||||
|
ALTER TABLE |
||||||
|
" . PREFIX . "_rubrics |
||||||
|
ADD |
||||||
|
`rubric_changed_fields` int(10) NOT NULL DEFAULT '0' |
||||||
|
AFTER |
||||||
|
`rubric_changed` |
||||||
|
"); |
||||||
|
|
||||||
|
$AVE_DB->Real_Query(" |
||||||
|
UPDATE |
||||||
|
" . PREFIX . "_rubrics |
||||||
|
SET |
||||||
|
`rubric_changed_fields` = UNIX_TIMESTAMP() |
||||||
|
"); |
||||||
|
} |
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------------- |
||||||
|
|
||||||
|
$check = $AVE_DB->Query(" |
||||||
|
SHOW TABLES |
||||||
|
LIKE |
||||||
|
'" . PREFIX . "_rubric_breadcrumb' |
||||||
|
")->NumRows(); |
||||||
|
|
||||||
|
$exist = ($check) ? true : false; |
||||||
|
|
||||||
|
if ($exist === false) |
||||||
|
{ |
||||||
|
$AVE_DB->Real_Query(" |
||||||
|
CREATE TABLE `" . PREFIX . "_rubric_breadcrumb` ( |
||||||
|
`id` int(11) unsigned NOT NULL AUTO_INCREMENT, |
||||||
|
`rubric_id` smallint(3) unsigned NOT NULL, |
||||||
|
`box` varchar(500) NOT NULL DEFAULT '', |
||||||
|
`show_main` enum('1','0') NOT NULL DEFAULT '1', |
||||||
|
`show_host` enum('1','0') NOT NULL DEFAULT '1', |
||||||
|
`sepparator` varchar(255) NOT NULL, |
||||||
|
`sepparator_use` enum('1','0') NOT NULL DEFAULT '1', |
||||||
|
`link_box` varchar(500) NOT NULL DEFAULT '', |
||||||
|
`link_template` varchar(500) NOT NULL DEFAULT '', |
||||||
|
`self_box` varchar(500) NOT NULL DEFAULT '', |
||||||
|
`link_box_last` enum('1','0') NOT NULL DEFAULT '1', |
||||||
|
PRIMARY KEY (`id`), |
||||||
|
KEY `rubric_id` (`rubric_id`) |
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0; |
||||||
|
"); |
||||||
|
} |
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------------- |
||||||
|
|
||||||
|
$check = $AVE_DB->Query(" |
||||||
|
SHOW COLUMNS |
||||||
|
FROM |
||||||
|
" . PREFIX . "_request |
||||||
|
LIKE |
||||||
|
'request_changed' |
||||||
|
")->NumRows(); |
||||||
|
|
||||||
|
$exist = ($check) ? true : false; |
||||||
|
|
||||||
|
if ($exist === false) |
||||||
|
{ |
||||||
|
$AVE_DB->Real_Query(" |
||||||
|
ALTER TABLE |
||||||
|
" . PREFIX . "_request |
||||||
|
ADD |
||||||
|
`request_changed` int(10) unsigned NOT NULL DEFAULT '0' |
||||||
|
AFTER |
||||||
|
`request_show_sql` |
||||||
|
"); |
||||||
|
|
||||||
|
$AVE_DB->Real_Query(" |
||||||
|
UPDATE |
||||||
|
" . PREFIX . "_request |
||||||
|
SET |
||||||
|
`request_changed` = UNIX_TIMESTAMP() |
||||||
|
"); |
||||||
|
} |
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------------- |
||||||
|
|
||||||
|
$check = $AVE_DB->Query(" |
||||||
|
SHOW COLUMNS |
||||||
|
FROM |
||||||
|
" . PREFIX . "_request |
||||||
|
LIKE |
||||||
|
'request_changed_elements' |
||||||
|
")->NumRows(); |
||||||
|
|
||||||
|
$exist = ($check) ? true : false; |
||||||
|
|
||||||
|
if ($exist === false) |
||||||
|
{ |
||||||
|
$AVE_DB->Real_Query(" |
||||||
|
ALTER TABLE |
||||||
|
" . PREFIX . "_request |
||||||
|
ADD |
||||||
|
`request_changed_elements` int(10) unsigned NOT NULL DEFAULT '0' |
||||||
|
AFTER |
||||||
|
`request_changed` |
||||||
|
"); |
||||||
|
|
||||||
|
$AVE_DB->Real_Query(" |
||||||
|
UPDATE |
||||||
|
" . PREFIX . "_request |
||||||
|
SET |
||||||
|
`request_changed_elements` = UNIX_TIMESTAMP() |
||||||
|
"); |
||||||
|
} |
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------------- |
||||||
|
|
||||||
|
$check = $AVE_DB->Query(" |
||||||
|
SHOW COLUMNS |
||||||
|
FROM |
||||||
|
" . PREFIX . "_documents |
||||||
|
LIKE |
||||||
|
'document_short_alias' |
||||||
|
")->NumRows(); |
||||||
|
|
||||||
|
$exist = ($check) ? true : false; |
||||||
|
|
||||||
|
if ($exist === false) |
||||||
|
{ |
||||||
|
$AVE_DB->Real_Query(" |
||||||
|
ALTER TABLE |
||||||
|
" . PREFIX . "_documents |
||||||
|
ADD |
||||||
|
`document_short_alias` VARCHAR(10) NOT NULL DEFAULT '' |
||||||
|
AFTER |
||||||
|
`document_alias_history` |
||||||
|
"); |
||||||
|
} |
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------------- |
||||||
|
|
||||||
|
$check = $AVE_DB->Query(" |
||||||
|
SHOW COLUMNS |
||||||
|
FROM |
||||||
|
" . PREFIX . "_document_tags |
||||||
|
LIKE |
||||||
|
'rubric_id' |
||||||
|
")->NumRows(); |
||||||
|
|
||||||
|
$exist = ($check) ? true : false; |
||||||
|
|
||||||
|
if ($exist === false) |
||||||
|
{ |
||||||
|
$AVE_DB->Real_Query(" |
||||||
|
ALTER TABLE |
||||||
|
" . PREFIX . "_document_tags |
||||||
|
ADD |
||||||
|
`rubric_id` int(3) NOT NULL |
||||||
|
AFTER |
||||||
|
`id` |
||||||
|
"); |
||||||
|
} |
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------------- |
||||||
|
|
||||||
|
$check = $AVE_DB->Query(" |
||||||
|
SHOW COLUMNS |
||||||
|
FROM |
||||||
|
" . PREFIX . "_modules_aliases |
||||||
|
LIKE |
||||||
|
'document_id' |
||||||
|
")->NumRows(); |
||||||
|
|
||||||
|
$exist = ($check) ? true : false; |
||||||
|
|
||||||
|
if ($exist === false) |
||||||
|
{ |
||||||
|
$AVE_DB->Real_Query(" |
||||||
|
ALTER TABLE |
||||||
|
" . PREFIX . "_modules_aliases |
||||||
|
ADD |
||||||
|
`document_id` int(10) NOT NULL DEFAULT '0' |
||||||
|
AFTER |
||||||
|
`id` |
||||||
|
"); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------------------- |
||||||
|
|
||||||
|
$check = $AVE_DB->Query(" |
||||||
|
SHOW COLUMNS |
||||||
|
FROM |
||||||
|
" . PREFIX . "_request |
||||||
|
LIKE |
||||||
|
'request_count_items' |
||||||
|
")->NumRows(); |
||||||
|
|
||||||
|
$exist = ($check) ? true : false; |
||||||
|
|
||||||
|
if ($exist === false) |
||||||
|
{ |
||||||
|
$AVE_DB->Real_Query(" |
||||||
|
ALTER TABLE |
||||||
|
" . PREFIX . "_request |
||||||
|
ADD |
||||||
|
`request_count_items` enum('0','1') NOT NULL DEFAULT '0' |
||||||
|
AFTER |
||||||
|
`request_use_query` |
||||||
|
"); |
||||||
|
|
||||||
|
$AVE_DB->Real_Query(" |
||||||
|
UPDATE |
||||||
|
" . PREFIX . "_request |
||||||
|
SET |
||||||
|
`request_changed_elements` = UNIX_TIMESTAMP() |
||||||
|
"); |
||||||
|
} |
||||||
|
|
||||||
|
/* -------------------------------------------------------------------------------------------------------------- */ |
||||||
|
/* -------------------------------------------------------3.25---------------------------------------------------- */ |
||||||
|
/* -------------------------------------------------------------------------------------------------------------- */ |
||||||
|
?> |
Loading…
Reference in new issue