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 |
||||
|
||||
/** |
||||
* AVE.cms |
||||
* |
||||
* @package AVE.cms |
||||
* @version 3.x |
||||
* @filesource |
||||
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru |
||||
* |
||||
* @license GPL v.2 |
||||
*/ |
||||
|
||||
if (!defined('ACP')) |
||||
{ |
||||
header('Location:index.php'); |
||||
exit; |
||||
} |
||||
|
||||
global $AVE_Template; |
||||
|
||||
require(BASE_DIR . '/class/class.docs.php'); |
||||
require(BASE_DIR . '/class/class.settings.php'); |
||||
$AVE_Settings = new AVE_Settings; |
||||
$AVE_Document = new AVE_Document; |
||||
|
||||
$AVE_Template->config_load(BASE_DIR . '/admin/lang/' . $_SESSION['admin_language'] . '/settings.txt','settings'); |
||||
|
||||
switch($_REQUEST['action']) |
||||
{ |
||||
case '': |
||||
switch ($_REQUEST['sub']) |
||||
{ |
||||
case '': |
||||
if(check_permission_acp('gen_settings')) |
||||
/** |
||||
* AVE.cms |
||||
* |
||||
* @package AVE.cms |
||||
* @version 3.x |
||||
* @filesource |
||||
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru |
||||
* |
||||
* @license GPL v.2 |
||||
*/ |
||||
|
||||
if (!defined('ACP')) |
||||
{ |
||||
header('Location:index.php'); |
||||
exit; |
||||
} |
||||
|
||||
global $AVE_Template; |
||||
|
||||
require(BASE_DIR . '/class/class.docs.php'); |
||||
require(BASE_DIR . '/class/class.settings.php'); |
||||
$AVE_Settings = new AVE_Settings; |
||||
$AVE_Document = new AVE_Document; |
||||
|
||||
$AVE_Template->config_load(BASE_DIR . '/admin/lang/' . $_SESSION['admin_language'] . '/settings.txt','settings'); |
||||
|
||||
switch($_REQUEST['action']) |
||||
{ |
||||
case '': |
||||
switch ($_REQUEST['sub']) |
||||
{ |
||||
$AVE_Settings->settingsShow(); |
||||
break; |
||||
} |
||||
|
||||
case 'case': |
||||
if(check_permission_acp('gen_settings_more')) |
||||
{ |
||||
$AVE_Settings->settingsCase(); |
||||
break; |
||||
} |
||||
case '': |
||||
if(check_permission_acp('gen_settings')) |
||||
{ |
||||
$AVE_Settings->settingsShow(); |
||||
break; |
||||
} |
||||
|
||||
case 'save': |
||||
if (isset($_REQUEST['more'])) { |
||||
if(check_permission_acp('gen_settings_more')) $AVE_Settings->settingsCase(); |
||||
} else { |
||||
if(check_permission_acp('gen_settings')) $AVE_Settings->settingsSave(); |
||||
case 'case': |
||||
if(check_permission_acp('gen_settings_more')) |
||||
{ |
||||
$AVE_Settings->settingsCase(); |
||||
break; |
||||
} |
||||
break; |
||||
|
||||
case 'countries': |
||||
if(check_permission_acp('gen_settings_countries')) |
||||
{ |
||||
if (isset($_REQUEST['save']) && $_REQUEST['save'] == 1) |
||||
case 'save': |
||||
if (isset($_REQUEST['more'])) { |
||||
if(check_permission_acp('gen_settings_more')) $AVE_Settings->settingsCase(); |
||||
} 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); |
||||
exit; |
||||
header('Location:index.php?do=settings&sub=countries&cp=' . SESSION); |
||||
exit; |
||||
} |
||||
$AVE_Settings->settingsCountriesList(); |
||||
break; |
||||
} |
||||
$AVE_Settings->settingsCountriesList(); |
||||
break; |
||||
} |
||||
|
||||
case 'language': |
||||
if(check_permission_acp('gen_settings_languages')) |
||||
{ |
||||
if(isset($_REQUEST['func'])){ |
||||
switch($_REQUEST['func']) |
||||
{ |
||||
case 'default': |
||||
if(isset($_REQUEST['Id'])){ |
||||
$exists=$AVE_DB->Query("SELECT Id FROM ".PREFIX."_settings_lang WHERE Id=".(int)$_REQUEST['Id'])->GetCell(); |
||||
if($exists){ |
||||
$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"); |
||||
case 'language': |
||||
if(check_permission_acp('gen_settings_languages')) |
||||
{ |
||||
if(isset($_REQUEST['func'])){ |
||||
switch($_REQUEST['func']) |
||||
{ |
||||
case 'default': |
||||
if(isset($_REQUEST['Id'])){ |
||||
$exists=$AVE_DB->Query("SELECT Id FROM ".PREFIX."_settings_lang WHERE Id=".(int)$_REQUEST['Id'])->GetCell(); |
||||
if($exists){ |
||||
$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"); |
||||
} |
||||
} |
||||
} |
||||
header('Location:index.php?do=settings&sub=language&cp=' . SESSION); |
||||
exit; |
||||
|
||||
case 'on': |
||||
if(isset($_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); |
||||
exit; |
||||
|
||||
case 'off': |
||||
if(isset($_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); |
||||
exit; |
||||
|
||||
case 'save': |
||||
$AVE_Settings->settingsLanguageEditSave(); |
||||
exit; |
||||
header('Location:index.php?do=settings&sub=language&cp=' . SESSION); |
||||
exit; |
||||
|
||||
case 'on': |
||||
if(isset($_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); |
||||
exit; |
||||
|
||||
case 'off': |
||||
if(isset($_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); |
||||
exit; |
||||
|
||||
case 'save': |
||||
$AVE_Settings->settingsLanguageEditSave(); |
||||
exit; |
||||
} |
||||
} |
||||
else |
||||
{ |
||||
$AVE_Settings->settingsLanguageList(); |
||||
break; |
||||
} |
||||
} |
||||
else |
||||
|
||||
case 'editlang': |
||||
if (check_permission_acp('gen_settings_languages')) |
||||
{ |
||||
$AVE_Settings->settingsLanguageList(); |
||||
$AVE_Settings->settingsLanguageEdit(); |
||||
break; |
||||
} |
||||
} |
||||
|
||||
case 'editlang': |
||||
if(check_permission_acp('gen_settings_languages')) |
||||
{ |
||||
$AVE_Settings->settingsLanguageEdit(); |
||||
break; |
||||
} |
||||
case 'clearcache': |
||||
if (check_permission_acp('cache_clear')) |
||||
{ |
||||
$AVE_Template->CacheClear(); |
||||
exit; |
||||
} |
||||
|
||||
case 'clearcache': |
||||
if(check_permission_acp('cache_clear')) |
||||
{ |
||||
$AVE_Template->CacheClear(); |
||||
exit; |
||||
} |
||||
case 'clearthumb': |
||||
if (check_permission_acp('cache_thumb')) |
||||
{ |
||||
$AVE_Template->ThumbnailsClear(); |
||||
exit; |
||||
} |
||||
|
||||
case 'clearthumb': |
||||
if(check_permission_acp('cache_thumb')) |
||||
{ |
||||
$AVE_Template->ThumbnailsClear(); |
||||
exit; |
||||
} |
||||
case 'clearrevision': |
||||
if (check_permission_acp('document_revisions')) |
||||
{ |
||||
$AVE_Document->documentsRevisionsClear(); |
||||
exit; |
||||
} |
||||
|
||||
case 'clearrevision': |
||||
if(check_permission_acp('document_revisions')) |
||||
{ |
||||
$AVE_Document->documentsRevisionsClear(); |
||||
exit; |
||||
} |
||||
case 'clearcounter': |
||||
if (check_permission_acp('gen_settings')) |
||||
{ |
||||
$AVE_Document->documentCounterClear(); |
||||
exit; |
||||
} |
||||
|
||||
case 'clearcounter': |
||||
if(check_permission_acp('gen_settings')) |
||||
{ |
||||
$AVE_Document->documentCounterClear(); |
||||
exit; |
||||
case 'showcache': |
||||
cacheShow(); |
||||
exit; |
||||
} |
||||
|
||||
case 'showcache': |
||||
cacheShow(); |
||||
exit; |
||||
} |
||||
break; |
||||
|
||||
//-- v3.2 |
||||
case 'paginations': |
||||
$AVE_Settings->settingsPaginationsList(); |
||||
break; |
||||
|
||||
case 'new_paginations': |
||||
$AVE_Settings->settingsPaginationsNew(); |
||||
break; |
||||
|
||||
case 'edit_paginations': |
||||
$AVE_Settings->settingsPaginationsEdit(); |
||||
break; |
||||
|
||||
case 'save_paginations': |
||||
$AVE_Settings->settingsPaginationsSave(); |
||||
break; |
||||
|
||||
case 'del_paginations': |
||||
$AVE_Settings->settingsPaginationsDel(); |
||||
break; |
||||
//-- v3.2 |
||||
|
||||
//-- v3.24 |
||||
case 'robots': |
||||
$AVE_Settings->editRobots(); |
||||
break; |
||||
|
||||
case 'custom': |
||||
$AVE_Settings->editCustom(); |
||||
break; |
||||
//-- v3.24 |
||||
} |
||||
break; |
||||
|
||||
//-- v3.2 |
||||
case 'paginations': |
||||
$AVE_Settings->settingsPaginationsList(); |
||||
break; |
||||
|
||||
case 'new_paginations': |
||||
$AVE_Settings->settingsPaginationsNew(); |
||||
break; |
||||
|
||||
case 'edit_paginations': |
||||
$AVE_Settings->settingsPaginationsEdit(); |
||||
break; |
||||
|
||||
case 'save_paginations': |
||||
$AVE_Settings->settingsPaginationsSave(); |
||||
break; |
||||
|
||||
case 'del_paginations': |
||||
$AVE_Settings->settingsPaginationsDel(); |
||||
break; |
||||
//-- v3.2 |
||||
|
||||
//-- v3.24 |
||||
case 'robots': |
||||
$AVE_Settings->editRobots(); |
||||
break; |
||||
|
||||
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 |
||||
|
||||
/** |
||||
* AVE.cms |
||||
* |
||||
* @package AVE.cms |
||||
* @version 3.x |
||||
* @filesource |
||||
* @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 |
||||
{ |
||||
/** |
||||
* СВОЙСТВА |
||||
*/ |
||||
/** |
||||
* AVE.cms |
||||
* |
||||
* @package AVE.cms |
||||
* @version 3.x |
||||
* @filesource |
||||
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru |
||||
* |
||||
*/ |
||||
|
||||
/** |
||||
* Конструктор |
||||
* Подключаем файл шаблонизатора 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; |
||||
|
||||
/** |
||||
* Имя каталога, в котором хранится кэш модулей. |
||||
*/ |
||||
$this->module_cache_dir = BASE_DIR . '/tmp/cache/module'; |
||||
$r_tpl = str_replace(BASE_DIR, BASE_DIR . '/templates/' . THEME_FOLDER, $tpl); |
||||
|
||||
/** |
||||
* Имя каталога, в котором хранится сессии пользователей. |
||||
*/ |
||||
$this->session_dir = BASE_DIR . '/tmp/session'; |
||||
return (file_exists($r_tpl) && is_file($r_tpl)) ? $r_tpl : $tpl; |
||||
} |
||||
|
||||
/** |
||||
* Имя каталога, в котором хранится сессии пользователей. |
||||
*/ |
||||
$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'); |
||||
$this->register_function('get_home_link', 'get_home_link'); |
||||
$this->register_function('num_format', 'num_format'); |
||||
$this->register_function('thumb', 'make_thumbnail'); |
||||
function display($resource_name, $cache_id = null, $compile_id = null) |
||||
{ |
||||
$this->fetch($resource_name, $cache_id, $compile_id, true); |
||||
} |
||||
|
||||
/** |
||||
* Регистрация плагинов-модификаторов 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'); |
||||
function recursivDelete($dir) |
||||
{ |
||||
$it = new RecursiveDirectoryIterator($dir . '/'); |
||||
$files = new RecursiveIteratorIterator($it, RecursiveIteratorIterator::CHILD_FIRST); |
||||
|
||||
/** |
||||
* Присваиваем общие значения для шаблонов. |
||||
* Можно явно передавать пары имя/значение, |
||||
* или ассоциативные массивы, содержащие пары имя/значение. |
||||
*/ |
||||
$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; |
||||
foreach($files as $file) |
||||
{ |
||||
if ($file->getFilename() === '.' || $file->getFilename() === '..') |
||||
continue; |
||||
|
||||
$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(); |
||||
|
||||
/** |
||||
* Переопределение одноименного метода Smarty |
||||
* для конфигурационных файлов созданных в теме дизайна. |
||||
* |
||||
* @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); |
||||
} |
||||
foreach (glob($this->cache_dir_root . "/cache_*") as $filename) |
||||
@unlink($filename); |
||||
|
||||
/** |
||||
* Переопределение одноименного метода 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); |
||||
} |
||||
write_htaccess_deny($this->cache_dir . '/'); |
||||
|
||||
/** |
||||
* Переопределение одноименного метода Smarty |
||||
* для пользовательских шаблонов созданных в теме дизайна. |
||||
* |
||||
* @param string $resource_name |
||||
* @param string $cache_id |
||||
* @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); |
||||
} |
||||
// Memcached |
||||
if ($_REQUEST['ajax'] && Memcached_Server && Memcached_Port) |
||||
{ |
||||
$memcache = new Memcache; |
||||
$memcache->connect(Memcached_Server, Memcached_Port); |
||||
$memcache->flush(); |
||||
} |
||||
|
||||
/** |
||||
* Метод очистки кэша |
||||
* |
||||
*/ |
||||
function CacheClear() |
||||
{ |
||||
global $AVE_DB, $AVE_Template; |
||||
// Очищаем кэш шаблона документов рубрики |
||||
$AVE_DB->Query(" |
||||
DELETE FROM |
||||
" . PREFIX . "_rubric_template_cache |
||||
"); |
||||
|
||||
$message = array(); |
||||
$message[] = $AVE_Template->get_config_vars('TEMPLATES_CACHE_SUCCESS'); |
||||
reportLog($AVE_Template->get_config_vars('TEMPLATES_CACHE_SUCCESS_LOG')); |
||||
|
||||
//Метод очистки кэша |
||||
if (isset($_REQUEST['templateCache']) && $_REQUEST['templateCache'] == '1') |
||||
{ |
||||
$this->clear_all_cache(); |
||||
// Очищаем кэш сессий в БД в таблице _sessions |
||||
$AVE_DB->Query(" |
||||
DELETE FROM |
||||
" . PREFIX . "_sessions |
||||
"); |
||||
|
||||
foreach (glob($this->cache_dir_root . "/cache_*") as $filename) |
||||
{ |
||||
@unlink($filename); |
||||
$message[] = $AVE_Template->get_config_vars('TEMPLATES_CACHE_DB_SUCCESS'); |
||||
reportLog($AVE_Template->get_config_vars('TEMPLATES_CACHE_DB_SUCCESS_LOG')); |
||||
} |
||||
|
||||
$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; |
||||
$memcache->connect(Memcached_Server, Memcached_Port); |
||||
$memcache->flush(); |
||||
} |
||||
// Smarty compiled cache |
||||
$this->clear_compiled_tpl(); |
||||
|
||||
// Очищаем кэш шаблона документов рубрики |
||||
$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')); |
||||
} |
||||
write_htaccess_deny($this->compile_dir . '/'); |
||||
|
||||
//Метод удаления скомпилированных шаблонов |
||||
if (isset($_REQUEST['templateCompiledTemplate']) && $_REQUEST['templateCompiledTemplate'] == '1') |
||||
{ |
||||
$this->clear_compiled_tpl(); |
||||
$filename = $this->compile_dir . '/.htaccess'; |
||||
|
||||
$filename = $this->compile_dir . '/.htaccess'; |
||||
if (! file_exists($filename)) |
||||
{ |
||||
$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')); |
||||
} |
||||
|
||||
$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') |
||||
{ |
||||
rrmdir($this->module_cache_dir); |
||||
//Метод удаления скомпилированных шаблонов модулей |
||||
if (isset($_REQUEST['moduleCache']) && $_REQUEST['moduleCache'] == '1') |
||||
{ |
||||
$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)) |
||||
{ |
||||
$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')); |
||||
} |
||||
|
||||
$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') |
||||
{ |
||||
rrmdir($this->session_dir); |
||||
//Метод удаления всех сессий |
||||
if (isset($_REQUEST['sessionUsers']) && $_REQUEST['sessionUsers'] == '1') |
||||
{ |
||||
$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)) |
||||
{ |
||||
$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')); |
||||
} |
||||
|
||||
$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') |
||||
{ |
||||
rrmdir($this->sql_cache_dir); |
||||
//Метод удаления кэша запросов |
||||
if (isset($_REQUEST['sqlCache']) && $_REQUEST['sqlCache'] == '1') |
||||
{ |
||||
$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)) |
||||
{ |
||||
$fp = @fopen($filename, 'w'); |
||||
if ($fp) |
||||
{ |
||||
fputs($fp, 'Deny from all'); |
||||
fclose($fp); |
||||
} |
||||
$message[] = $AVE_Template->get_config_vars('TEMPLATES_CACHE_SC_SUCCESS'); |
||||
reportLog($AVE_Template->get_config_vars('TEMPLATES_CACHE_SC_SUCCESS_LOG')); |
||||
} |
||||
|
||||
$message[] = $AVE_Template->get_config_vars('TEMPLATES_CACHE_SC_SUCCESS'); |
||||
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')); |
||||
} |
||||
|
||||
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; |
||||
$tmb = glob("$dir/$dir_thumb", GLOB_ONLYDIR|GLOB_NOSORT); |
||||
$dirs = glob("$dirname/*", 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)); |
||||
$hid_tmb=$hid_cat[0]; |
||||
rdel_thumb($dir); |
||||
} |
||||
|
||||
foreach (glob("$hid_cat[0]/*.png", GLOB_NOSORT) as $filename) |
||||
unlink("$filename"); |
||||
} |
||||
$hid_cat = (glob("$dirname/{.tmb}*", GLOB_ONLYDIR|GLOB_BRACE)); |
||||
$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 |
||||
|
||||
/** |
||||
* AVE.cms |
||||
* |
||||
* @package AVE.cms |
||||
* @version 3.x |
||||
* @filesource |
||||
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru |
||||
* |
||||
* @license GPL v.2 |
||||
*/ |
||||
|
||||
/** |
||||
* Функция дописывает в JPG файлы IPTC Tag |
||||
* |
||||
* @param string $rec |
||||
* @param string $data |
||||
* @param string $value |
||||
* @return string |
||||
*/ |
||||
function iptc_make_tag($rec, $data, $value) |
||||
{ |
||||
$length = strlen($value); |
||||
$retval = chr(0x1C) . chr($rec) . chr($data); |
||||
|
||||
if($length < 0x8000) |
||||
{ |
||||
$retval .= chr($length >> 8) . chr($length & 0xFF); |
||||
} |
||||
else |
||||
/** |
||||
* AVE.cms |
||||
* |
||||
* @package AVE.cms |
||||
* @version 3.x |
||||
* @filesource |
||||
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru |
||||
* |
||||
* @license GPL v.2 |
||||
*/ |
||||
|
||||
|
||||
/** |
||||
* Функция дописывает в JPG файлы IPTC Tag |
||||
* |
||||
* @param string $rec |
||||
* @param string $data |
||||
* @param string $value |
||||
* @return string |
||||
*/ |
||||
|
||||
if (! function_exists('iptc_make_tag')) |
||||
{ |
||||
$retval .= chr(0x80) . |
||||
chr(0x04) . |
||||
chr(($length >> 24) & 0xFF) . |
||||
chr(($length >> 16) & 0xFF) . |
||||
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) { |
||||
function iptc_make_tag($rec, $data, $value) |
||||
{ |
||||
$length = strlen($value); |
||||
$retval = chr(0x1C) . chr($rec) . chr($data); |
||||
|
||||
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; |
||||
$watermarkDir = BASE_DIR . '/' . WATERMARKS_DIR; |
||||
$save = true; |
||||
|
||||
$imagePath = BASE_DIR . '/' . trim($file_info['dirname'], '/'); |
||||
$imageName = $file_info['basename']; |
||||
$margin = 10; |
||||
|
||||
$copyPath = $watermarkDir . '/' . trim($file_info['dirname'], '/'); |
||||
$copyName = $imageName; |
||||
$file_info = pathinfo($file); |
||||
|
||||
if(!is_dir($watermarkDir)) { |
||||
@mkdir($watermarkDir, 0777, true); |
||||
write_htaccess_deny($watermarkDir); |
||||
} |
||||
$watermarkFile = BASE_DIR . '/' . WATERMARKS_FILE; |
||||
$watermarkDir = BASE_DIR . '/' . WATERMARKS_DIR; |
||||
|
||||
if(file_exists("$copyPath/$copyName") || !file_exists("$imagePath/$imageName")){ |
||||
$save = false; |
||||
} |
||||
$imagePath = BASE_DIR . '/' . trim($file_info['dirname'], '/'); |
||||
$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"); |
||||
$size_wtmrk = getimagesize($watermarkFile); |
||||
if (! file_exists($watermarkDir . $file)) |
||||
return $file; |
||||
|
||||
list($xImage, $yImage) = $size_image; |
||||
list($xWtmrk, $yWtmrk) = $size_wtmrk; |
||||
if (! is_dir($watermarkDir)) |
||||
{ |
||||
@mkdir($watermarkDir, 0777, true); |
||||
write_htaccess_deny($watermarkDir); |
||||
} |
||||
|
||||
if ($xImage < $xWtmrk || $yImage < $yWtmrk) { |
||||
if (file_exists("$copyPath/$copyName") || !file_exists("$imagePath/$imageName")) |
||||
$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){ |
||||
if (!is_dir($copyPath) && !@mkdir($copyPath, 0777, true)) exit(0); |
||||
require_once BASE_DIR.'/class/class.thumbnail.php'; |
||||
$watermark = new Image_Toolbox("$imagePath/$imageName"); |
||||
list($xImage, $yImage) = $size_image; |
||||
list($xWtmrk, $yWtmrk) = $size_wtmrk; |
||||
|
||||
if (rename("$imagePath/$imageName", "$copyPath/$copyName")) |
||||
{ |
||||
$old = umask(0); |
||||
chmod("$copyPath/$copyName", 0777); |
||||
umask($old); |
||||
if ($xImage < $xWtmrk || $yImage < $yWtmrk) |
||||
$save = false; |
||||
else |
||||
$save = true; |
||||
} |
||||
|
||||
switch ($position) |
||||
if (file_exists("$copyPath/$copyName")) |
||||
$save = false; |
||||
|
||||
if ($save) |
||||
{ |
||||
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; |
||||
} |
||||
if (! is_dir($copyPath) && !@mkdir($copyPath, 0777, true)) |
||||
return $file; |
||||
|
||||
$watermark->addImage($watermarkFile); |
||||
$watermark->blend($xLogoPosition, $yLogoPosition, IMAGE_TOOLBOX_BLEND_COPY, $transparency); |
||||
$watermark->save("$imagePath/$imageName"); |
||||
require_once BASE_DIR.'/class/class.thumbnail.php'; |
||||
|
||||
if($watermark->_img['main']['type']==2){ |
||||
$image = getimagesize("$imagePath/$imageName", $info); |
||||
if(!isset($info['APP13'])) |
||||
$watermark = new Image_Toolbox("$imagePath/$imageName"); |
||||
|
||||
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 тэгов |
||||
$iptc = array( |
||||
'2#120' => iconv("UTF-8","WINDOWS-1251",$sitename), |
||||
'2#116' => "http://".$_SERVER['SERVER_NAME'] |
||||
); |
||||
$watermark->addImage($watermarkFile); |
||||
$watermark->blend($xLogoPosition, $yLogoPosition, IMAGE_TOOLBOX_BLEND_COPY, $transparency); |
||||
$watermark->save("$imagePath/$imageName"); |
||||
|
||||
// Преобразование IPTC тэгов в двоичный код |
||||
$data = ''; |
||||
if ($watermark->_img['main']['type'] == 2) |
||||
{ |
||||
$image = getimagesize("$imagePath/$imageName", $info); |
||||
|
||||
foreach($iptc as $tag => $string) |
||||
if (! isset($info['APP13'])) |
||||
{ |
||||
$tag = substr($tag, 2); |
||||
$data .= iptc_make_tag(2, $tag, $string); |
||||
$sitename = get_settings('site_name'); |
||||
|
||||
// установка 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