/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
?>
// Язык системы
function set_locale()
{
$acp_language = empty($_SESSION['admin_language'])
? $_SESSION['user_language']
: $_SESSION['admin_language'];
$locale = strtolower(defined('ACP')
? $acp_language
: $_SESSION['user_language']);
switch ($locale)
{
case 'ru':
@setlocale(LC_ALL, 'ru_RU.UTF-8', 'rus_RUS.UTF-8', 'russian');
@setlocale(LC_NUMERIC, "C");
break;
case 'bg':
@setlocale(LC_ALL, 'bg_BG.UTF-8', 'bgr_BGR.UTF-8', 'bulgarian');
@setlocale(LC_NUMERIC, "C");
break;
default:
@setlocale (LC_ALL, $locale . '_' . strtoupper($locale), $locale, '');
break;
}
}
/**
* Переводит в нижний регистр
*
* @param string $string строка для перевода в нижний регистр
* @return string
*/
function _strtolower($string)
{
$language = (defined('ACP') && ACP)
? $_SESSION['admin_language']
: $_SESSION['user_language'];
$language = strtolower($language);
switch ($language)
{
case 'de':
return mb_strtolower($string);
break;
case 'en':
return mb_strtolower($string);
break;
case 'ru':
case 'bg':
$small = array('а','б','в','г','д','е','ё','ж','з','и','й',
'к','л','м','н','о','п','р','с','т','у','ф',
'х','ч','ц','ш','щ','э','ю','я','ы','ъ','ь',
'э', 'ю', 'я');
$large = array('А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й',
'К','Л','М','Н','О','П','Р','С','Т','У','Ф',
'Х','Ч','Ц','Ш','Щ','Э','Ю','Я','Ы','Ъ','Ь',
'Э', 'Ю', 'Я');
break;
case 'ua':
case 'uk':
$small = array('а','б','в','г','д','е','є','ж','з','и','і','й','ї',
'к','л','м','н','о','п','р','с','т','у','ф',
'х','ч','ц','ш','щ','ь','ю','я');
$large = array('А','Б','В','Г','Д','Е','Є','Ж','З','И','І','Й','Ї',
'К','Л','М','Н','О','П','Р','С','Т','У','Ф',
'Х','Ч','Ц','Ш','Щ','Ь','Ю','Я');
break;
default:
return mb_strtolower($string);
break;
}
return str_replace($large, $small, $string);
}
/**
* Транслитерация
*
* @param string $string строка для транслитерации
* @return string
*/
function translit_string($string)
{
// $st = htmlspecialchars_decode($st);
//
// // Convert all named HTML entities to numeric entities
// $st = preg_replace_callback('/&([a-zA-Z][a-zA-Z0-9]{1,7});/', 'convert_entity', $st);
//
// // Convert all numeric entities to their actual character
// $st = preg_replace('/([0-9a-f]{1,7});/ei', 'chr(hexdec("\\1"))', $st);
// $st = preg_replace('/([0-9]{1,7});/e', 'chr("\\1")', $st);
//
$language = (defined('ACP') && ACP)
? $_SESSION['admin_language']
: $_SESSION['user_language'];
$language = strtolower($language);
switch ($language)
{
default:
case 'ru':
$table = array(
//-- Заглавные
'А' => 'A',
'Б' => 'B',
'В' => 'V',
'Г' => 'G',
'Д' => 'D',
'Е' => 'E',
'Ё' => 'YO',
'Ж' => 'ZH',
'З' => 'Z',
'И' => 'I',
'Й' => 'J',
'К' => 'K',
'Л' => 'L',
'М' => 'M',
'Н' => 'N',
'О' => 'O',
'П' => 'P',
'Р' => 'R',
'С' => 'S',
'Т' => 'T',
'У' => 'U',
'Ф' => 'F',
'Х' => 'H',
'Ц' => 'C',
'Ч' => 'CH',
'Ш' => 'SH',
'Щ' => 'CSH',
'Ь' => '',
'Ы' => 'Y',
'Ъ' => '',
'Э' => 'E',
'Ю' => 'YU',
'Я' => 'YA',
//-- Строчные
'а' => 'a',
'б' => 'b',
'в' => 'v',
'г' => 'g',
'д' => 'd',
'е' => 'e',
'ё' => 'yo',
'ж' => 'zh',
'з' => 'z',
'и' => 'i',
'й' => 'j',
'к' => 'k',
'л' => 'l',
'м' => 'm',
'н' => 'n',
'о' => 'o',
'п' => 'p',
'р' => 'r',
'с' => 's',
'т' => 't',
'у' => 'u',
'ф' => 'f',
'х' => 'h',
'ц' => 'c',
'ч' => 'ch',
'ш' => 'sh',
'щ' => 'csh',
'ь' => '',
'ы' => 'y',
'ъ' => '',
'э' => 'e',
'ю' => 'yu',
'я' => 'ya',
);
break;
//болгарский
case 'bg':
$table = array(
//-- Заглавные
'А' => 'A',
'Б' => 'B',
'В' => 'V',
'Г' => 'G',
'Д' => 'D',
'Е' => 'E',
'Ё' => 'YO',
'Ж' => 'ZH',
'З' => 'Z',
'И' => 'I',
'Й' => 'J',
'К' => 'K',
'Л' => 'L',
'М' => 'M',
'Н' => 'N',
'О' => 'O',
'П' => 'P',
'Р' => 'R',
'С' => 'S',
'Т' => 'T',
'У' => 'U',
'Ф' => 'F',
'Х' => 'H',
'Ц' => 'C',
'Ч' => 'CH',
'Ш' => 'SH',
'Щ' => 'SHT',
'Ь' => 'Y',
'Ы' => 'Y',
'Ъ' => 'A',
'Э' => 'E',
'Ю' => 'YU',
'Я' => 'YA',
//-- Строчные
'а' => 'a',
'б' => 'b',
'в' => 'v',
'г' => 'g',
'д' => 'd',
'е' => 'e',
'ё' => 'yo',
'ж' => 'zh',
'з' => 'z',
'и' => 'i',
'й' => 'j',
'к' => 'k',
'л' => 'l',
'м' => 'm',
'н' => 'n',
'о' => 'o',
'п' => 'p',
'р' => 'r',
'с' => 's',
'т' => 't',
'у' => 'u',
'ф' => 'f',
'х' => 'h',
'ц' => 'c',
'ч' => 'ch',
'ш' => 'sh',
'щ' => 'sht',
'ь' => 'a',
'ы' => 'y',
'ъ' => 'a',
'э' => 'e',
'ю' => 'yu',
'я' => 'ya',
);
break;
//-- українська мова:
case 'ua':
$table = array(
//-- Заглавные
'А' => 'A',
'Б' => 'B',
'В' => 'V',
'Г' => 'G',
'Д' => 'D',
'Е' => 'E',
'Є' => 'IE',
'Ж' => 'J',
'З' => 'Z',
'И' => 'Y',
'І' => 'I',
'Й' => 'I',
'К' => 'K',
'Л' => 'L',
'М' => 'M',
'Н' => 'N',
'О' => 'O',
'П' => 'P',
'Р' => 'R',
'С' => 'S',
'Т' => 'T',
'У' => 'U',
'Ф' => 'F',
'Х' => 'H',
'Ц' => 'C',
'Ч' => 'CH',
'Ш' => 'SH',
'Щ' => 'CSH',
'Ь' => '',
'Ю' => 'IU',
'Я' => 'IA',
//-- Строчные
'а' => 'a',
'б' => 'b',
'в' => 'v',
'г' => 'g',
'д' => 'd',
'е' => 'e',
'є' => 'ie',
'ж' => 'j',
'з' => 'z',
'и' => 'y',
'і' => 'i',
'й' => 'i',
'к' => 'k',
'л' => 'l',
'м' => 'm',
'н' => 'n',
'о' => 'o',
'п' => 'p',
'р' => 'r',
'с' => 's',
'т' => 't',
'у' => 'u',
'ф' => 'f',
'х' => 'h',
'ц' => 'c',
'ч' => 'ch',
'ш' => 'sh',
'щ' => 'csh',
'ь' => '',
'ю' => 'iu',
'я' => 'ia',
);
break;
case 'uk':
$table = array(
//-- Заглавные
'А' => 'A',
'Б' => 'B',
'В' => 'V',
'Г' => 'G',
'Ґ' => 'G',
'Д' => 'D',
'Е' => 'E',
'Є' => 'IE',
'Ж' => 'J',
'З' => 'Z',
'И' => 'Y',
'І' => 'I',
'Й' => 'I',
'К' => 'K',
'Л' => 'L',
'М' => 'M',
'Н' => 'N',
'О' => 'O',
'П' => 'P',
'Р' => 'R',
'С' => 'S',
'Т' => 'T',
'У' => 'U',
'Ф' => 'F',
'Х' => 'H',
'Ц' => 'C',
'Ч' => 'CH',
'Ш' => 'SH',
'Щ' => 'CSH',
'Ь' => '',
'Ю' => 'IU',
'Я' => 'IA',
//-- Строчные
'а' => 'a',
'б' => 'b',
'в' => 'v',
'г' => 'g',
'ґ' => 'g',
'д' => 'd',
'е' => 'e',
'є' => 'ie',
'ж' => 'j',
'з' => 'z',
'и' => 'y',
'і' => 'i',
'й' => 'i',
'к' => 'k',
'л' => 'l',
'м' => 'm',
'н' => 'n',
'о' => 'o',
'п' => 'p',
'р' => 'r',
'с' => 's',
'т' => 't',
'у' => 'u',
'ф' => 'f',
'х' => 'h',
'ц' => 'c',
'ч' => 'ch',
'ш' => 'sh',
'щ' => 'csh',
'ь' => '',
'ю' => 'iu',
'я' => 'ia',
);
break;
//-- polski język
case 'pl':
$table = array(
'Ą' => 'ya',
'ą' => 'ya',
'Ć' => 'ya',
'ć' => 'ya',
'Ę' => 'ya',
'ę' => 'ya',
'Ł' => 'ya',
'ł' => 'ya',
'Ń' => 'ya',
'ń' => 'ya',
'Ó' => 'ya',
'ó' => 'ya',
'Ś' => 'ya',
'ś' => 'ya',
'Ź' => 'ya',
'ź' => 'ya',
'Ż' => 'ya',
'ż' => 'ya',
);
break;
}
$string = str_replace(array_keys($table), array_values($table), $string);
switch ($language)
{
default:
case 'ru':
$replace = array(
'ье'=>'ye',
'ъе'=>'ye',
'ьи'=>'yi',
'ъи'=>'yi',
'ъо'=>'yo',
'ьо'=>'yo',
'ё'=>'yo',
'ю'=>'yu',
'я'=>'ya',
'ж'=>'zh',
'х'=>'kh',
'ц'=>'ts',
'ч'=>'ch',
'ш'=>'sh',
'щ'=>'shch',
'ъ'=>'',
'ь'=>'',
'є'=>'ye'
);
break;
case 'bg':
$replace = array(
'ье'=>'ye',
'ъе'=>'ye',
'ьи'=>'yi',
'ъи'=>'yi',
'ъо'=>'yo',
'ьо'=>'yo',
'ё'=>'yo',
'ю'=>'yu',
'я'=>'ya',
'ж'=>'zh',
'ц'=>'ts',
'ч'=>'ch',
'ш'=>'sh',
'щ'=>'sht',
'ъ'=>'a',
'ь'=>'a'
);
break;
}
$string = strtr($string, $replace);
switch ($language)
{
default:
case 'ru':
$search = 'абвгдезийклмнопрстуфыэі';
$replace = 'abvgdeziyklmnoprstufyei';
break;
case 'ua':
$search = 'абвгґдеєжзиійїклмнопрстуфхцчшщьюя';
$replace = 'abvggdeejzyiiklmnoprstufhccssua';
break;
case 'uk':
$search = 'абвгґдеєжзиійїклмнопрстуфхцчшщьюя';
$replace = 'abvggdeejzyiiklmnoprstufhccssua';
break;
case 'bg':
$search = 'абвгдезийклмнопрстуфыэіъ';
$replace = 'abvgdeziyklmnoprstufyeia';
break;
}
$string = strtr($string, $search, $replace);
return trim($string, '-');
}
/**
* Исправление форматирования даты
* Функцию можно использовать в шаблонах Smarty как модификатор
*
* @param string $string - дата отформатированная в соответствии с текущей локалью
* @param string $language - язык
* @return string
*/
function pretty_date($string, $language = '')
{
// пытаемся решить проблему для кодировки дат на лок. серверах
if (! mb_check_encoding($string, 'UTF-8'))
{
$string = iconv('Windows-1251', 'UTF-8', $string);
}
if ($language == '')
{
$language = (defined('ACP') && ACP)
? $_SESSION['admin_language']
: $_SESSION['user_language'];
}
$language = strtolower($language);
switch ($language)
{
default:
case 'ru':
$pretty = array(
'Январь' =>'января', 'Февраль' =>'февраля', 'Март' =>'марта',
'Апрель' =>'апреля', 'Май' =>'мая', 'Июнь' =>'июня',
'Июль' =>'июля', 'Август' =>'августа', 'Сентябрь'=>'сентября',
'Октябрь' =>'октября', 'Ноябрь' =>'ноября', 'Декабрь' =>'декабря',
'воскресенье'=>'Воскресенье', 'понедельник'=>'Понедельник', 'вторник' =>'Вторник',
'среда' =>'Среда', 'четверг' =>'Четверг', 'пятница' =>'Пятница',
'суббота' =>'Суббота'
);
break;
case 'ua':
case 'uk':
$pretty = array(
'Січень' =>'січня', 'Лютий' =>'лютого', 'Березень'=>'березня',
'Квітень'=>'квітня', 'Травень' =>'травня', 'Червень' =>'червня',
'Липень' =>'липня', 'Серпень' =>'серпня', 'Вересень'=>'вересня',
'Жовтень'=>'жовтня', 'Листопад' =>'листопада', 'Грудень' =>'грудня',
'неділя' =>'Неділя', 'понеділок'=>'Понеділок', 'вівторок'=>'Вівторок',
'середа' =>'Середа', 'четвер' =>'Четвер', 'п’ятниця'=>'П’ятниця',
'субота' =>'Субота'
);
break;
}
return (isset($pretty)
? strtr($string, $pretty)
: $string);
}
/**
* Функция перевода даты с en на ru
*
* @param string $data данные
* @return string
*/
function translate_date($data)
{
$language = (defined('ACP') && ACP)
? $_SESSION['admin_language']
: $_SESSION['user_language'];
$language = strtolower($language);
switch ($language)
{
default:
case 'ru':
$data = strtr($data, array(
'January'=>'Января',
'February'=>'Февраля',
'March'=>'Марта',
'April'=>'Апреля',
'May'=>'Мая',
'June'=>'Июня',
'July'=>'Июля',
'August'=>'Августа',
'September'=>'Сентября',
'October'=>'Октября',
'November'=>'Ноября',
'December'=>'Декабря',
'Jan'=>'Янв',
'Feb'=>'Фев',
'Mar'=>'Мрт',
'Apr'=>'Апр',
'May'=>'Май',
'Jun'=>'Июн',
'Jul'=>'Июл',
'Aug'=>'Авг',
'Sep'=>'Сен',
'Oct'=>'Окт',
'Nov'=>'Нбр',
'Dec'=>'Дек',
'Monday'=>'Понедельник',
'Tuesday'=>'Вторник',
'Wednesday'=>'Среда',
'Thursday'=>'Четверг',
'Friday'=>'Пятница',
'Saturday'=>'Суббота',
'Sunday'=>'Воскресенье',
'Mon'=>'Пн',
'Tue'=>'Вт',
'Wed'=>'Ср',
'Thu'=>'Чт',
'Fri'=>'Пт',
'Sat'=>'Сб',
'Sun'=>'Вс'
));
break;
case 'ua':
case 'uk':
$data = strtr($data, array(
'January'=>'Січня',
'February'=>'Лютого',
'March'=>'Березня',
'April'=>'Квітня',
'May'=>'Травня',
'June'=>'Червня',
'July'=>'Липня',
'August'=>'Серпня',
'September'=>'Вересня',
'October'=>'Жовтня',
'November'=>'Листопада',
'December'=>'Грудня',
'Jan'=>'Січ',
'Feb'=>'Лют',
'Mar'=>'Бер',
'Apr'=>'Кві',
'May'=>'Тра',
'Jun'=>'Чер',
'Jul'=>'Лип',
'Aug'=>'Сер',
'Sep'=>'Вер',
'Oct'=>'Жов',
'Nov'=>'Лис',
'Dec'=>'Гру',
'Monday'=>'Понеділок',
'Tuesday'=>'Вівторок',
'Wednesday'=>'Середа',
'Thursday'=>'Четвер',
'Friday'=>'П’ятниця',
'Saturday'=>'Субота',
'Sunday'=>'Неділя',
'Mon'=>'Пн',
'Tue'=>'Вт',
'Wed'=>'Ср',
'Thu'=>'Чт',
'Fri'=>'Пт',
'Sat'=>'Сб',
'Sun'=>'Нд'
));
break;
case 'bg':
$data = strtr($data, array(
'January'=>'Януари',
'February'=>'Февруари',
'March'=>'Март',
'April'=>'Април',
'May'=>'Май',
'June'=>'Юни',
'July'=>'Юли',
'August'=>'Август',
'September'=>'Септември',
'October'=>'Октомври',
'November'=>'Нември',
'December'=>'Декември',
'Jan'=>'Яну',
'Feb'=>'Фев',
'Mar'=>'Мрт',
'Apr'=>'Апр',
'May'=>'Май',
'Jun'=>'Юни',
'Jul'=>'Юли',
'Aug'=>'Авг',
'Sep'=>'Сеп',
'Oct'=>'Окт',
'Nov'=>'Ное',
'Dec'=>'Дек',
'Monday'=>'Понеделник',
'Tuesday'=>'Вторник',
'Wednesday'=>'Сряда',
'Thursday'=>'Четвъртък',
'Friday'=>'Петък',
'Saturday'=>'Събота',
'Sunday'=>'Неделя',
'Mon'=>'Пн',
'Tue'=>'Вт',
'Wed'=>'Ср',
'Thu'=>'Чт',
'Fri'=>'Пт',
'Sat'=>'Сб',
'Sun'=>'Нд'
));
break;
}
return $data;
}
/**
* Подготовка имени файла или директории
*
* @param string $st
* @return string
*/
function prepare_fname($st)
{
$st = strip_tags($st);
$st = strtr($st,'ABCDEFGHIJKLMNOPQRSTUVWXYZАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЪЫЭЮЯ',
'abcdefghijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщьъыэюя');
$st = translit_string(trim($st));
$st = preg_replace(array('/[^a-z0-9_-]/', '/--+/'), '-', $st);
return trim($st, '-');
}
/**
* Отображение даты в фармате
* 25 дней/минут/секунд назад
* и т.д.
*
* @param string $date (TIMESTAMP)
* @return string
*/
function human_date($date)
{
$stf = 0;
$cur_time = time();
$diff = $cur_time - $date;
$language = (defined('ACP') && ACP)
? $_SESSION['admin_language']
: $_SESSION['user_language'];
$language = strtolower($language);
switch ($language)
{
default:
case 'ru':
$seconds = array('секунда', 'секунды', 'секунд');
$minutes = array('минута', 'минуты', 'минут');
$hours = array('час', 'часа', 'часов');
$days = array('день', 'дня', 'дней');
$weeks = array('неделя', 'недели', 'недель' );
$months = array('месяц', 'месяца', 'месяцев');
$years = array('год', 'года', 'лет');
$decades = array('десятилетие', 'десятилетия', 'десятилетий');
$ago = 'назад';
break;
case 'ua':
case 'uk':
$seconds = array('секунда', 'секунди', 'секунд');
$minutes = array('хвилина', 'хвилини', 'хвилин');
$hours = array('година', 'години', 'годин');
$days = array('день', 'дня', 'днів');
$weeks = array('тиждень', 'тижня', 'тижнів' );
$months = array('месяць', 'місяця', 'місяців');
$years = array('рік', 'року', 'років');
$decades = array('десятиріччя', 'десятиріччя', 'десятиріч');
$ago = 'назад';
break;
case 'en':
$seconds = array('second', 'seconds', 'seconds');
$minutes = array('minute', 'minutes', 'minutes');
$hours = array('hour', 'hours', 'hours');
$days = array('day', 'days', 'days');
$weeks = array('week', 'weeks', 'weeks' );
$months = array('month', 'months', 'months');
$years = array('year', 'years', 'years');
$decades = array('decade', 'decades', 'decades');
$ago = 'ago';
break;
}
$phrase = array($seconds, $minutes, $hours, $days, $weeks, $months, $years, $decades);
$length = array(1, 60, 3600, 86400, 604800, 2630880, 31570560, 315705600);
for ($i = sizeof($length) - 1; ($i >= 0) && (($no = $diff / $length[ $i ]) <= 1 ); $i --)
{
;
}
if ($i < 0)
{
$i = 0;
}
$_time = $cur_time - ($diff % $length[$i]);
$no = floor($no);
$value = sprintf("%d %s ", $no, date_phrase($no, $phrase[$i]));
if (($stf == 1) && ($i >= 1) && (($cur_time - $_time) > 0))
{
$value .= time_ago($_time);
}
return $value . $ago;
}
function date_phrase($number, $titles)
{
$cases = array( 2, 0, 1, 1, 1, 2 );
return $titles[($number % 100 > 4 && $number % 100 < 20)
? 2
: $cases[min($number % 10, 5)]];
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
// Загрузить файл
function get_field_download($field_value, $action, $field_id=0, $tpl='', $tpl_empty=0, &$maxlength=null, $document_fields=array(), $rubric_id=0, $default=null){
global $AVE_Template;
$fld_dir = dirname(__FILE__) . '/';
$tpl_dir = $fld_dir . 'tpl/';
$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');
$res=0;
switch ($action)
{
case 'edit':
$field_value = !empty($field_value) ? htmlspecialchars($field_value, ENT_QUOTES) : '';
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $field_value);
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin');
return $AVE_Template->fetch($tpl_file);
break;
case 'doc':
$field_value = clean_php($field_value);
$field_param = explode('|', $field_value);
if ($tpl_empty)
{
$field_value = (!empty($field_param[1]) ? $field_param[1] . '
' : '')
. '
';
}
else
{
$field_value = preg_replace_callback(
'/\[tag:parametr:(\d+)\]/i',
function($data) use($field_param)
{
return $field_param[(int)$data[1]];
},
$tpl
);
}
$res = $field_value;
break;
case 'req':
$res=get_field_default($field_value,$action,$field_id,$tpl,$tpl_empty,$maxlength,$document_fields,$rubric_id);
break;
case 'name' :
return $AVE_Template->get_config_vars('name');
break;
}
return ($res ? $res : $field_value);
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2015 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
// Документ из рубрики
function get_field_doc_from_rub($field_value, $action, $field_id=0, $tpl='', $tpl_empty=0, &$maxlength=null, $document_fields=array(), $rubric_id=0, $default=null){
global $AVE_DB, $AVE_Template;
$fld_dir = dirname(__FILE__) . '/';
$tpl_dir = $fld_dir . 'tpl/';
$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');
$res = 0;
switch ($action)
{
case 'edit':
if (isset($default))
{
$parent = $AVE_DB->Query("
SELECT
MIN(document_parent) AS min
FROM
". PREFIX ."_documents
WHERE
rubric_id IN (" . $default . ")
")->GetCell();
$sql = $AVE_DB->Query("
SELECT
Id, document_parent, document_title
FROM
". PREFIX ."_documents
WHERE
rubric_id IN (" . $default . ")
");
$cats = array();
while($cat = $sql->FetchAssocArray())
{
$cats_ID[$cat['Id']][] = $cat;
$cats[$cat['document_parent']][$cat['Id']] = $cat;
}
$AVE_Template->assign('subtpl', $tpl_dir . "list.tpl");
$AVE_Template->assign('fields', doc_from_rub_tree($cats, $parent));
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('doc_id', (isset($_REQUEST['Id']) ? (int)$_REQUEST['Id'] : 0));
$AVE_Template->assign('field_value', $field_value);
}
else
{
$AVE_Template->assign('error', $AVE_Template->get_config_vars('error'));
}
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin');
return $AVE_Template->fetch($tpl_file);
break;
case 'doc':
$document = get_document($field_value);
if ($tpl_empty)
{
$field_value = $document['document_title'];
$field_value = clean_php($field_value);
$field_value = stripcslashes($field_value);
$field_value = htmlspecialchars_decode($field_value);
}
else
{
$field_param = explode('|', $field_value);
$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');
if ($tpl_empty && $tpl_file)
{
$AVE_Template->assign('document', $document);
return $AVE_Template->fetch($tpl_file);
}
$res = $field_value;
break;
case 'req':
$document = get_document($field_value);
if ($tpl_empty)
{
$field_value = $document['document_title'];
$field_value = clean_php($field_value);
$field_value = stripcslashes($field_value);
$field_value = htmlspecialchars_decode($field_value);
}
else
{
$field_param = explode('|', $field_value);
$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');
if ($tpl_empty && $tpl_file)
{
$AVE_Template->assign('document', $document);
return $AVE_Template->fetch($tpl_file);
}
$res = $field_value;
break;
case 'name':
return $AVE_Template->get_config_vars('name');
break;
}
return ($res ? $res : $field_value);
}
function doc_from_rub_tree($cats, $parent)
{
if (is_array($cats) and isset($cats[$parent]))
{
foreach($cats[$parent] as $cat)
{
$array[$cat['Id']]['Id'] = $cat['Id'];
$array[$cat['Id']]['document_title'] = $cat['document_title'];
$array[$cat['Id']]['child'] = doc_from_rub_tree($cats, $cat['Id']);
}
}
else
{
return null;
}
return $array;
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
// Мульти список
function get_field_multi_select($field_value, $action, $field_id=0, $tpl='', $tpl_empty=0, &$maxlength=null, $document_fields=array(), $rubric_id=0, $default=null)
{
global $AVE_Template;
$fld_dir = dirname(__FILE__) . '/';
$tpl_dir = $fld_dir . 'tpl/';
$fld_name = basename($fld_dir);
$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');
$res = array();
switch ($action)
{
case 'edit':
$items = array();
$items = explode(',', $default);
$items = array_diff($items, array(''));
@$field_value = unserialize($field_value);
$AVE_Template->assign('items', $items);
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $field_value);
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin');
return $AVE_Template->fetch($tpl_file);
break;
case 'doc':
$items = (isset($field_value))
? unserialize($field_value)
: array();
if ($items != false)
{
foreach($items as $item)
{
$item = clean_php($item);
$field_param = explode('|', $item);
if ($item)
{
if ($tpl_empty)
{
$item = $field_param[0];
}
else
{
$item = preg_replace_callback(
'/\[tag:parametr:(\d+)\]/i',
function($data) use($field_param)
{
return $field_param[(int)$data[1]];
},
$tpl
);
}
}
$res[] = $item;
}
}
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'doc');
if ($tpl_empty && $tpl_file)
{
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $res);
$AVE_Template->assign('rubric_id', $rubric_id);
$AVE_Template->assign('default', $default);
return $AVE_Template->fetch($tpl_file);
}
return (! empty($res))
? implode(PHP_EOL, $res)
: $tpl;
break;
case 'req':
$items = (isset($field_value)) ? unserialize($field_value) : array();
if ($items != false)
{
foreach($items as $item)
{
$item = clean_php($item);
$field_param = explode('|', $item);
if ($item)
{
if ($tpl_empty)
{
$item = $field_param[0];
}
else
{
$item = preg_replace_callback(
'/\[tag:parametr:(\d+)\]/i',
function($data) use($field_param)
{
return $field_param[(int)$data[1]];
},
$tpl
);
}
}
$res[] = $item;
}
}
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'req');
if($tpl_empty && $tpl_file)
{
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $res);
$AVE_Template->assign('rubric_id', $rubric_id);
$AVE_Template->assign('default', $default);
return $AVE_Template->fetch($tpl_file);
}
return (!empty($res)) ? implode(PHP_EOL, $res) : $tpl;
break;
case 'name':
return $AVE_Template->get_config_vars('name');
break;
}
return ($res ? $res : $field_value);
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @field YouTube
* @copyright © 2007-2016 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*
* @param $field_value
* @param $action
* @param int $field_id
* @param string $tpl
* @param int $tpl_empty
* @param null $maxlength
* @param array $document_fields
* @param int $rubric_id
* @param null $default
* @return array|int|mixed|string
*/
// YouTube
function get_field_youtube($field_value, $action, $field_id = 0, $tpl = '', $tpl_empty = 0, &$maxlength = null, $document_fields = array(), $rubric_id = 0, $default = null)
{
global $AVE_Template;
$fld_dir = dirname(__FILE__) . '/';
$tpl_dir = $fld_dir . 'tpl/';
$fld_name = basename($fld_dir);
$lang_file = $fld_dir . 'lang/' . (defined('ACP') ? $_SESSION['admin_language'] : $_SESSION['user_language']) . '.txt';
$AVE_Template->config_load($lang_file, 'lang');
$AVE_Template->config_load($lang_file, 'admin');
$AVE_Template->assign('config_vars', $AVE_Template->get_config_vars());
$result = 0;
switch ($action)
{
// Отображение поля в административной части
case 'edit':
$video = explode('|', $field_value);
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin');
$AVE_Template->assign('field_dir', $fld_name);
$AVE_Template->assign('video', $video);
$AVE_Template->assign('rubric_id', $rubric_id);
$AVE_Template->assign('doc_id', (int)$_REQUEST['Id']);
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $field_value);
return $AVE_Template->fetch($tpl_file);
// Отображение поля в документах
case 'doc':
$field_value = clean_php($field_value);
$field_param = explode('|', $field_value);
if (! empty($field_param[0]))
$url = youtube_url_parser($field_param[0], $field_param[4]);
if (! $tpl_empty)
{
$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');
if($tpl_empty && $tpl_file)
{
$AVE_Template->assign('param', $field_param);
$AVE_Template->assign('video_url', $url);
return $AVE_Template->fetch($tpl_file);
}
return $field_value;
// Отображение поля в запросах
case 'req':
$field_value = clean_php($field_value);
$field_param = explode('|', $field_value);
if (! empty($field_param[0]))
$url = youtube_url_parser($field_param[0], $field_param[4]);
if (! $tpl_empty)
{
$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');
if($tpl_empty && $tpl_file)
{
$AVE_Template->assign('param', $field_param);
$AVE_Template->assign('video_url', $url);
return $AVE_Template->fetch($tpl_file);
}
return $field_value;
// Сохранение поля в административной части
case 'save':
if (isset($field_value) && $field_value['url'] != '' )
{
$field_value = htmlspecialchars(implode("|", $field_value), ENT_QUOTES);
}
else
{
$field_value = '';
}
break;
// Тип/Имя поля в административной части
case 'name' :
return $AVE_Template->get_config_vars('name');
}
return ($result ? $result : $field_value);
}
// Check YouTube link
function youtube_url_parser($url, $source = 'embed')
{
// Parse URL
$p_url = parse_url($url);
// Find host
$host = $p_url['host'];
// Check if youtube
if ($host == 'www.youtube.com') {
if (preg_match('/[\\?\\&]v=([^\\?\\&]+)/', $url, $match))
{
$vid = $match[1];
if ($source == 'embed')
{
return 'http://www.youtube.com/v/'.$vid;
}
else
{
return 'http://www.youtube.com/embed/'.$vid;
}
}
else
{
return $url;
}
// Check the new video url
}
else if ($host == 'youtu.be')
{
if (preg_match('/^(http|https):\/\/youtu\.be\/(.*)/i', $url, $match))
{
$vid = $match[2];
if ($source == 'embed')
{
return 'http://www.youtube.com/v/'.$vid;
}
else
{
return 'http://www.youtube.com/embed/'.$vid;
}
}
else
{
return $url;
}
}
// Nothing just return the url
else
{
return $url;
}
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
// Многострочное
function get_field_multi_line($field_value, $action, $field_id=0, $tpl='', $tpl_empty=0, &$maxlength=null, $document_fields=array(), $rubric_id=0, $default=null){
global $AVE_Template, $AVE_Document;
$fld_dir = dirname(__FILE__) . '/';
$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');
$res=0;
switch ($action)
{
case 'edit':
if (isset($_COOKIE['no_wysiwyg']) && $_COOKIE['no_wysiwyg'] == 1)
{
$field = '';
$field .= '';
}
else
{
if (isset($_REQUEST['outside']) && ($_REQUEST['outside'] === (bool)true)) {
switch ($_SESSION['use_editor']) {
case '0':
case '1':
case '2':
$oCKeditor = new CKeditor();
$oCKeditor->returnOutput = true;
$oCKeditor->config['toolbar'] = 'Verysmall';
$oCKeditor->config['height'] = 250;
$config = array();
$field = $oCKeditor->editor('data['.$_REQUEST['Id'].'][feld][' . $field_id . ']', $field_value, $config);
break;
default:
$field = $field_value;
break;
}
} else {
switch ($_SESSION['use_editor']) {
case '0': // CKEditor
case '1':
$oCKeditor = new CKeditor();
$oCKeditor->returnOutput = true;
$oCKeditor->config['toolbar'] = 'Big';
$oCKeditor->config['height'] = 400;
$config = array();
$field = $oCKeditor->editor('feld[' . $field_id . ']', $field_value, $config);
break;
default:
$field = $field_value;
break;
}
}
}
$res = $field;
break;
case 'doc':
case 'req':
$res = get_field_default($field_value, $action, $field_id, $tpl, $tpl_empty, $maxlength, $document_fields, $rubric_id);
$res = document_pagination($res);
break;
case 'name' :
return $AVE_Template->get_config_vars('name');
break;
}
return ($res ? $res : $field_value);
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
// Многострочное (Упрощенное)
function get_field_multi_line_simple($field_value, $action, $field_id=0, $tpl='', $tpl_empty=0, &$maxlength=null, $document_fields=array(), $rubric_id=0, $default=null){
global $AVE_Template;
$fld_dir = dirname(__FILE__) . '/';
$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');
$res=0;
switch ($action)
{
case 'edit':
if (isset($_COOKIE['no_wysiwyg']) && $_COOKIE['no_wysiwyg'] == 1)
{
$field = "";
$field .= "";
}
else
{
if (isset($_REQUEST['outside']) && ($_REQUEST['outside'] === (bool)true)) {
switch ($_SESSION['use_editor'])
{
case '0':
case '1':
case '2':
$oCKeditor = new CKeditor();
$oCKeditor->returnOutput = true;
$oCKeditor->config['toolbar'] = 'Verysmall';
$oCKeditor->config['height'] = 200;
$config = array();
$field = $oCKeditor->editor('data['.$_REQUEST['Id'].'][feld][' . $field_id . ']', $field_value, $config);
break;
default:
$field = $field_value;
break;
}
} else {
switch ($_SESSION['use_editor']) {
case '0': // CKEditor
case '1':
$oCKeditor = new CKeditor();
$oCKeditor->returnOutput = true;
$oCKeditor->config['toolbar'] = 'Small';
$oCKeditor->config['height'] = 300;
$config = array();
$field = $oCKeditor->editor('feld[' . $field_id . ']', $field_value, $config);
break;
default:
$field = $field_value;
break;
}
}
}
$res = $field;
break;
case 'doc':
case 'req':
$res = get_field_default($field_value,$action,$field_id,$tpl,$tpl_empty,$maxlength,$document_fields,$rubric_id);
$res = document_pagination($res);
break;
case 'name' :
return $AVE_Template->get_config_vars('name');
break;
}
return ($res ? $res : $field_value);
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
// Однострочное числовое
function get_field_single_line_numeric ($field_value, $action, $field_id = 0, $tpl = '', $tpl_empty = 0, &$maxlength = null, $document_fields = array(), $rubric_id = 0, $default = null)
{
global $AVE_Template;
$fld_dir = dirname(__FILE__) . '/';
$tpl_dir = $fld_dir . 'tpl/';
$fld_name = basename($fld_dir);
$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':
$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');
return $AVE_Template->fetch($tpl_file);
break;
case 'doc':
if ($tpl_empty)
{
$field_value = clean_php($field_value);
}
else
{
$field_param = explode('|', $field_value);
$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');
if($tpl_empty && $tpl_file){
$AVE_Template->assign('field_value', $field_value);
return $AVE_Template->fetch($tpl_file);
}
return $field_value;
break;
case 'req':
if ($tpl_empty)
{
$field_value = clean_php($field_value);
}
else
{
$field_param = explode('|', $field_value);
$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');
if($tpl_empty && $tpl_file){
$AVE_Template->assign('field_value', $field_value);
return $AVE_Template->fetch($tpl_file);
}
return $field_value;
break;
case 'save':
$field_value = preg_replace('/[^\d.]/','',$field_value);
return $field_value;
case 'name':
return $AVE_Template->get_config_vars('name');
default: return $field_value;
}
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
// Чекбокс (Checkbox)
function get_field_checkbox($field_value, $action, $field_id = 0, $tpl = '', $tpl_empty = 0, &$maxlength = null, $document_fields = array(), $rubric_id = 0, $default = null)
{
global $AVE_Template;
$fld_dir = dirname(__FILE__) . '/';
$tpl_dir = $fld_dir . 'tpl/';
$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');
$res = '';
switch ($action)
{
case 'edit':
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', (int)$field_value);
$AVE_Template->assign('doc_id', (isset($_REQUEST['Id']) ? (int)$_REQUEST['Id'] : 0));
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin');
return $AVE_Template->fetch($tpl_file);
break;
case 'doc':
$field_value = clean_php($field_value);
$res = ((int)$field_value === 1)
? (int)$field_value
: 0;
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'doc');
if ($tpl_empty && $tpl_file)
{
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $field_value);
return $AVE_Template->fetch($tpl_file);
}
return $res;
break;
case 'req':
$field_value = clean_php($field_value);
$res = ((int)$field_value === 1)
? (int)$field_value
: 0;
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'req');
if ($tpl_empty && $tpl_file)
{
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $field_value);
return $AVE_Template->fetch($tpl_file);
}
return $res;
break;
case 'save':
$field_value = clean_php($field_value);
$res = ((int)$field_value === 1)
? $field_value
: '0';
break;
case 'name':
return $AVE_Template->get_config_vars('name');
break;
}
return ($res ? $res : $field_value);
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
// Дата (TimeStamp)
function get_field_date($field_value, $action, $field_id=0, $tpl='', $tpl_empty=0, &$maxlength=null, $document_fields=array(), $rubric_id=0, $default=null){
global $AVE_Template;
$fld_dir = dirname(__FILE__) . '/';
$tpl_dir = $fld_dir . 'tpl/';
$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');
$res=0;
switch ($action)
{
case 'edit':
$field_value = ($field_value != 0) ? $field_value : '';
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $field_value);
$AVE_Template->assign('doc_id', (int)$_REQUEST['Id']);
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin');
return $AVE_Template->fetch($tpl_file);
break;
case 'doc':
$field_value = clean_php($field_value);
if ($tpl_empty)
{
$value = pretty_date(strftime(TIME_FORMAT, $field_value));
}
else
{
$value = preg_replace_callback(
'/\[tag:parametr:(\d+)\]/i',
function($data) use($field_value)
{
return $field_value;
},
$tpl
);
return $res = $value;
}
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'doc');
if($tpl_empty && $tpl_file){
$AVE_Template->assign('field_value', $field_value);
return $AVE_Template->fetch($tpl_file);
}
$res = $field_value;
break;
case 'req':
$field_value = clean_php($field_value);
if ($tpl_empty)
{
$value = pretty_date(strftime(TIME_FORMAT, $field_value));
}
else
{
$value = preg_replace_callback(
'/\[tag:parametr:(\d+)\]/i',
function($data) use($field_value)
{
return $field_value;
},
$tpl
);
return $res = $value;
}
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'req');
if($tpl_empty && $tpl_file){
$AVE_Template->assign('field_value', $field_value);
return $AVE_Template->fetch($tpl_file);
}
$res = $field_value;
break;
case 'save':
$res = $field_value;
break;
case 'name':
return $AVE_Template->get_config_vars('name');
break;
}
return ($res ? $res : $field_value);
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
// Мульти лист
function get_field_multi_list_triple($field_value, $action, $field_id=0, $tpl='', $tpl_empty=0, &$maxlength=null, $document_fields=array(), $rubric_id=0, $default=null){
global $AVE_Template;
$fld_dir = dirname(__FILE__) . '/';
$tpl_dir = $fld_dir . 'tpl/';
$fld_name = basename($fld_dir);
$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');
$res = array();
switch ($action)
{
case 'edit':
$items = array();
$items = unserialize($field_value);
if ($items != false)
{
foreach($items as $k => $v)
{
$list_item = explode('|', $v);
$list[$k]['param'] = (isset($list_item[0])) ? htmlspecialchars($list_item[0], ENT_QUOTES) : '';
$list[$k]['value'] = (isset($list_item[1])) ? htmlspecialchars($list_item[1], ENT_QUOTES) : '';
$list[$k]['value2'] = (isset($list_item[2])) ? htmlspecialchars($list_item[2], ENT_QUOTES) : '';
}
$items = $list;
}
else
{
$items = explode(',', $default);
foreach ($items as $k => $v)
{
$list_item = explode('|', $v);
$list[$k]['param'] = (isset($list_item[0])) ? htmlspecialchars($list_item[0], ENT_QUOTES) : '';
$list[$k]['value'] = (isset($list_item[1])) ? htmlspecialchars($list_item[1], ENT_QUOTES) : '';
$list[$k]['value2'] = (isset($list_item[2])) ? htmlspecialchars($list_item[2], ENT_QUOTES) : '';
}
$items = $list;
}
$AVE_Template->assign('doc_id', $_REQUEST['Id']);
$AVE_Template->assign('field_dir', $fld_name);
$AVE_Template->assign('items', $items);
$AVE_Template->assign('field_id', $field_id);
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin');
return $AVE_Template->fetch($tpl_file);
break;
case 'doc':
$items = unserialize($field_value);
if ($items != false)
{
foreach ($items as $list_item)
{
$list_item = clean_php($list_item);
$field_param = explode('|', $list_item);
if ($list_item)
{
if ($tpl_empty)
{
$list_item = $field_param;
}
else
{
$list_item = preg_replace_callback(
'/\[tag:parametr:(\d+)\]/i',
function($data) use($field_param)
{
return $field_param[(int)$data[1]];
},
$tpl
);
}
}
$res[] = $list_item;
}
}
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'doc');
if($tpl_empty && $tpl_file)
{
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $res);
$AVE_Template->assign('field_count', count($res));
$AVE_Template->assign('default', $default);
return $AVE_Template->fetch($tpl_file);
}
return (!empty($res)) ? implode(PHP_EOL, $res) : $tpl;
break;
case 'req':
$items = unserialize($field_value);
if ($items != false)
{
foreach ($items as $list_item)
{
$list_item = clean_php($list_item);
$field_param = explode('|', $list_item);
if ($list_item)
{
if ($tpl_empty)
{
$list_item = $field_param;
}
else
{
$list_item = preg_replace_callback(
'/\[tag:parametr:(\d+)\]/i',
function($data) use($field_param)
{
return $field_param[(int)$data[1]];
},
$tpl
);
}
}
$res[] = $list_item;
}
}
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'req');
if ($tpl_empty && $tpl_file)
{
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $res);
$AVE_Template->assign('field_count', count($res));
$AVE_Template->assign('default', $default);
return $AVE_Template->fetch($tpl_file);
}
return (!empty($res)) ? implode(PHP_EOL, $res) : $tpl;
break;
case 'save':
foreach ($field_value as $v)
{
if(!empty($v['param']))
{
$field_value_new[] = $v['param'] . '|' . $v['value'] . '|' . $v['value2'];
}
}
if (isset($field_value_new))
{
return @serialize($field_value_new);
}
else
{
return $field_value_new = '';
}
break;
case 'name':
return $AVE_Template->get_config_vars('name');
break;
}
return ($res ? $res : $field_value);
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
// Многострочное (Слим)
function get_field_multi_line_slim($field_value,$action, $field_id=0, $tpl='', $tpl_empty=0, &$maxlength=null, $document_fields=array(), $rubric_id=0, $default=null){
global $AVE_Template, $AVE_Document;
$fld_dir = dirname(__FILE__) . '/';
$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');
$res=0;
switch ($action)
{
case 'edit':
if (isset($_COOKIE['no_wysiwyg']) && $_COOKIE['no_wysiwyg'] == 1)
{
$field = "";
$field .= "";
}
else
{
if (isset($_REQUEST['outside']) && ($_REQUEST['outside'] === (bool)true)) {
switch ($_SESSION['use_editor']) {
case '0':
case '1':
case '2':
$oCKeditor = new CKeditor();
$oCKeditor->returnOutput = true;
$oCKeditor->config['toolbar'] = 'Verysmall';
$oCKeditor->config['height'] = 200;
$config = array();
$field = $oCKeditor->editor('data['.$_REQUEST['Id'].'][feld][' . $field_id . ']', $field_value, $config);
break;
default:
$field = $field_value;
break;
}
} else {
switch ($_SESSION['use_editor']) {
case '0': // CKEditor
case '1':
$oCKeditor = new CKeditor();
$oCKeditor->returnOutput = true;
$oCKeditor->config['toolbar'] = 'Verysmall';
$oCKeditor->config['height'] = 200;
$config = array();
$field = $oCKeditor->editor('feld[' . $field_id . ']', $field_value, $config);
break;
default:
$field = $field_value;
break;
}
}
}
$res = $field;
break;
case 'doc':
case 'req':
$res = get_field_default($field_value,$action,$field_id,$tpl,$tpl_empty,$maxlength,$document_fields,$rubric_id);
$res = document_pagination($res);
break;
case 'name' :
return $AVE_Template->get_config_vars('name');
break;
}
return ($res ? $res : $field_value);
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
// Изображение
function get_field_image_single($field_value, $action, $field_id=0, $tpl='', $tpl_empty=0, &$maxlength=null, $document_fields=array(), $rubric_id=0, $default=null){
global $AVE_Template;
$fld_dir = dirname(__FILE__) . '/';
$tpl_dir = $fld_dir . 'tpl/';
$fld_name = basename($fld_dir);
$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');
$res = 0;
switch ($action)
{
case 'edit':
$blanc = '/uploads/images/noimage.gif';
$image = explode('|', $field_value);
$img = $image[0];
unset($image[0]);
$image = array($img, implode('|', $image));
$field = (!empty($image[0]) ? '../' . make_thumbnail(array('link' => $image[0], 'size' => 'f128x128')) : make_thumbnail(array('link' => $blanc, 'size' => 'f128x128')));
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin');
$AVE_Template->assign('field_dir', $fld_name);
$AVE_Template->assign('image', $image);
$AVE_Template->assign('doc_id', (int)$_REQUEST['Id']);
$AVE_Template->assign('field', $field);
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $field_value);
return $AVE_Template->fetch($tpl_file);
break;
case 'doc':
$field_value = clean_php($field_value);
$field_param = explode('|', $field_value);
if ($tpl_empty)
{
$field_value = '
';
}
else
{
$field_value = preg_replace_callback(
'/\[tag:parametr:(\d+)\]/i',
function($data) use($field_param)
{
return $field_param[(int)$data[1]];
},
$tpl
);
$field_value = preg_replace_callback(
'/\[tag:watermark:(.+?):([a-zA-Z]+):([0-9]+)\]/',
create_function(
'$m',
'return watermarks(\'$m[1]\', \'$m[2]\', $m[3]);'
),
$field_value
);
$field_value = preg_replace_callback('/\[tag:([r|c|f|t|s]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $field_value);
}
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'doc');
if($tpl_empty && $tpl_file)
{
$AVE_Template->assign('image', $field_param);
return $AVE_Template->fetch($tpl_file);
}
return $field_value;
break;
case 'req':
$field_value = clean_php($field_value);
$field_param = explode('|', $field_value);
if ($tpl_empty)
{
$field_param[1] = isset($field_param[1]) ? $field_param[1] : '';
$field_value = '
';
}
else
{
$field_value = preg_replace_callback(
'/\[tag:parametr:(\d+)\]/i',
function($data) use($field_param)
{
return $field_param[(int)$data[1]];
},
$tpl
);
$field_value = preg_replace_callback(
'/\[tag:watermark:(.+?):([a-zA-Z]+):([0-9]+)\]/',
create_function(
'$m',
'return watermarks(\'$m[1]\', \'$m[2]\', $m[3]);'
),
$field_value
);
$field_value = preg_replace_callback('/\[tag:([r|c|f|t|s]\d+x\d+r*):(.+?)]/', 'callback_make_thumbnail', $field_value);
}
$maxlength = null;
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'req');
if($tpl_empty && $tpl_file)
{
$AVE_Template->assign('image', $field_param);
return $AVE_Template->fetch($tpl_file);
}
return $field_value;
break;
case 'save':
if (isset($field_value) && $field_value['img'] != '' )
{
$field_value = htmlspecialchars(implode("|", $field_value), ENT_QUOTES);
}
else
{
$field_value = '';
}
break;
case 'name' :
return $AVE_Template->get_config_vars('name');
break;
}
return ($res ? $res : $field_value);
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2016 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*
* @param $field_value
* @param $action
* @param int $field_id
* @param string $tpl
* @param int $tpl_empty
* @param null $maxlength
* @param array $document_fields
* @param int $rubric_id
* @param null $default
* @return array|int|mixed|string
*/
// Текст в изображение
function get_field_text_to_image ($field_value, $action, $field_id = 0, $tpl = '', $tpl_empty = 0, &$maxlength = null, $document_fields = array(), $rubric_id = 0, $default = null)
{
global $AVE_Template;
$fld_dir = dirname(__FILE__) . '/';
$tpl_dir = $fld_dir . 'tpl/';
$fld_name = basename($fld_dir);
$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':
$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');
return $AVE_Template->fetch($tpl_file);
break;
// Отображение поля в документах
case 'doc':
$AVE_Template->config_load($lang_file, 'public');
if ($tpl_empty)
{
$field_value = clean_php($field_value);
}
else
{
$field_param = explode('|', $field_value);
$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');
if($tpl_empty && $tpl_file){
$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 = clean_php($field_value);
}
else
{
$field_param = explode('|', $field_value);
$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');
if($tpl_empty && $tpl_file){
$AVE_Template->assign('field_value', $field_value);
return $AVE_Template->fetch($tpl_file);
}
return $field_value;
break;
// Сохранение поля в административной части
case 'save':
return $field_value;
// Тип | Имя поля в административной части
case 'name':
return $AVE_Template->get_config_vars('name');
default: return $field_value;
}
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
*/
// Мульти лист
function get_field_multi_list_single($field_value, $action, $field_id=0, $tpl='', $tpl_empty=0, &$maxlength=null, $document_fields=array(), $rubric_id=0, $default=null){
global $AVE_Template;
$fld_dir = dirname(__FILE__) . '/';
$tpl_dir = $fld_dir . 'tpl/';
$fld_name = basename($fld_dir);
$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');
$res = array();
switch ($action)
{
case 'edit':
$items = array();
$items = unserialize($field_value);
if ($items != false)
{
$items = $items;
}
else
{
$items = explode(',', $default);
}
$AVE_Template->assign('doc_id', $_REQUEST['Id']);
$AVE_Template->assign('field_dir', $fld_name);
$AVE_Template->assign('items', $items);
$AVE_Template->assign('field_id', $field_id);
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin');
return $AVE_Template->fetch($tpl_file);
break;
case 'doc':
$items = unserialize($field_value);
if ($items != false)
{
foreach($items as $list_item)
{
$list_item = clean_php($list_item);
$field_param = explode('|', $list_item);
if ($list_item)
{
if ($tpl_empty)
{
$list_item = $field_param;
}
else
{
$list_item = preg_replace_callback(
'/\[tag:parametr:(\d+)\]/i',
function($data) use($field_param)
{
return $field_param[(int)$data[1]];
},
$tpl
);
}
}
$res[] = $list_item;
}
}
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'doc');
if ($tpl_empty && $tpl_file)
{
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $res);
$AVE_Template->assign('field_count', count($res));
$AVE_Template->assign('default', $default);
return $AVE_Template->fetch($tpl_file);
}
return (! empty($res)) ? implode(PHP_EOL, $res) : $tpl;
break;
case 'req':
$items = unserialize($field_value);
if ($items != false)
{
foreach($items as $list_item)
{
$list_item = clean_php($list_item);
$field_param = explode('|', $list_item);
if ($list_item)
{
if ($tpl_empty)
{
$list_item = $field_param;
}
else
{
$list_item = preg_replace_callback(
'/\[tag:parametr:(\d+)\]/i',
function($data) use($field_param)
{
return $field_param[(int)$data[1]];
},
$tpl
);
}
}
$res[] = $list_item;
}
}
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'req');
if ($tpl_empty && $tpl_file)
{
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $res);
$AVE_Template->assign('field_count', count($res));
$AVE_Template->assign('default', $default);
return $AVE_Template->fetch($tpl_file);
}
return (! empty($res)) ? implode(PHP_EOL, $res) : $tpl;
break;
case 'save':
foreach ($field_value as $v)
{
if (! empty($v))
{
$field_value_new[] = $v;
}
}
if (isset($field_value_new))
{
return @serialize($field_value_new);
}
else
{
return $field_value_new = '';
}
break;
case 'name':
return $AVE_Template->get_config_vars('name');
break;
}
return ($res ? $res : $field_value);
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2015 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
// Мульти чекбокс
function get_field_multi_checkbox($field_value, $action, $field_id=0, $tpl='', $tpl_empty=0, &$maxlength=null, $document_fields=array(), $rubric_id=0, $default=null)
{
global $AVE_Template;
$fld_dir = dirname(__FILE__) . '/';
$tpl_dir = $fld_dir . 'tpl/';
$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');
$res = array();
switch ($action)
{
case 'edit':
$default_items = explode(',', $default);
$default_items = array_diff($default_items, array(''));
$field_value_array = explode('|', $field_value);
$field_value_array = array_values(array_diff($field_value_array, array('')));
$AVE_Template->assign('items', $default_items);
$AVE_Template->assign('used', $field_value_array);
$AVE_Template->assign('doc_id', (isset($_REQUEST['Id']) ? (int)$_REQUEST['Id'] : 0));
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $field_value);
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin');
return $AVE_Template->fetch($tpl_file);
break;
case 'doc':
$default_items = explode(',', $default);
$items = explode('|', $field_value);
$items = array_diff($items, array(''));
if (! empty($items))
{
foreach($items as $item)
{
if ($item)
{
if ($tpl_empty)
{
$item = $default_items[(int)$item-1];
}
else
{
$field_param = explode('|', $item);
$item = preg_replace_callback(
'/\[tag:parametr:(\d+)\]/i',
function($data) use($field_param, $default_items)
{
return $default_items[$field_param[(int)$data[1]]-1];
},
$tpl
);
}
}
$res[] = $item;
}
}
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'doc');
if ($tpl_empty && $tpl_file)
{
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $res);
$AVE_Template->assign('rubric_id', $rubric_id);
$AVE_Template->assign('default', $default_items);
return $AVE_Template->fetch($tpl_file);
}
return (! empty($res))
? implode(PHP_EOL, $res)
: $tpl;
break;
case 'req':
$default_items = explode(',', $default);
$items = explode('|', $field_value);
$items = array_diff($items, array(''));
if (! empty($items))
{
foreach($items as $item)
{
if ($item)
{
if ($tpl_empty)
{
$item = $default_items[(int)$item-1];
}
else
{
$field_param = explode('|', $item);
$item = preg_replace_callback(
'/\[tag:parametr:(\d+)\]/i',
function($data) use($field_param, $default_items)
{
return $default_items[$field_param[(int)$data[1]]-1];
},
$tpl
);
}
}
$res[] = $item;
}
}
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'req');
if ($tpl_empty && $tpl_file)
{
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $res);
$AVE_Template->assign('rubric_id', $rubric_id);
$AVE_Template->assign('default', $default_items);
return $AVE_Template->fetch($tpl_file);
}
return (! empty($res))
? implode(PHP_EOL, $res)
: $tpl;
break;
case 'name':
return $AVE_Template->get_config_vars('name');
break;
}
return ($res ? $res : $field_value);
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
// Ссылка
function get_field_link($field_value, $action, $field_id=0, $tpl='', $tpl_empty=0, &$maxlength=null, $document_fields=array(), $rubric_id=0, $default=null){
global $AVE_Template;
$fld_dir = dirname(__FILE__) . '/';
$tpl_dir = $fld_dir . 'tpl/';
$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');
$res = '';
switch ($action)
{
case 'edit':
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $field_value);
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin');
return $AVE_Template->fetch($tpl_file);
break;
case 'doc':
$field_value = clean_php($field_value);
$field_param = explode('|', $field_value);
$field_param[1] = empty($field_param[1]) ? $field_param[0] : $field_param[1];
if ($tpl_empty)
{
$field_value = ' ' . $field_param[1] . '';
}
else
{
$field_value = preg_replace_callback(
'/\[tag:parametr:(\d+)\]/i',
function($data) use($field_param)
{
return $field_param[(int)$data[1]];
},
$tpl
);
}
$res = $field_value;
break;
case 'req':
$field_value = clean_php($field_value);
$field_param = explode('|', $field_value);
if (empty($field_param[1]))
$field_param[1] = $field_param[0];
if (isset($document_fields[$rubric_id]['tpl_req_empty']))
{
$field_value = " " . $field_param[1] . "";
}
else
{
$field_value = preg_replace_callback(
'/\[tag:parametr:(\d+)\]/i',
function($data) use($field_param)
{
return $field_param[(int)$data[1]];
},
$tpl
);
}
$maxlength = null;
$res = $field_value;
break;
case 'name' :
return $AVE_Template->get_config_vars('name');
break;
}
return ($res ? $res : $field_value);
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2015 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
// Документ из рубрики (Checkbox)
function get_field_doc_from_rub_check($field_value, $action, $field_id=0, $tpl='', $tpl_empty=0, &$maxlength=null, $document_fields=array(), $rubric_id=0, $default=null){
global $AVE_DB, $AVE_Template;
$fld_dir = dirname(__FILE__) . '/';
$tpl_dir = $fld_dir . 'tpl/';
$fld_name = basename($fld_dir);
$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');
$res = array();
switch ($action)
{
case 'edit':
if (isset($default))
{
$parent = $AVE_DB->Query("
SELECT
MIN(document_parent) AS min
FROM
". PREFIX ."_documents
WHERE
rubric_id IN (" . $default . ")
")->GetCell();
$sql = $AVE_DB->Query("
SELECT
Id, document_parent, document_title
FROM
". PREFIX ."_documents
WHERE
rubric_id IN (" . $default . ")
");
$field_value_array = explode('|', $field_value);
$field_value_array = array_values(array_diff($field_value_array, array('')));
$cats = array();
while($cat = $sql->FetchAssocArray())
{
$cat['checked'] = ((in_array($cat['Id'], $field_value_array) == false) ? "0" : "1");
$cats_ID[$cat['Id']][] = $cat;
$cats[$cat['document_parent']][$cat['Id']] = $cat;
}
$AVE_Template->assign('subtpl', $tpl_dir."list.tpl");
$AVE_Template->assign('fields', doc_from_rub_check_tree($cats, $parent));
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('doc_id', (isset($_REQUEST['Id']) ? (int)$_REQUEST['Id'] : 0));
$AVE_Template->assign('field_value', $field_value);
}
else
{
$AVE_Template->assign('error', $AVE_Template->get_config_vars('error'));
}
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin');
$AVE_Template->assign('subtpl', $tpl_dir."list.tpl");
return $AVE_Template->fetch($tpl_file);
break;
case 'doc':
$field_value_array = explode('|', $field_value);
$field_value_array = array_values(array_diff($field_value_array, array('')));
if ($field_value_array != false)
{
foreach ($field_value_array as $list_item)
{
if ($list_item)
{
if ($tpl_empty)
{
$list_item = $AVE_DB->Query("
SELECT
Id,
document_title,
document_alias,
document_breadcrum_title
FROM
".PREFIX."_documents
WHERE
Id = '" . $list_item . "'
")->FetchAssocArray();
}
}
$res[] = $list_item;
}
}
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'doc');
if ($tpl_empty && $tpl_file)
{
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $res);
$AVE_Template->assign('field_count', count($res));
$AVE_Template->assign('default', $default);
return $AVE_Template->fetch($tpl_file);
}
return (!empty($res)) ? implode(PHP_EOL, $res) : $tpl;
break;
case 'req':
$field_value_array = explode('|', $field_value);
$field_value_array = array_values(array_diff($field_value_array, array('')));
if ($field_value_array != false)
{
foreach ($field_value_array as $list_item)
{
if ($list_item)
{
if ($tpl_empty)
{
$list_item = $AVE_DB->Query("
SELECT
Id,
document_title,
document_alias,
document_breadcrum_title
FROM
".PREFIX."_documents
WHERE
Id = '" . $list_item . "'
")->FetchAssocArray();
}
}
$res[] = $list_item;
}
}
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'req');
if ($tpl_empty && $tpl_file)
{
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $res);
$AVE_Template->assign('field_count', count($res));
$AVE_Template->assign('default', $default);
return $AVE_Template->fetch($tpl_file);
}
return (!empty($res)) ? implode(PHP_EOL, $res) : $tpl;
break;
case 'name' :
return $AVE_Template->get_config_vars('name');
break;
}
return ($res ? $res : $field_value);
}
function doc_from_rub_check_tree($cats, $parent)
{
if (is_array($cats) and isset($cats[$parent]))
{
foreach ($cats[$parent] as $cat)
{
$array[$cat['Id']]['Id'] = $cat['Id'];
$array[$cat['Id']]['checked'] = $cat['checked'];
$array[$cat['Id']]['document_title'] = $cat['document_title'];
$array[$cat['Id']]['child'] = doc_from_rub_check_tree($cats, $cat['Id']);
}
}
else
{
return null;
}
return $array;
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
//Flash-ролик
function get_field_flash($field_value, $action, $field_id=0, $tpl='', $tpl_empty=0, &$maxlength=null, $document_fields=array(), $rubric_id=0, $default=null){
global $AVE_Template;
$fld_dir = dirname(__FILE__) . '/';
$tpl_dir = $fld_dir . 'tpl/';
$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');
$res = 0;
switch ($action)
{
case 'edit':
$field_value = !empty($field_value) ? htmlspecialchars($field_value, ENT_QUOTES) : '';
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $field_value);
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin');
return $AVE_Template->fetch($tpl_file);
break;
case 'doc':
$field_value = clean_php($field_value);
$field_param = explode('|', $field_value);
$field_param[1] = (!empty($field_param[1]) && is_numeric($field_param[1])) ? $field_param[1] : 470;
$field_param[2] = (!empty($field_param[2]) && is_numeric($field_param[2])) ? $field_param[2] : 320;
if ($tpl_empty)
{
$field_value = '';
}
else
{
$field_value = preg_replace_callback(
'/\[tag:parametr:(\d+)\]/i',
function($data) use($field_param)
{
return $field_param[(int)$data[1]];
},
$tpl
);
}
$res=$field_value;
break;
case 'req':
$res=get_field_default($field_value,$action,$field_id,$tpl,$tpl_empty,$maxlength,$document_fields,$rubric_id);
break;
case 'name' :
return $AVE_Template->get_config_vars('name');
break;
}
return ($res ? $res : $field_value);
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
// Мульти лист
function get_field_multi_list($field_value, $action, $field_id=0, $tpl='', $tpl_empty=0, &$maxlength=null, $document_fields=array(), $rubric_id=0, $default=null){
global $AVE_Template;
$fld_dir = dirname(__FILE__) . '/';
$tpl_dir = $fld_dir . 'tpl/';
$fld_name = basename($fld_dir);
$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');
$res = array();
switch ($action)
{
case 'edit':
$items = array();
$items = unserialize($field_value);
if ($items != false)
{
foreach($items as $k => $v){
$list_item = explode('|', $v);
$list[$k]['param'] = (isset($list_item[0])) ? htmlspecialchars($list_item[0], ENT_QUOTES) : '';
$list[$k]['value'] = (isset($list_item[1])) ? htmlspecialchars($list_item[1], ENT_QUOTES) : '';
}
$items = $list;
}
else
{
$items = explode(',', $default);
foreach($items as $k => $v){
$list_item = explode('|', $v);
$list[$k]['param'] = (isset($list_item[0])) ? htmlspecialchars($list_item[0], ENT_QUOTES) : '';
$list[$k]['value'] = (isset($list_item[1])) ? htmlspecialchars($list_item[1], ENT_QUOTES) : '';
}
$items = $list;
}
$AVE_Template->assign('doc_id', $_REQUEST['Id']);
$AVE_Template->assign('field_dir', $fld_name);
$AVE_Template->assign('items', $items);
$AVE_Template->assign('field_id', $field_id);
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin');
return $AVE_Template->fetch($tpl_file);
break;
case 'doc':
$items = unserialize($field_value);
if ($items != false)
{
foreach($items as $list_item)
{
$list_item = clean_php($list_item);
$field_param = explode('|', $list_item);
if ($list_item)
{
if ($tpl_empty)
{
$list_item = $field_param;
}
else
{
$list_item = preg_replace_callback(
'/\[tag:parametr:(\d+)\]/i',
function($data) use($field_param)
{
return $field_param[(int)$data[1]];
},
$tpl
);
}
}
$res[] = $list_item;
}
}
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'doc');
if ($tpl_empty && $tpl_file)
{
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $res);
$AVE_Template->assign('field_count', count($res));
$AVE_Template->assign('default', $default);
return $AVE_Template->fetch($tpl_file);
}
return (! empty($res)) ? implode(PHP_EOL, $res) : $tpl;
break;
case 'req':
$items = unserialize($field_value);
if ($items != false)
{
foreach($items as $list_item)
{
$list_item = clean_php($list_item);
$field_param = explode('|', $list_item);
if ($list_item)
{
if ($tpl_empty)
{
$list_item = $field_param;
}
else
{
$list_item = preg_replace_callback(
'/\[tag:parametr:(\d+)\]/i',
function($data) use($field_param)
{
return $field_param[(int)$data[1]];
},
$tpl
);
}
}
$res[] = $list_item;
}
}
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'req');
if ($tpl_empty && $tpl_file)
{
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', $res);
$AVE_Template->assign('field_count', count($res));
$AVE_Template->assign('default', $default);
return $AVE_Template->fetch($tpl_file);
}
return (!empty($res)) ? implode(PHP_EOL, $res) : $tpl;
break;
case 'save':
foreach ($field_value as $v)
{
if(! empty($v['param']))
{
$field_value_new[] = $v['param'] . ($v['value'] ? '|' . $v['value'] : '');
}
}
if (isset($field_value_new))
{
return @serialize($field_value_new);
}
else
{
return $field_value_new = '';
}
break;
case 'name':
return $AVE_Template->get_config_vars('name');
break;
}
return ($res ? $res : $field_value);
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
// Однострочное
function get_field_single_line ($field_value, $action, $field_id = 0, $tpl = '', $tpl_empty = 0, &$maxlength = null, $document_fields = array(), $rubric_id = 0, $default = null)
{
global $AVE_Template;
$fld_dir = dirname(__FILE__) . '/';
$tpl_dir = $fld_dir . 'tpl/';
$fld_name = basename($fld_dir);
$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':
$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');
return $AVE_Template->fetch($tpl_file);
break;
case 'doc':
$AVE_Template->config_load($lang_file, 'public');
if ($tpl_empty)
{
$field_value = clean_php($field_value);
}
else
{
$field_param = explode('|', $field_value);
$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');
if($tpl_empty && $tpl_file)
{
$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 = clean_php($field_value);
}
else
{
$field_param = explode('|', $field_value);
$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');
if($tpl_empty && $tpl_file)
{
$AVE_Template->assign('field_value', $field_value);
return $AVE_Template->fetch($tpl_file);
}
return $field_value;
break;
case 'save':
return $field_value;
case 'name':
return $AVE_Template->get_config_vars('name');
default: return $field_value;
}
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
// Выпадающий список (Ключ)
function get_field_drop_down_key($field_value, $action, $field_id=0, $tpl='', $tpl_empty=0, &$maxlength=null, $document_fields=array(), $rubric_id=0, $default=null)
{
global $AVE_Template;
$fld_dir = dirname(__FILE__) . '/';
$tpl_dir = $fld_dir . 'tpl/';
$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');
$res = 0;
switch ($action)
{
case 'edit':
$items = explode(',', $default);
$items = array_diff($items, array(''));
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin');
$AVE_Template->assign('items', $items);
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', trim($field_value));
return $AVE_Template->fetch($tpl_file);
break;
case 'doc':
case 'req':
@$field_value = clean_php($field_value);
if (!$tpl_empty)
{
$field_param = explode('|', $field_value);
$field_value = preg_replace_callback(
'/\[tag:parametr:(\d+)\]/i',
function($data) use($field_param)
{
return $field_param[(int)$data[1]];
},
$tpl
);
}
else
{
$items = explode(',', $default);
$items = array_diff($items, array(''));
$field_value = $items[$field_value];
}
return $field_value = ($field_value != '') ? $field_value : '';
break;
case 'name':
return $AVE_Template->get_config_vars('name');
break;
}
return ($res ? $res : $field_value);
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
// Выпадающий список
function get_field_drop_down($field_value, $action, $field_id=0, $tpl='', $tpl_empty=0, &$maxlength=null, $document_fields=array(), $rubric_id=0, $default=null)
{
global $AVE_Template;
$fld_dir = dirname(__FILE__) . '/';
$tpl_dir = $fld_dir . 'tpl/';
$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');
$res = 0;
switch ($action)
{
case 'edit':
$items = array();
$items = explode(',', $default);
$items = array_diff($items, array(''));
$tpl_file = get_field_tpl($tpl_dir, $field_id, 'admin');
$AVE_Template->assign('items', $items);
$AVE_Template->assign('field_id', $field_id);
$AVE_Template->assign('field_value', trim($field_value));
return $AVE_Template->fetch($tpl_file);
break;
case 'doc':
@$field_value = clean_php($field_value);
if (!$tpl_empty)
{
$field_param = explode('|', $field_value);
$field_value = preg_replace_callback(
'/\[tag:parametr:(\d+)\]/i',
function($data) use($field_param)
{
return $field_param[(int)$data[1]];
},
$tpl
);
}
$res = $field_value;
break;
case 'req':
@$field_value = clean_php($field_value);
if (!$tpl_empty)
{
$field_param = explode('|', $field_value);
$field_value = preg_replace_callback(
'/\[tag:parametr:(\d+)\]/i',
function($data) use($field_param)
{
return $field_param[(int)$data[1]];
},
$tpl
);
}
$res = $field_value;
break;
case 'name':
return $AVE_Template->get_config_vars('name');
break;
}
return ($res ? $res : $field_value);
}
?>
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
/**
* Обработка парного тега [tag:hide:X,X:text]...[/tag:hide] (скрытый текст)
* Заменяет скрываемый текст в зависимости от группы пользователя
*
* @param string $data обрабатываемый текст
* @return string обработанный текст
*/
function parse_hide($data)
{
static $matches = null;
static $i = null;
preg_match_all('/\[tag:hide:(\d+,)*'. UGROUP .'(,\d+)*(:.*?)?].*?\[\/tag:hide]/s', $data, $matches, PREG_SET_ORDER);
$count_matches = count($matches);
if ($count_matches > 0)
{
for ($i=0; $i <= $count_matches; $i++)
{
$hidden_text = substr(@$matches[$i][3], 1);
if ($hidden_text == "")
$hidden_text = trim(get_settings('hidden_text'));
$data = preg_replace('/\[tag:hide:(\d+,)*'. UGROUP .'(,\d+)*(:.*?)?].*?\[\/tag:hide]/s', $hidden_text, $data, 1);
}
}
$data = preg_replace('/\[tag:hide:\d+(,\d+)*.*?](.*?)\[\/tag:hide]/s', '\\2', $data);
return $data;
}
?>
Fatal error: Call to undefined function set_locale() in /var/www/clients/client1/web2/web/inc/init.php on line 395