Example #1
0
function applet_config()
{
    // получаем оригинальный конфиг
    $config = cmsConfig::getDefaultConfig();
    global $_LANG;
    global $adminAccess;
    if (!cmsUser::isAdminCan('admin/config', $adminAccess)) {
        cpAccessDenied();
    }
    cmsCore::c('page')->setTitle($_LANG['AD_SITE_SETTING']);
    cpAddPathway($_LANG['AD_SITE_SETTING'], 'index.php?view=config');
    $do = cmsCore::request('do', 'str', 'list');
    if ($do == 'save') {
        if (!cmsUser::checkCsrfToken()) {
            cmsCore::error404();
        }
        $newCFG = cmsCore::getArrayFromRequest(array('scheme' => array('scheme', array('http', 'https'), ''), 'sitename' => array('sitename', 'str', ''), 'title_and_sitename' => array('title_and_sitename', 'int', 0), 'title_and_page' => array('title_and_page', 'int', 0), 'hometitle' => array('hometitle', 'str', ''), 'homecom' => array('homecom', 'str', ''), 'com_without_name_in_url' => array('com_without_name_in_url', 'str', ''), 'siteoff' => array('siteoff', 'int', 0), 'only_authorized' => array('only_authorized', 'int', 0), 'debug' => array('debug', 'int', 0), 'offtext' => array('offtext', 'str', ''), 'keywords' => array('keywords', 'str', ''), 'metadesc' => array('metadesc', 'str', ''), 'seourl' => array('seourl', 'int', 0), 'lang' => array('lang', 'str', 'ru'), 'is_change_lang' => array('is_change_lang', 'int', 0), 'sitemail' => array('sitemail', 'str', ''), 'sitemail_name' => array('sitemail_name', 'str', ''), 'wmark' => array('wmark', 'str', ''), 'template' => array('template', 'str', ''), 'admin_template' => array('admin_template', 'str', ''), 'cache' => array('cache', 'int', 0), 'cache_type' => array('cache_type', array('file', 'memcached'), ''), 'memcached_host' => array('memcached_host', 'str', ''), 'memcached_port' => array('memcached_port', 'int', 0), 'combine_css_enable' => array('combine_css_enable', 'int', 0), 'combine_css' => array('combine_css', 'html', ''), 'combine_js_enable' => array('combine_js_enable', 'int', 0), 'combine_js' => array('combine_js', 'html', ''), 'splash' => array('splash', 'int', 0), 'slight' => array('slight', 'int', 0), 'show_pw' => array('show_pw', 'int', 0), 'last_item_pw' => array('last_item_pw', 'int', 0), 'index_pw' => array('index_pw', 'int', 0), 'fastcfg' => array('fastcfg', 'int', 0), 'mailer' => array('mailer', 'str', ''), 'smtpsecure' => array('smtpsecure', 'str', ''), 'smtpauth' => array('smtpauth', 'int', 0), 'smtpuser' => array('smtpuser', 'str', $config['smtpuser']), 'smtppass' => array('smtppass', 'str', $config['smtppass']), 'smtphost' => array('smtphost', 'str', ''), 'smtpport' => array('smtpport', 'int', '25'), 'timezone' => array('timezone', 'str', $config['timezone']), 'user_stats' => array('user_stats', 'int', 0), 'seo_url_count' => array('seo_url_count', 'int', 0), 'max_pagebar_links' => array('max_pagebar_links', 'int', 0), 'allow_ip' => array('allow_ip', 'str', ''), 'iframe_enable' => array('iframe_enable', 'int', 0), 'vk_enable' => array('vk_enable', 'int', 0), 'vk_id' => array('vk_id', 'str', ''), 'vk_private_key' => array('vk_private_key', 'str', '')));
        $newCFG['sitename'] = stripslashes($newCFG['sitename']);
        $newCFG['hometitle'] = stripslashes($newCFG['hometitle']);
        $newCFG['offtext'] = htmlspecialchars($newCFG['offtext'], ENT_QUOTES);
        $newCFG['db_host'] = $config['db_host'];
        $newCFG['db_base'] = $config['db_base'];
        $newCFG['db_user'] = $config['db_user'];
        $newCFG['db_pass'] = $config['db_pass'];
        $newCFG['db_prefix'] = $config['db_prefix'];
        if (cmsConfig::saveToFile($newCFG)) {
            cmsCore::addSessionMessage($_LANG['AD_CONFIG_SAVE_SUCCESS'], 'success');
        } else {
            cmsCore::addSessionMessage($_LANG['AD_CONFIG_SITE_ERROR'], 'error');
        }
        cmsCore::clearCache();
        cmsCore::redirect('index.php?view=config');
    }
    cpCheckWritable('/includes/config/config.inc.json');
    $result = cmsCore::c('db')->query("SELECT (sum(data_length)+sum(index_length))/1024/1024 as size FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = '" . $config['db_base'] . "'", true);
    if (!cmsCore::c('db')->error()) {
        $s = cmsCore::c('db')->fetch_assoc($result);
    } else {
        $s['size'] = 0;
    }
    cmsCore::c('page')->initTemplate('applets', 'config')->assign('config', $config)->assign('timezone_opt', cmsCore::getTimeZonesOptions($config['timezone']))->assign('admin_templates', cmsCore::getDirsList('/templates/admin'))->assign('templates', cmsCore::getDirsList('/templates'))->assign('tpl_info', cmsCore::c('page')->getTplInfo(cmsCore::c('page')->template))->assign('components_opt', cmsCore::getListItems('cms_components', $config['com_without_name_in_url'], 'title', 'ASC', 'internal=0', 'link'))->assign('homecom_opt', cmsCore::getListItems('cms_components', $config['homecom'], 'title', 'ASC', 'internal=0', 'link'))->assign('langs', cmsCore::getDirsList('/languages'))->assign('db_size', round($s['size'], 2))->display();
}
Example #2
0
function users(){
    if (!cmsCore::c('config')->iframe_enable) {
        header('X-Frame-Options: DENY');
    }
    
    $inCore = cmsCore::getInstance();
    $inPage = cmsPage::getInstance();
    $inDB   = cmsDatabase::getInstance();
    $inUser = cmsUser::getInstance();

    global $_LANG;

    $model = new cms_model_users();

    // id пользователя
    $id = cmsCore::request('id', 'int', 0);
    // логин пользователя
    $login = cmsCore::strClear(urldecode(cmsCore::request('login', 'html', '')));

    $do   = $inCore->do;
    $page = cmsCore::request('page', 'int', 1);

    $pagetitle = $inCore->getComponentTitle();

    $inPage->addPathway($pagetitle, '/users');
    $inPage->setTitle($pagetitle);
    $inPage->setDescription($pagetitle);

    // js только авторизованным
    if ($inUser->id) {
        $inPage->addHeadJS('components/users/js/profile.js');
        $inPage->addHeadJsLang(array('CONFIRM_CLEAN_CAT','CHOOSE_RECIPIENT','SEND_TO_USER','FRIENDSHIP_OFFER','STOP_FRIENDLY','REALY_STOP_FRIENDLY','ENTER_STATUS','HAVE_JUST'));
    }

//============================================================================//
//========================= Список пользователей  ============================//
//============================================================================//
if ($do == 'view') {
    // если запрещен просмотр всех пользователей, 404
    if ($model->config['sw_search'] == 2) {
        cmsCore::error404();
    }

    //очищаем поисковые запросы если пришли со другой страницы
    if (!strstr(cmsCore::getBackURL(), '/users')) {
        cmsUser::sessionClearAll();
    }

	$stext = array();

	// Возможные входные переменные
	$name    = cmsCore::getSearchVar('name');
	$city    = cmsCore::getSearchVar('city');
	$hobby   = cmsCore::getSearchVar('hobby');
	$gender  = cmsCore::getSearchVar('gender');
	$orderby = cmsCore::request('orderby', array('karma', 'rating', 'regdate'), 'regdate');
	$orderto = cmsCore::request('orderto', array('asc', 'desc'), 'desc');
	$age_to  = (int)cmsCore::getSearchVar('ageto', 'all');
	$age_fr  = (int)cmsCore::getSearchVar('agefrom', 'all');
        $group_id = cmsCore::request('group_id', 'int', 0);
        
	// Флаг о показе только онлайн пользователей
	if (cmsCore::inRequest('online')) {
		cmsUser::sessionPut('usr_online', (bool)cmsCore::request('online', 'int'));
		$page = 1;
	}
	$only_online = cmsUser::sessionGet('usr_online');

	if($only_online){
		$stext[] = $_LANG['SHOWING_ONLY_ONLINE'];
	}

	///////////////////////////////////////
	//////////Условия выборки//////////////
	///////////////////////////////////////
        
        // группа
        if ($group_id){
            $model->whereUserGroupIs($group_id);
            $link['group'] = '/users/group/'. $group_id;
            $_LANG['GROUP_SEARCH_NAME'] = cmsUser::getGroupTitle($group_id);
        }

	// Добавляем в выборку имя, если оно есть
	if($name){
		$model->whereNameIs($name);
		$stext[] = $_LANG['NAME']." — ".htmlspecialchars(stripslashes($name));
	}

	// Добавляем в выборку город, если он есть
	if($city){
		$model->whereCityIs($city);
		$stext[] = $_LANG['CITY']." — ".htmlspecialchars(stripslashes($city));
	}

	// Добавляем в выборку хобби, если есть
	if($hobby){
		$model->whereHobbyIs($hobby);
		$stext[] = $_LANG['HOBBY']." — ".htmlspecialchars(stripslashes($hobby));
	}
	// Добавляем в выборку пол, если есть
	if($gender){
		$model->whereGenderIs($gender);
		if($gender == 'm'){
			$stext[] = $_LANG['MALE'];
		} else {
			$stext[] = $_LANG['FEMALE'];
		}
	}
	// Добавляем в выборку возраст, более
	if($age_fr){
		$model->whereAgeFrom($age_fr);
		$stext[] = $_LANG['NOT_YOUNG']." $age_fr ".$_LANG['YEARS'];
	}
	// Добавляем в выборку возраст, менее
	if($age_to){
		$model->whereAgeTo($age_to);
		$stext[] = $_LANG['NOT_OLD']." $age_fr ".$_LANG['YEARS'];
	}

	// Считаем общее количество согласно выборки
	$total = $model->getUsersCount($only_online);

	if($total){

		//устанавливаем сортировку
		$inDB->orderBy($orderby, $orderto);

		//устанавливаем номер текущей страницы и кол-во пользователей на странице
		$inDB->limitPage($page, $model->config['users_perpage']);

		// Загружаем пользователей согласно выборки
		$users = $model->getUsers($only_online);

	} else {
        $inDB->resetConditions();
    }

	$link['latest']   = '/users';
	$link['positive'] = '/users/positive.html';
	$link['rating']   = '/users/rating.html';

	if($orderby=='regdate') { $link['selected'] = 'latest'; }
	if($orderby=='karma') { $link['selected'] = 'positive'; }
	if($orderby=='rating') { $link['selected'] = 'rating'; }
        $pagebar_link = '/users/'.$link['selected'].'%page%.html';
        if ($group_id) {
            $link['selected'] = 'group';
            $pagebar_link = '/users/'.$link['selected'].'/'.$group_id.'-%page%';
        }

	cmsPage::initTemplate('components', 'com_users_view')->
            assign('stext', $stext)->
            assign('orderby', $orderby)->
            assign('orderto', $orderto)->
            assign('users', $users)->
            assign('total', $total)->
            assign('only_online', $only_online)->
            assign('gender', $gender)->
            assign('name', stripslashes($name))->
            assign('city', stripslashes($city))->
            assign('hobby', stripslashes($hobby))->
            assign('age_to', $age_to)->
            assign('age_fr', $age_fr)->
            assign('cfg', $model->config)->
            assign('link', $link)->
            assign('pagebar', cmsPage::getPagebar($total, $page, $model->config['users_perpage'], $pagebar_link))->
            display();

}

//============================================================================//
//======================= Редактирование профиля  ============================//
//============================================================================//
if ($do=='editprofile') {
    // неавторизованным, не владельцам и не админам тут делать нечего
    if (!$inUser->id || ($inUser->id != $id && !$inUser->is_admin)) {
        cmsCore::error404();
    }

    $usr = $model->getUser($id);
    if (!$usr) {
        cmsCore::error404();
    }

	$opt = cmsCore::request('opt', 'str', 'edit');

    // главного админа может редактировать только он сам
    if ($id == 1 && $inUser->id != $id) {
        cmsCore::error404();
    }

    // показываем форму
    if ($opt == 'edit') {
        $inPage->setTitle($_LANG['CONFIG_PROFILE'].' - '.$usr['nickname']);
        $inPage->addPathway($usr['nickname'], cmsUser::getProfileURL($usr['login']));
        $inPage->addPathway($_LANG['CONFIG_PROFILE']);

        $private_forms = array();
        if (isset($model->config['privforms'])) {
            if (is_array($model->config['privforms'])) {
                foreach ($model->config['privforms'] as $form_id) {
                    $private_forms = array_merge($private_forms, cmsForm::getFieldsHtml($form_id, $usr['formsdata']));
                }
            }
        }

        cmsPage::initTemplate('components', 'com_users_edit_profile')->
            assign('opt', $opt)->
            assign('usr', $usr)->
            assign('private_forms', $private_forms)->
            assign('cfg_forum', $inCore->loadComponentConfig('forum'))->
            assign('cfg', $model->config)->
            assign('timezones_opt', cmsCore::getTimeZonesOptions(!empty($usr['timezone']) ? $usr['timezone'] : cmsCore::c('config')->timezone))->
            display();
        return;
    }

	// Если сохраняем профиль
	if ($opt == 'save'){

		$errors = false;

		$users['nickname'] = cmsCore::request('nickname', 'str');
                $users['timezone']  = cmsCore::request('timezone', cmsCore::getTimeZones(), cmsCore::c('config')->timezone);
		if (mb_strlen($users['nickname'])<2) { cmsCore::addSessionMessage($_LANG['SHORT_NICKNAME'], 'error'); $errors = true; }
		cmsCore::loadModel('registration');
		$modreg = new cms_model_registration();
		if (!$inUser->is_admin){
			if($modreg->getBadNickname($users['nickname'])) { cmsCore::addSessionMessage($_LANG['ERR_NICK_EXISTS'], 'error'); $errors = true; }
		}

		$profiles['gender'] = cmsCore::request('gender', 'str');
		$profiles['city']   = cmsCore::request('city', 'str');
		if (mb_strlen($profiles['city'])>50) { cmsCore::addSessionMessage($_LANG['LONG_CITY_NAME'], 'error'); $errors = true; }

		$users['email'] = cmsCore::request('email', 'email');
		if (!$users['email']) { cmsCore::addSessionMessage($_LANG['REALY_ADRESS_EMAIL'], 'error'); $errors = true; }
                
		if($usr['email'] != $users['email']){
			$is_set_email = $inDB->get_field('cms_users', "email='{$users['email']}'", 'id');
                        
			if ($is_set_email) { 
                            cmsCore::addSessionMessage($_LANG['ADRESS_EMAIL_IS_BUSY'], 'error'); $errors = true; 
                        }else{ 
                            // формируем токен 
                            $token = md5($usr['email'].uniqid().microtime()); 
                            $inDB->insert('cms_users_activate', array('user_id'=>$inUser->id, 'pubdate'=>date("Y-m-d H:i:s"), 'code'=>$token)); 
                            $codelink = HOST.'/users/change_email/'.$token.'/'.$users['email']; 
                            // по старому адресу высылаем письмо с подтверждением 
                            $letter = cmsCore::getLanguageTextFile('change_email'); 
                            $letter = str_replace(array('{nickname}','{codelink}'), array($inUser->nickname, $codelink), $letter); 
                            cmsCore::mailText($usr['email'], '', $letter); 
                            cmsCore::addSessionMessage(sprintf($_LANG['YOU_CHANGE_EMAIL'], $usr['email']), 'info'); 
                            // email не меняем 
                            $users['email'] = $usr['email']; 
                        } 
		}

		$profiles['showmail']     = cmsCore::request('showmail', 'int');
		$profiles['email_newmsg'] = cmsCore::request('email_newmsg', 'int');
		$profiles['showbirth']    = cmsCore::request('showbirth', 'int');
		$profiles['description']  = cmsCore::request('description', 'str', '');
		$users['birthdate']    = (int)$_REQUEST['birthdate']['year'].'-'.(int)$_REQUEST['birthdate']['month'].'-'.(int)$_REQUEST['birthdate']['day'];
        $profiles['signature']      = $inDB->escape_string(cmsCore::badTagClear(cmsCore::request('signature', 'html', '')));
        $profiles['signature_html'] = $inDB->escape_string(cmsCore::parseSmiles(cmsCore::request('signature', 'html', ''), true));
		$profiles['allow_who']    = cmsCore::request('allow_who', 'str');
		if (!preg_match('/^([a-zA-Z]+)$/ui', $profiles['allow_who'])) { $errors = true; }
		$users['icq']             = cmsCore::request('icq', 'str', '');
		$profiles['showicq']      = cmsCore::request('showicq', 'int');
		$profiles['cm_subscribe'] = cmsCore::request('cm_subscribe', 'str');
		if (!preg_match('/^([a-zA-Z]+)$/ui', $profiles['cm_subscribe'])) { $errors = true; }

		// получаем данные форм
		$profiles['formsdata'] = '';
		if(isset($model->config['privforms'])){
			if (is_array($model->config['privforms'])){
				foreach($model->config['privforms'] as $form_id){
					$form_input  = cmsForm::getFieldsInputValues($form_id);
					$profiles['formsdata'] .= $inDB->escape_string(cmsCore::arrayToYaml($form_input['values']));
					// Проверяем значения формы
					foreach ($form_input['errors'] as $field_error) {
						if($field_error){ cmsCore::addSessionMessage($field_error, 'error'); $errors = true; }
					}
				}
			}
		}

		if($errors) { cmsCore::redirectBack(); }

                $inDB->update('cms_user_profiles', cmsCore::callEvent('UPDATE_USER_PROFILES', array_merge(array('id'=>$usr['pid'], 'user_id'=>$usr['id']), $profiles)), $usr['pid']); 
                $inDB->update('cms_users', cmsCore::callEvent('UPDATE_USER_USERS', array_merge(array('id'=>$usr['id']), $users)), $usr['id']); 

		cmsCore::addSessionMessage($_LANG['PROFILE_SAVED'], 'info');
		cmsCore::redirect(cmsUser::getProfileURL($usr['login']));

	}

	if ($opt == 'changepass'){

		$errors = false;

		$oldpass  = cmsCore::request('oldpass', 'str');
		$newpass  = cmsCore::request('newpass', 'str');
		$newpass2 = cmsCore::request('newpass2', 'str');

		if ($inUser->password != md5($oldpass)) { cmsCore::addSessionMessage($_LANG['OLD_PASS_WRONG'], 'error'); $errors = true;}
		if ($newpass != $newpass2) { cmsCore::addSessionMessage($_LANG['WRONG_PASS'], 'error'); $errors = true; }
		if($oldpass && $newpass && $newpass2 && mb_strlen($newpass )<6) { cmsCore::addSessionMessage($_LANG['PASS_SHORT'], 'error'); $errors = true; }

		if($errors) { cmsCore::redirectBack(); }

        cmsCore::callEvent('UPDATE_USER_PASSWORD', array('user_id'=>$usr['id'], 'oldpass'=>$oldpass, 'newpass'=>$newpass));

		$sql = "UPDATE cms_users SET password='******' WHERE id = '$id' AND password='******'";
		$inDB->query($sql);
		cmsCore::addSessionMessage($_LANG['PASS_CHANGED'], 'info');
		cmsCore::redirect(cmsUser::getProfileURL($inUser->login));

	}

}

//============================================================================//
//============================= Просмотр профиля  ============================//
//============================================================================//
if ($do=='profile'){

    $inPage->addHeadJsLang(array('NEW_POST_ON_WALL','CONFIRM_DEL_POST_ON_WALL'));

	// если просмотр профиля гостям запрещен
	if (!$inUser->id && !$model->config['sw_guest']) {
        cmsUser::goToLogin();
	}

    if(is_numeric($login)) { cmsCore::error404(); }

    $usr = $model->getUser($login);
    if (!$usr){ cmsCore::error404(); }

    $myprofile  = ($inUser->id == $usr['id']);

    $inPage->setTitle($usr['nickname']);
    $inPage->addPathway($usr['nickname']);

	// просмотр профиля запрещен
    if (!cmsUser::checkUserContentAccess($usr['allow_who'], $usr['id'])){
        cmsPage::initTemplate('components', 'com_users_not_allow')->
                assign('is_auth', $inUser->id)->
                assign('usr', $usr)->
                display();
        return;
    }
	// Профиль удален
    if ($usr['is_deleted']){
        cmsPage::initTemplate('components', 'com_users_deleted')->
                assign('usr', $usr)->
                assign('is_admin', $inUser->is_admin)->
                assign('others_active', $inDB->rows_count('cms_users', "login='******'login']}' AND is_deleted=0", 1))->
                display();
        return;
    }

    // Данные о друзьях
    $usr['friends_total'] = cmsUser::getFriendsCount($usr['id']);
    $usr['friends']		  = cmsUser::getFriends($usr['id']);
    // очищать сессию друзей если в своем профиле и количество друзей из базы не совпадает с количеством друзей в сессии
    if ($myprofile && sizeof($usr['friends']) != $usr['friends_total']) { cmsUser::clearSessionFriends(); }
    // обрезаем список
    $usr['friends'] = array_slice($usr['friends'], 0, 6);
    // выясняем друзья ли мы с текущим пользователем
    $usr['isfriend'] = !$myprofile ? cmsUser::isFriend($usr['id']) : false;

    // награды пользователя
    $usr['awards'] = $model->config['sw_awards'] ? $model->getUserAwards($usr['id']) : false;

    // стена
    if($model->config['sw_wall']){
        $inDB->limitPage(1, $model->config['wall_perpage']);
        $usr['wall_html'] = cmsUser::getUserWall($usr['id'], 'users', $myprofile, $inUser->is_admin);
    }

    // можно ли пользователю изменять карму
    $usr['can_change_karma'] = $model->isUserCanChangeKarma($usr['id']) && $inUser->id;

    // Фотоальбомы пользователя
    if ($model->config['sw_photo']){
        $usr['albums']       = $model->getPhotoAlbums($usr['id'], $usr['isfriend'], !$inCore->isComponentEnable('photos'));
        $usr['albums_total'] = sizeof($usr['albums']);
        $usr['albums_show']  = 6;
        if ($usr['albums_total']>$usr['albums_show']){
            array_splice($usr['albums'], $usr['albums_show']);
        }
    }

    $usr['board_count']    = $model->config['sw_board'] ? $inDB->rows_count('cms_board_items', "user_id='{$usr['id']}' AND published=1") : 0;
    $usr['comments_count'] = $model->config['sw_comm'] ? $inDB->rows_count('cms_comments', "user_id='{$usr['id']}' AND published=1") : 0;
	$usr['forum_count']    = $model->config['sw_forum'] ? $inDB->rows_count('cms_forum_posts', "user_id = '{$usr['id']}'") : 0;
	$usr['files_count']    = $model->config['sw_files'] ? $inDB->rows_count('cms_user_files', "user_id = '{$usr['id']}'") : 0;

	$cfg_reg = $inCore->loadComponentConfig('registration');
	$usr['invites_count'] = ($inUser->id && $myprofile && $cfg_reg['reg_type'] == 'invite') ? $model->getUserInvitesCount($inUser->id) : 0;

	$usr['blog'] = $model->config['sw_blogs'] ? $inDB->get_fields('cms_blogs', "user_id = '{$usr['id']}' AND owner = 'user'", 'title, seolink') : false;

    $usr['form_fields'] = array();
    if (is_array($model->config['privforms'])) {
        foreach ($model->config['privforms'] as $form_id) {
            $usr['form_fields'] = array_merge($usr['form_fields'], cmsForm::getFieldsValues($form_id, $usr['formsdata']));
        }
    }
        
    if ($usr['city']) {
        $city_parents = cmsCore::m('geo')->getCityParents($usr['city']);
        if ($city_parents) {
            $usr['country'] = $city_parents['country_name'];
        }
    } 

    $plugins = cmsCore::callTabEventPlugins('USER_PROFILE', $usr);

    cmsPage::initTemplate('components', 'com_users_profile')->
        assign('usr', $usr)->
        assign('plugins', $plugins)->
        assign('cfg', $model->config)->
        assign('myprofile', $myprofile)->
        assign('cfg_forum', $inCore->loadComponentConfig('forum'))->
        assign('is_admin', $inUser->is_admin)->
        assign('is_auth', $inUser->id)->
        assign('actions_enabled', $inCore->isComponentEnable('actions'))->
        assign('blogs_enabled', $inCore->isComponentEnable('blogs'))->
        assign('clubs_enabled', $inCore->isComponentEnable('clubs'))->
        display();
}

//============================================================================//
//============================= Список сообщений  ============================//
//============================================================================//
if ($do=='messages'){
    if (!$model->config['sw_msg']) { cmsCore::error404(); }

    if (!$inUser->id || ($inUser->id != $id && !$inUser->is_admin)){ cmsUser::goToLogin(); }

    $usr = cmsUser::getShortUserData($id);
    if (!$usr) { cmsCore::error404(); }

    $inPage->setTitle($_LANG['MY_MESS']);
    $inPage->addPathway($usr['nickname'], cmsUser::getProfileURL($usr['login']));
    $inPage->addPathway($_LANG['MY_MESS'], '/users/'.$id.'/messages.html');

    include 'components/users/messages.php';
}

//============================================================================//
//=========================== Отправка сообщения  ============================//
//============================================================================//
if ($do=='sendmessage'){

	if (!$model->config['sw_msg']) { cmsCore::halt(); }

    if($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') { cmsCore::halt(); }

	if (!$inUser->id || ($inUser->id==$id &&
							!cmsCore::inRequest('massmail') &&
							!cmsCore::request('send_to_group', 'int', 0))){ cmsCore::halt(); }

	if(!cmsCore::inRequest('gosend')){

		$replyid = cmsCore::request('replyid', 'int', 0);

		if ($replyid){

			$msg = $model->getReplyMessage($replyid, $inUser->id);
			if(!$msg) { cmsCore::halt(); }

		}

        $inPage->setRequestIsAjax();

		cmsPage::initTemplate('components', 'com_users_messages_add')->
                assign('msg', isset($msg) ? $msg : array())->
                assign('is_reply_user', $replyid)->
                assign('id', $id)->
                assign('bbcodetoolbar', cmsPage::getBBCodeToolbar('message'))->
                assign('smilestoolbar', cmsPage::getSmilesPanel('message'))->
                assign('groups', $inUser->is_admin ? cmsUser::getGroups(true) : array())->
                assign('friends', cmsUser::getFriends($inUser->id))->
                assign('id_admin', $inUser->is_admin)->
                display();

		cmsCore::jsonOutput(array('error' => false,
								  'html'  => ob_get_clean()
								));

	}

	if(cmsCore::inRequest('gosend')){

            // Кому отправляем
            $usr = cmsUser::getShortUserData($id);
            if (!$usr) { cmsCore::halt(); }

            $message = cmsCore::parseSmiles(cmsCore::request('message', 'html', ''), true);

            if (mb_strlen($message)<2){
                cmsCore::jsonOutput(array('error' => true, 'text' => $_LANG['ERR_SEND_MESS']));
            }
                    
            if(!cmsUser::checkCsrfToken()) { cmsCore::error404(); }

            $output = cmsCore::callEvent('USER_SEND_MESSEDGE', array('text'=>$message, 'to_id'=>$id));

            $message = $output['text'];
            $id      = $output['to_id'];

		$send_to_group = cmsCore::request('send_to_group', 'int', 0);
		$group_id      = cmsCore::request('group_id', 'int', 0);

		//
		// Обычная отправка (1 получатель)
		//
		if (!cmsCore::inRequest('massmail') && !$send_to_group){

			//отправляем сообщение
			$msg_id = cmsUser::sendMessage($inUser->id, $id, $message);
			// отправляем уведомление на email если нужно
			$model->sendNotificationByEmail($id, $inUser->id, $msg_id);

			cmsCore::jsonOutput(array('error' => false, 'text' => $_LANG['SEND_MESS_OK']));

		}

		//
		// далее идут массовые рассылки, доступные только админам
		//
		if (!$inUser->is_admin){ cmsCore::halt(); }

		// отправить всем: получаем список всех пользователей
		if (cmsCore::inRequest('massmail')) {

			$userlist = cmsUser::getAllUsers();
			// проверяем что есть кому отправлять
			if (!$userlist){
				cmsCore::jsonOutput(array('error' => false, 'text' => $_LANG['ERR_SEND_MESS']));
			}
			$count = array();
			// отправляем всем по списку
			foreach ($userlist as $usr){
				$count[] = cmsUser::sendMessage(USER_MASSMAIL, $usr['id'], $message);
			}

			cmsCore::jsonOutput(array('error' => false, 'text' => sprintf($_LANG['SEND_MESS_ALL_OK'], sizeof($count))));

		}

		// отправить группе: получаем список членов группы
		if ($send_to_group) {

			$count = cmsUser::sendMessageToGroup(USER_MASSMAIL, $group_id, $message);
			$success_msg = sprintf($_LANG['SEND_MESS_GROUP_OK'], $count, cmsUser::getGroupTitle($group_id));

			cmsCore::jsonOutput(array('error' => false, 'text' => $success_msg));

		}

	}

}
//============================================================================//
//============================= Удаление сообщения  ==========================//
//============================================================================//
if ($do=='delmessage'){

    if($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') { cmsCore::halt(); }

    if (!$model->config['sw_msg']) { cmsCore::halt(); }

    if (!$inUser->id) { cmsCore::halt(); }

    $msg = $inDB->get_fields('cms_user_msg', "id='$id'", '*');
    if (!$msg){ cmsCore::halt(); }

    $can_delete = ($inUser->id == $msg['to_id'] || $inUser->id == $msg['from_id']) ? true : false;
    if(!$can_delete && !$inUser->is_admin){ cmsCore::halt(); }

    // Сообщения с from_id < 0
    if ($msg['from_id'] < 0){
        $inDB->query("DELETE FROM cms_user_msg WHERE id = '$id' LIMIT 1");
        $info_text = $_LANG['MESS_NOTICE_DEL_OK'];
    }
    // мне сообщение от пользователя
    if ($msg['to_id']==$inUser->id && $msg['from_id'] > 0){
        $inDB->query("UPDATE cms_user_msg SET to_del=1 WHERE id='{$id}'");
        $info_text = $_LANG['MESS_DEL_OK'];
    }
    // от меня сообщение
    if ($msg['from_id']==$inUser->id && !$msg['is_new']){
        $inDB->query("UPDATE cms_user_msg SET from_del=1 WHERE id='{$id}'");
        $info_text = $_LANG['MESS_DEL_OK'];
    }
    // отзываем сообщение
    if ($msg['from_id']==$inUser->id && $msg['is_new']){
        $inDB->query("DELETE FROM cms_user_msg WHERE id = '$id' LIMIT 1");
        $info_text = $_LANG['MESS_BACK_OK'];
    }
    // удаляем сообщения, которые удалены с двух сторон
    $inDB->query("DELETE FROM cms_user_msg WHERE to_del=1 AND from_del=1");

    cmsCore::jsonOutput(array('error' => false, 'text' => $info_text));

}
//============================================================================//
//=========================== Удаление сообщений  ============================//
//============================================================================//
if ($do=='delmessages'){

	if (!$model->config['sw_msg']) { cmsCore::error404(); }

    if ($inUser->id != $id && !$inUser->is_admin){ cmsCore::error404(); }

    $usr = cmsUser::getShortUserData($id);
    if (!$usr) { cmsCore::error404(); }

    $opt = cmsCore::request('opt', 'str', 'in');

    if($opt == 'notices'){

        $inDB->query("DELETE FROM cms_user_msg WHERE to_id = '{$id}' AND from_id < 0");

    } else {

        $del_flag = $opt=='in' ? 'to_del' : 'from_del';
        $id_flag  = $opt=='in' ? 'to_id' : 'from_id';

        $inDB->query("UPDATE cms_user_msg SET {$del_flag}=1 WHERE {$id_flag}='{$id}'");
        $inDB->query("DELETE FROM cms_user_msg WHERE to_del=1 AND from_del=1");

    }

    cmsCore::addSessionMessage($_LANG['MESS_ALL_DEL_OK'], 'info');

	cmsCore::redirectBack();

}
//============================================================================//
//============================= Загрузка аватара  ============================//
//============================================================================//
if ($do=='avatar'){

	if (!$inUser->id || ($inUser->id && $inUser->id != $id)){ cmsCore::error404(); }

	$inPage->setTitle($_LANG['LOAD_AVATAR']);
	$inPage->addPathway($inUser->nickname, cmsUser::getProfileURL($inUser->login));
	$inPage->addPathway($_LANG['LOAD_AVATAR']);

	if (cmsCore::inRequest('upload')) {

		cmsCore::loadClass('upload_photo');
		$inUploadPhoto = cmsUploadPhoto::getInstance();
		// Выставляем конфигурационные параметры
		$inUploadPhoto->upload_dir    = PATH.'/images/';
		$inUploadPhoto->dir_medium    = 'users/avatars/';
		$inUploadPhoto->dir_small     = 'users/avatars/small/';
		$inUploadPhoto->small_size_w  = $model->config['smallw'];
		$inUploadPhoto->medium_size_w = $model->config['medw'];
		$inUploadPhoto->medium_size_h = $model->config['medh'];
		$inUploadPhoto->is_watermark  = false;
		$inUploadPhoto->input_name    = 'picture';

		$file = $inUploadPhoto->uploadPhoto($inUser->orig_imageurl);

		if(!$file){

			cmsCore::addSessionMessage('<strong>'.$_LANG['ERROR'].':</strong> '.cmsCore::uploadError().'!', 'error');
			cmsCore::redirect('/users/'.$id.'/avatar.html');

		}

		$sql = "UPDATE cms_user_profiles SET imageurl = '{$file['filename']}' WHERE user_id = '$id' LIMIT 1";
		$inDB->query($sql);
		// очищаем предыдущую запись о смене аватара
		cmsActions::removeObjectLog('add_avatar', $id);
		// выводим сообщение в ленту
		cmsActions::log('add_avatar', array(
			  'object' => '',
			  'object_url' => '',
			  'object_id' => $id,
			  'target' => '',
			  'target_url' => '',
			  'description' => '<a href="'.cmsUser::getProfileURL($inUser->login).'" class="act_usr_ava">
								   <img border="0" src="/images/users/avatars/small/'.$file['filename'].'">
								</a>'
		));

		cmsCore::redirect(cmsUser::getProfileURL($inUser->login));

	} else {

		cmsPage::initTemplate('components', 'com_users_avatar_upload')->
                assign('id', $id)->
                display();

	}
}
//============================================================================//
//============================= Библиотека аватаров  =========================//
//============================================================================//
if ($do=='select_avatar'){

	if (!$inUser->id || ($inUser->id && $inUser->id != $id)){ cmsCore::error404(); }

	$avatars_dir     = PATH."/images/users/avatars/library";
	$avatars_dir_rel = "/images/users/avatars/library";

	$avatars_dir_handle = opendir($avatars_dir);
	$avatars            = array();

	while ($nextfile = readdir($avatars_dir_handle)){
		if(($nextfile!='.')&&($nextfile!='..')&&( mb_strstr($nextfile, '.gif') || mb_strstr($nextfile, '.jpg') || mb_strstr($nextfile, '.jpeg') || mb_strstr($nextfile, '.png')  ) ){
			$avatars[] = $nextfile;
		}
	}

	closedir($avatars_dir_handle);

	if (!cmsCore::inRequest('set_avatar')){

		$inPage->setTitle($_LANG['SELECT_AVATAR']);
		$inPage->addPathway($inUser->nickname, cmsUser::getProfileURL($inUser->login));
		$inPage->addPathway($_LANG['SELECT_AVATAR']);

		$perpage = 20;

		$total   = sizeof($avatars);
		$avatars = array_slice($avatars, ($page-1)*$perpage, $perpage);

		cmsPage::initTemplate('components', 'com_users_avatars')->
                assign('userid', $id)->
                assign('avatars', $avatars)->
                assign('avatars_dir', $avatars_dir_rel)->
                assign('page', $page)->
                assign('perpage', $perpage)->
                assign('pagebar', cmsPage::getPagebar($total, $page, $perpage, '/users/%user_id%/select-avatar-%page%.html', array('user_id'=>$id)))->
                display();

	} else {

		$avatar_id = cmsCore::request('avatar_id', 'int', 0);
		$file      = $avatars[$avatar_id];

		if (file_exists($avatars_dir.'/'.$file)){

			$uploaddir 	  = PATH.'/images/users/avatars/';
			$realfile     = $file;
			$filename 	  = md5($realfile . '-' . $id . '-' . time()).'.jpg';
			$uploadfile	  = $avatars_dir . '/' . $realfile;
			$uploadavatar = $uploaddir . $filename;
			$uploadthumb  = $uploaddir . 'small/' . $filename;

			if ($inUser->orig_imageurl && $inUser->orig_imageurl != 'nopic.jpg'){
				@unlink(PATH.'/images/users/avatars/'.$inUser->orig_imageurl);
				@unlink(PATH.'/images/users/avatars/small/'.$inUser->orig_imageurl);
			}

			cmsCore::includeGraphics();
			copy($uploadfile, $uploadavatar);
			@img_resize($uploadfile, $uploadthumb, $model->config['smallw'], $model->config['smallw']);

			$sql = "UPDATE cms_user_profiles SET imageurl = '$filename' WHERE user_id = '$id' LIMIT 1";
			$inDB->query($sql);

			// очищаем предыдущую запись о смене аватара
			cmsActions::removeObjectLog('add_avatar', $id);
			// выводим сообщение в ленту
			cmsActions::log('add_avatar', array(
				  'object' => '',
				  'object_url' => '',
				  'object_id' => $id,
				  'target' => '',
				  'target_url' => '',
				  'description' => '<a href="'.cmsUser::getProfileURL($inUser->login).'" class="act_usr_ava">
										<img border="0" src="/images/users/avatars/small/'.$filename.'">
									</a>'
			));

		}

		cmsCore::redirect(cmsUser::getProfileURL($inUser->login));

	}

}
//============================================================================//
//======================== Работа с фотографиями  ============================//
//============================================================================//
if ($do=='photos'){

    if (!$model->config['sw_photo']) { cmsCore::error404(); }

    $pdo = cmsCore::request('pdo', 'str', '');

    include 'components/users/photos.php';

}
//============================================================================//
//============================= Друзья пользователя  =========================//
//============================================================================//
if ($do=='friendlist'){

	if (!$inUser->id) { cmsUser::goToLogin(); }

	$usr = cmsUser::getShortUserData($id);
	if (!$usr) { cmsCore::error404(); }

	$perpage = 10;

	$inPage->addPathway($usr['nickname'], cmsUser::getProfileURL($usr['login']));
	$inPage->addPathway($_LANG['FRIENDS']);
	$inPage->setTitle($_LANG['FRIENDS']);

	// все друзья
	$friends = cmsUser::getFriends($usr['id']);
	// их общее количество
	$total = count($friends);
	// получаем только нужных на странице
	$friends = array_slice($friends, ($page-1)*$perpage, $perpage);

    cmsPage::initTemplate('components', 'com_users_friends')->
            assign('friends', $friends)->
            assign('usr', $usr)->
            assign('myprofile', ($id == $inUser->id))->
            assign('total', $total)->
            assign('pagebar', cmsPage::getPagebar($total, $page, $perpage, 'javascript:centerLink(\'/users/'.$id.'/friendlist%page%.html\')'))->
            display();

}

//============================================================================//
//============================= Запрос на дружбу  ============================//
//============================================================================//
if ($do == 'addfriend'){

    if($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') { cmsCore::halt(); }

	if (!$inUser->id || $inUser->id == $id) { cmsCore::halt(); }

    $usr = cmsUser::getShortUserData($id);
	if (!$usr) { cmsCore::halt(); }

    cmsUser::clearSessionFriends();

	if(cmsUser::isFriend($id)){ cmsCore::jsonOutput(array('error' => true, 'text' => $_LANG['YOU_ARE_BE_FRIENDS'])); }

    // проверяем был ли ранее запрос на дружбу
    // если был, то делаем accept запросу
    $is_need_accept_id = cmsUser::getFriendFieldId($id, 0, 'to_me');
    if($is_need_accept_id){

        $inDB->query("UPDATE cms_user_friends SET is_accepted = 1 WHERE id = '{$is_need_accept_id}'");
        //регистрируем событие
        cmsActions::log('add_friend', array(
            'object' => $inUser->nickname,
            'user_id' => $usr['id'],
            'object_url' => cmsUser::getProfileURL($inUser->login),
            'object_id' => $is_need_accept_id,
            'target' => '',
            'target_url' => '',
            'target_id' => 0,
            'description' => ''
        ));

        cmsCore::callEvent('USER_ACCEPT_FRIEND', $id);

        cmsCore::jsonOutput(array('error' => false, 'text' => $_LANG['ADD_FRIEND_OK'] . $usr['nickname']));

    }

    // Если пользователь пытается добавиться в друзья к
    // пользователю, к которому уже отправил запрос
    if(cmsUser::getFriendFieldId($id, 0, 'from_me')){
        cmsCore::jsonOutput(array('error' => true, 'text' => $_LANG['ADD_TO_FRIEND_SEND_ERR']));
    }

    // Мы вообще не друзья с пользователем, создаем запрос
    cmsUser::addFriend($id);

    cmsUser::sendMessage(USER_UPDATER, $id, sprintf($_LANG['RECEIVED_F_O'],
        cmsUser::getProfileLink($inUser->login, $inUser->nickname),
        '<a class="ajaxlink" href="javascript:void(0)" onclick="users.acceptFriend('.$inUser->id.', this);return false;">'.$_LANG['ACCEPT'].'</a>',
        '<a class="ajaxlink" href="javascript:void(0)" onclick="users.rejectFriend('.$inUser->id.', this);return false;">'.$_LANG['REJECT'].'</a>'));

    cmsCore::jsonOutput(array('error' => false, 'text' => $_LANG['ADD_TO_FRIEND_SEND']));

}
//============================================================================//
//============================= Прекращение дружбы  ==========================//
//============================================================================//
if ($do == 'delfriend'){

    if($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') { cmsCore::halt(); }

	if (!$inUser->id || $inUser->id == $id){ cmsCore::halt(); }

    $usr = cmsUser::getShortUserData($id);
    if (!$usr) { cmsCore::error404(); }

    if(cmsUser::getFriendFieldId($id)){

        $is_accepted_friend = cmsUser::isFriend($id);

        if(cmsUser::deleteFriend($id)){

            // Если подтвержденный друг
            if($is_accepted_friend){
                cmsCore::jsonOutput(array('error' => false, 'text' => $usr['nickname'] . $_LANG['DEL_FRIEND']));
            } else {
                cmsCore::jsonOutput(array('error' => false, 'text' => $_LANG['REJECT_FRIEND'].$usr['nickname']));
            }

        } else {
            cmsCore::halt();
        }

    } else {

        cmsCore::halt();

    }

}
//============================================================================//
//============================= История кармы  ===============================//
//============================================================================//
if ($do=='karma'){

	$usr = cmsUser::getShortUserData($id);
	if (!$usr) { cmsCore::error404(); }

	$inPage->setTitle($_LANG['KARMA_HISTORY']);
	$inPage->addPathway($usr['nickname'], cmsUser::getProfileURL($usr['login']));
	$inPage->addPathway($_LANG['KARMA_HISTORY']);

	cmsPage::initTemplate('components', 'com_users_karma')->
            assign('karma', $model->getUserKarma($usr['id']))->
            assign('usr', $usr)->
            display();

}
//============================================================================//
//============================= Изменение кармы  =============================//
//============================================================================//
if ($do=='votekarma'){

    if($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') { cmsCore::halt(); }

	if (!$inUser->id){ cmsCore::halt(); }

	$points = (cmsCore::request('sign', 'str', 'plus')=='plus' ? 1 : -1);
    $to     = cmsCore::request('to', 'int', 0);

    $user = cmsUser::getShortUserData($to);
    if (!$user) { cmsCore::halt(); }

	if (!$model->isUserCanChangeKarma($to)){ cmsCore::halt(); }

	cmsCore::halt(cmsUser::changeKarmaUser($to, $points));

}
//============================================================================//
//======================= Наградить пользователя  ============================//
//============================================================================//
if ($do=='giveaward'){

    if (!$inUser->is_admin) { cmsCore::error404(); }

	$usr = cmsUser::getShortUserData($id);
	if (!$usr) { cmsCore::error404(); }

	$inPage->setTitle($_LANG['AWARD_USER']);
	$inPage->addPathway($usr['nickname'], cmsUser::getProfileURL($usr['login']));
	$inPage->addPathway($_LANG['AWARD']);

	if(!cmsCore::inRequest('gosend')){

		cmsPage::initTemplate('components', 'com_users_awards_give')->
                assign('usr', $usr)->
                assign('awardslist', cmsUser::getAwardsImages())->
                display();

	} else {

		$award['title']       = cmsCore::request('title', 'str', $_LANG['AWRD']);
		$award['description'] = cmsCore::request('description', 'str', '');
		$award['imageurl']    = cmsCore::request('imageurl', 'str', '');
        $award['from_id']     = $inUser->id;
        $award['id'] = 0;

        cmsUser::giveAward($award, $id);

		cmsCore::redirect(cmsUser::getProfileURL($usr['login']));

	}

}
//============================================================================//
//============================= Удаление награды  ============================//
//============================================================================//
if ($do=='delaward'){

	$aw = $inDB->get_fields('cms_user_awards', "id = '$id'", '*');
    if (!$aw){ cmsCore::error404(); }

	if (!$inUser->id || ($inUser->id!=$aw['user_id'] && !$inUser->is_admin)){ cmsCore::error404(); }

	$inDB->delete('cms_user_awards', "id = '$id'", 1);

	cmsActions::removeObjectLog('add_award', $id);

	cmsCore::redirectBack();

}
//============================================================================//
//============================= Награды на сайте  ============================//
//============================================================================//
if ($do=='awardslist'){

	$inPage->setTitle($_LANG['SITE_AWARDS']);
	$inPage->addPathway($_LANG['SITE_AWARDS']);

	$awards = cmsUser::getAutoAwards();
    if (!$awards){ cmsCore::error404(); }

    foreach ($awards as $aw) {

        //Перебираем все награды и ищем пользователей с текущей наградой
        $sql =  "SELECT u.id as id, u.nickname as nickname, u.login as login, IFNULL(p.gender, 'm') as gender
                 FROM cms_user_awards aw
                 LEFT JOIN cms_users u ON u.id = aw.user_id
                 LEFT JOIN cms_user_profiles p ON p.user_id = u.id
                 WHERE aw.award_id = '{$aw['id']}'";
        $rs = $inDB->query($sql);
        $aw['uhtml'] = '';
        if ($inDB->num_rows($rs)){

            while ($user = $inDB->fetch_assoc($rs)){
                $aw['uhtml'] .= cmsUser::getGenderLink($user['id'], $user['nickname'], $user['gender'], $user['login']).', ';
            }

            $aw['uhtml'] = rtrim($aw['uhtml'], ', ');

        } else {
            $aw['uhtml'] = $_LANG['NOT_USERS_WITH_THIS_AWARD'];
        }

        $aws[] = $aw;

    }

	cmsPage::initTemplate('components', 'com_users_awards_site')->
            assign('aws', $aws)->
            display();

}
//============================================================================//
//============================= Удаление профиля  ============================//
//============================================================================//
if ($do == 'delprofile'){

	// неавторизованным тут делать нечего
	if (!$inUser->id) { cmsCore::error404(); }

	// есть ли удаляемый профиль
	$data = cmsUser::getShortUserData($id);
	if (!$data) { cmsCore::error404(); }

	// владелец профиля или админ
	if($inUser->is_admin){
		// могут ли администраторы удалять профиль
		if (!cmsUser::isAdminCan('admin/users', cmsUser::getAdminAccess())) { cmsCore::error404(); }
		// администратор сам себя не удалит
		if ($inUser->id == $data['id']){ cmsCore::error404(); }
	} else {
		// удаляем только свой профиль
		if ($inUser->id != $data['id']){ cmsCore::error404(); }
	}

	if (isset($_POST['csrf_token'])){

		if(!cmsUser::checkCsrfToken()) { cmsCore::error404(); }

		$model->deleteUser($id);

		if (!$inUser->is_admin){
			session_destroy();
			cmsCore::redirect('/logout');
		} else {
			cmsCore::addSessionMessage($_LANG['DELETING_PROFILE_OK'], 'info');
			cmsCore::redirect('/users');
		}

	} else {

		$inPage->setTitle($_LANG['DELETING_PROFILE']);
		$inPage->addPathway($data['nickname'], $inUser->getProfileURL($data['login']));
		$inPage->addPathway($_LANG['DELETING_PROFILE']);

		$confirm['title'] = $_LANG['DELETING_PROFILE'];
		$confirm['text'] = '<p>'.$_LANG['REALLY_DEL_PROFILE'].'</p>';
		$confirm['action'] = '/users/'.$id.'/delprofile.html';
		$confirm['yes_button'] = array();
		$confirm['yes_button']['type'] = 'submit';
		cmsPage::initTemplate('components', 'action_confirm')->
                assign('confirm', $confirm)->
                display();

	}

}
//============================================================================//
//============================ Восстановить профиль  =========================//
//============================================================================//
if ($do=='restoreprofile'){

    if (!$inUser->is_admin) { cmsCore::error404(); }

	$usr = cmsUser::getShortUserData($id);
	if (!$usr) { cmsCore::error404(); }

	$inDB->query("UPDATE cms_users SET is_deleted = 0 WHERE id = '$id'") ;

	cmsCore::redirectBack();

}
//============================================================================//
//============================= Файлы пользователей  =========================//
//============================================================================//
if ($do=='files'){

    if (!$model->config['sw_files']) { cmsCore::error404(); }

    $fdo = cmsCore::request('fdo', 'str', '');

    include 'components/users/files.php';

}

//============================================================================//
//================================  Инвайты  =================================//
//============================================================================//
if ($do=='invites'){

    $reg_cfg = $inCore->loadComponentConfig('registration');
    if ($reg_cfg['reg_type'] != 'invite') { cmsCore::error404(); }

    $invites_count = $model->getUserInvitesCount($inUser->id);
    if (!$invites_count) { cmsCore::error404(); }

    if (!cmsCore::inRequest('send_invite')){

        $inPage->addPathway($inUser->nickname, cmsUser::getProfileURL($inUser->login));
        $inPage->addPathway($_LANG['MY_INVITES']);

        cmsPage::initTemplate('components', 'com_users_invites')->
                assign('invites_count', $invites_count)->
                display();

        return;

    }

    if (cmsCore::inRequest('send_invite')){

		if(!cmsUser::checkCsrfToken()) { cmsCore::error404(); }

        $invite_email = cmsCore::request('invite_email', 'email', '');
        if (!$invite_email) { cmsCore::redirectBack(); }

        if ($model->sendInvite($inUser->id, $invite_email)){

            cmsCore::addSessionMessage(sprintf($_LANG['INVITE_SENDED'], $invite_email), 'success');

        } else {

            cmsCore::addSessionMessage($_LANG['INVITE_ERROR'], 'error');

        }

        cmsCore::redirect(cmsUser::getProfileURL($inUser->login));

    }

}

if ($do=='change_email'){
    if(!$inUser->id){
        cmsUser::goToLogin();
    }

    $email = cmsCore::request('email', 'email', '');
    $token = cmsCore::request('token', 'str', '');

    // не занят ли email
    $is_email = $inDB->get_field('cms_users', "email='{$email}'", 'id');

    if($is_email || !$email || !$token){
        cmsCore::error404();
    }

    // проверяем токен
    $valid_id = $inDB->get_field('cms_users_activate', "code='{$token}' AND user_id = '{$inUser->id}'", 'id');
    if(!$valid_id){
        cmsCore::error404();
    }

    $inDB->delete('cms_users_activate', "id = '{$valid_id}'");

    // Сохраняем новый email
    $inDB->update('cms_users', array('email'=>$email), $inUser->id);

    cmsCore::addSessionMessage($_LANG['NEW_EMAIL_SAVED'], 'success');

    cmsCore::redirect(cmsUser::getProfileURL($inUser->login));

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
Example #3
0
function applet_config() {
    // получаем оригинальный конфиг
    $config = cmsConfig::getDefaultConfig();
    
    global $_LANG;
    
    global $adminAccess;
    
    if (!cmsUser::isAdminCan('admin/config', $adminAccess)) { cpAccessDenied(); }
    
    cmsCore::c('page')->setTitle($_LANG['AD_SITE_SETTING']);

    cpAddPathway($_LANG['AD_SITE_SETTING'], 'index.php?view=config');

    $do = cmsCore::request('do', 'str', 'list');

    if ($do == 'save') {
        if (!cmsUser::checkCsrfToken()) { cmsCore::error404(); }

        $newCFG = cmsCore::getArrayFromRequest(array(
            'scheme'                  => array('scheme', array('http', 'https'), ''),
            'sitename'                => array('sitename', 'str', ''),
            'title_and_sitename'      => array('title_and_sitename', 'int', 0),
            'title_and_page'          => array('title_and_page', 'int', 0),
            'hometitle'               => array('hometitle', 'str', ''),
            'homecom'                 => array('homecom', 'str', ''),
            'com_without_name_in_url' => array('com_without_name_in_url', 'str', ''),
            'siteoff'                 => array('siteoff', 'int', 0),
            'only_authorized'         => array('only_authorized', 'int', 0),
            'debug'                   => array('debug', 'int', 0),
            'offtext'                 => array('offtext', 'str', ''),
            'keywords'                => array('keywords', 'str', ''),
            'metadesc'                => array('metadesc', 'str', ''),
            'seourl'                  => array('seourl', 'int', 0),
            'lang'                    => array('lang', 'str', 'ru'),
            'is_change_lang'          => array('is_change_lang', 'int', 0),
            'sitemail'                => array('sitemail', 'str', ''),
            'sitemail_name'           => array('sitemail_name', 'str', ''),
            'wmark'                   => array('wmark', 'str', ''),
            'template'                => array('template', 'str', ''),
            'cache'                   => array('cache', 'int', 0),
            'cache_type'              => array('cache_type', array('file', 'memcached'), ''),
            'memcached_host'          => array('memcached_host', 'str', ''),
            'memcached_port'          => array('memcached_port', 'int', 0),
            'combine_css_enable'      => array('combine_css_enable', 'int', 0),
            'combine_css'             => array('combine_css', 'html', ''),
            'combine_js_enable'       => array('combine_js_enable', 'int', 0),
            'combine_js'              => array('combine_js', 'html', ''),
            'splash'                  => array('splash', 'int', 0),
            'slight'                  => array('slight', 'int', 0),
            'show_pw'                 => array('show_pw', 'int', 0),
            'last_item_pw'            => array('last_item_pw', 'int', 0),
            'index_pw'                => array('index_pw', 'int', 0),
            'fastcfg'                 => array('fastcfg', 'int', 0),
            'mailer'                  => array('mailer', 'str', ''),
            'smtpsecure'              => array('smtpsecure', 'str', ''),
            'smtpauth'                => array('smtpauth', 'int', 0),
            'smtpuser'                => array('smtpuser', 'str', $config['smtpuser']),
            'smtppass'                => array('smtppass', 'str', $config['smtppass']),
            'smtphost'                => array('smtphost', 'str', ''),
            'smtpport'                => array('smtpport', 'int', '25'),
            'timezone'                => array('timezone', 'str', $config['timezone']),
            'user_stats'              => array('user_stats', 'int', 0),
            'seo_url_count'           => array('seo_url_count', 'int', 0),
            'max_pagebar_links'       => array('max_pagebar_links', 'int', 0),
            'allow_ip'                => array('allow_ip', 'str', ''),
            'iframe_enable'           => array('iframe_enable', 'int', 0),
            'vk_enable'               => array('vk_enable', 'int', 0),
            'vk_id'                   => array('vk_id', 'str', ''),
            'vk_private_key'          => array('vk_private_key', 'str', ''),
        ));
        
        $newCFG['sitename']  = stripslashes($newCFG['sitename']);
        $newCFG['hometitle'] = stripslashes($newCFG['hometitle']);
        $newCFG['offtext']   = htmlspecialchars($newCFG['offtext'], ENT_QUOTES);
        $newCFG['db_host']   = $config['db_host'];
        $newCFG['db_base']   = $config['db_base'];
        $newCFG['db_user']   = $config['db_user'];
        $newCFG['db_pass']   = $config['db_pass'];
        $newCFG['db_prefix'] = $config['db_prefix'];
        
        if (cmsConfig::saveToFile($newCFG)) {
            cmsCore::addSessionMessage($_LANG['AD_CONFIG_SAVE_SUCCESS'] , 'success');
        } else {
            cmsCore::addSessionMessage($_LANG['AD_CONFIG_SITE_ERROR'], 'error');
        }

        cmsCore::clearCache();
        cmsCore::redirect('index.php?view=config');
    }

    cpCheckWritable('/includes/config/config.inc.json');
?>
<form class="form-horizontal" role="form" action="/admin/index.php?view=config" method="post" name="CFGform" target="_self" id="CFGform" style="margin-bottom:30px">
    <input type="hidden" name="csrf_token" value="<?php echo cmsUser::getCsrfToken(); ?>" />
    
    <div class="uitabs">
        <ul id="tabs">
            <li><a href="#basic"><span><?php echo $_LANG['AD_SITE']; ?></span></a></li>
            <li><a href="#home"><span><?php echo $_LANG['AD_MAIN']; ?></span></a></li>
            <li><a href="#cache"><span><?php echo $_LANG['AD_CACHE']; ?></span></a></li>
            <li><a href="#database"><span><?php echo $_LANG['AD_DB'] ; ?></span></a></li>
            <li><a href="#mail"><span><?php echo $_LANG['AD_POST']; ?></span></a></li>
            <li><a href="#other"><span><?php echo $_LANG['AD_PATHWAY']; ?></span></a></li>
            <li><a href="#seq"><span><?php echo $_LANG['AD_SECURITY']; ?></span></a></li>
            <li><a href="#soc_apps"><span><?php echo $_LANG['AD_SOC_APPS']; ?></span></a></li>
        </ul>
        
        <div id="basic">
            <div style="width:750px;">
                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_SCHEME_TYPE']; ?></label>
                    <div class="col-sm-7">
                        <select id="scheme" class="form-control" name="scheme">
                            <option value=""><?php echo $_LANG['AD_SCHEME_ANY']; ?></option>
                            <option value="http" <?php if ($config['scheme'] == 'http') { echo 'selected="selected"'; } ?>><?php echo $_LANG['AD_SCHEME_http']; ?></option>
                            <option value="https" <?php if ($config['scheme'] == 'https') { echo 'selected="selected"'; } ?>><?php echo $_LANG['AD_SCHEME_https']; ?></option>
                        </select>
                    </div>
                </div>
                
                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_TIME_ARREA']; ?></label>
                    <div class="col-sm-7">
                        <select id="timezone" class="form-control" name="timezone">
                            <?php echo cmsCore::getTimeZonesOptions($config['timezone']); ?>
                        </select>
                    </div>
                </div>
                
                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_SITENAME']; ?></label>
                    <div class="col-sm-7">
                        <input type="text" class="form-control" name="sitename" value="<?php echo htmlspecialchars($config['sitename']);?>" />
                        <div class="help-block"><?php echo $_LANG['AD_USE_HEADER']; ?></div>
                    </div>
                </div>
                
                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['TEMPLATE']; ?></label>
                    <div class="col-sm-7">
                        <select id="template" class="form-control" name="template" onchange="document.CFGform.submit();">
                        <?php
                            $templates = cmsCore::getDirsList('/templates');
                            foreach ($templates as $template) {
                                if ($template == 'admin') { continue; }
                                echo '<option value="'. $template .'" '. ($config['template'] == $template ? 'selected="selected"' : '') .'>'. $template .'</option>';
                            }

                            $tpl_info = cmsCore::c('page')->getCurrentTplInfo();
                        ?>
                        </select>
                    </div>
                </div>
                
                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_SEARCH_RESULT']; ?></label>
                    <div class="col-sm-7 btn-group" data-toggle="buttons">
                        <label class="btn btn-default <?php if ($config['slight']) { echo 'active'; } ?>">
                            <input type="radio" name="slight" <?php if ($config['slight']) { echo 'checked="checked"'; } ?> value="1" /> <?php echo $_LANG['SHOW']; ?>
                        </label>
                        <label class="btn btn-default <?php if (!$config['slight']) { echo 'active'; } ?>">
                            <input type="radio" name="slight" <?php if (!$config['slight']) { echo 'checked="checked"'; } ?> value="0" /> <?php echo $_LANG['HIDE']; ?>
                        </label>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_TAGE_ADD']; ?></label>
                    <div class="col-sm-7 btn-group" data-toggle="buttons">
                        <label class="btn btn-default <?php if ($config['title_and_sitename']) { echo 'active'; } ?>">
                            <input type="radio" name="title_and_sitename" <?php if ($config['title_and_sitename']) { echo 'checked="checked"'; } ?> value="1" /> <?php echo $_LANG['YES']; ?>
                        </label>
                        <label class="btn btn-default <?php if (!$config['title_and_sitename']) { echo 'active'; } ?>">
                            <input type="radio" name="title_and_sitename" <?php if (!$config['title_and_sitename']) { echo 'checked="checked"'; } ?> value="0" /> <?php echo $_LANG['NO']; ?>
                        </label>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_TAGE_ADD_PAGINATION']; ?></label>
                    <div class="col-sm-7 btn-group" data-toggle="buttons">
                        <label class="btn btn-default <?php if ($config['title_and_page']) { echo 'active'; } ?>">
                            <input type="radio" name="title_and_page" <?php if ($config['title_and_page']) { echo 'checked="checked"'; } ?> value="1" /> <?php echo $_LANG['YES']; ?>
                        </label>
                        <label class="btn btn-default <?php if (!$config['title_and_page']) { echo 'active'; } ?>">
                            <input type="radio" name="title_and_page" <?php if (!$config['title_and_page']) { echo 'checked="checked"'; } ?> value="0" /> <?php echo $_LANG['NO']; ?>
                        </label>
                    </div>
                </div>
                
                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_COM_WITHOUT_NAME_IN_URL']; ?></label>
                    <div class="col-sm-7">
                        <select class="form-control" name="com_without_name_in_url">
                            <?php echo cmsCore::getListItems('cms_components', $config['com_without_name_in_url'], 'title', 'ASC', 'internal=0', 'link'); ?>
                        </select>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['TEMPLATE_INTERFACE_LANG']; ?></label>
                    <div class="col-sm-7">
                        <select class="form-control" name="lang">
                        <?php
                            $langs = cmsCore::getDirsList('/languages');
                            foreach ($langs as $lng) {
                                echo '<option value="'. $lng .'" '. ($config['lang'] == $lng ? 'selected="selected"' : '') .'>'. $lng .'</option>';
                            }
                        ?>
                        </select>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_SITE_LANGUAGE_CHANGE']; ?></label>
                    <div class="col-sm-7 btn-group" data-toggle="buttons">
                        <label class="btn btn-default <?php if ($config['is_change_lang']) { echo 'active'; } ?>">
                            <input type="radio" name="is_change_lang" <?php if ($config['is_change_lang']) { echo 'checked="checked"'; } ?> value="1" /> <?php echo $_LANG['YES']; ?>
                        </label>
                        <label class="btn btn-default <?php if (!$config['is_change_lang']) { echo 'active'; } ?>">
                            <input type="radio" name="is_change_lang" <?php if (!$config['is_change_lang']) { echo 'checked="checked"'; } ?> value="0" /> <?php echo $_LANG['NO']; ?>
                        </label>
                        <div style="clear:both;"></div>
                        <div class="help-block"><?php echo $_LANG['AD_VIEW_FORM_LANGUAGE_CHANGE']; ?></div>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_SITE_ON']; ?></label>
                    <div class="col-sm-7 btn-group" data-toggle="buttons">
                        <label class="btn btn-default <?php if (!$config['siteoff']) { echo 'active'; } ?>">
                            <input type="radio" name="siteoff" <?php if (!$config['siteoff']) { echo 'checked="checked"'; } ?> value="0" /> <?php echo $_LANG['YES']; ?>
                        </label>
                        <label class="btn btn-default <?php if ($config['siteoff']) { echo 'active'; } ?>">
                            <input type="radio" name="siteoff" <?php if ($config['siteoff']) { echo 'checked="checked"'; } ?> value="1" /> <?php echo $_LANG['NO']; ?>
                        </label>
                        <div style="clear:both;"></div>
                        <div class="help-block"><?php echo $_LANG['AD_ONLY_ADMINS']; ?></div>
                    </div>
                </div>
                
                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_SITE_ONLY_AUTHORIZED']; ?></label>
                    <div class="col-sm-7 btn-group" data-toggle="buttons">
                        <label class="btn btn-default <?php if ($config['only_authorized']) { echo 'active'; } ?>">
                            <input type="radio" name="only_authorized" <?php if ($config['only_authorized']) { echo 'checked="checked"'; } ?> value="1" /> <?php echo $_LANG['YES']; ?>
                        </label>
                        <label class="btn btn-default <?php if (!$config['only_authorized']) { echo 'active'; } ?>">
                            <input type="radio" name="only_authorized" <?php if (!$config['only_authorized']) { echo 'checked="checked"'; } ?> value="0" /> <?php echo $_LANG['NO']; ?>
                        </label>
                        <div style="clear:both;"></div>
                        <div class="help-block"><?php echo $_LANG['AD_SITE_ONLY_AUTHORIZED_INFO']; ?></div>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_DEBUG_ON']; ?></label>
                    <div class="col-sm-7 btn-group" data-toggle="buttons">
                        <label class="btn btn-default <?php if ($config['debug']) { echo 'active'; } ?>">
                            <input type="radio" name="debug" <?php if ($config['debug']) { echo 'checked="checked"'; } ?> value="1" /> <?php echo $_LANG['YES']; ?>
                        </label>
                        <label class="btn btn-default <?php if (!$config['debug']) { echo 'active'; } ?>">
                            <input type="radio" name="debug" <?php if (!$config['debug']) { echo 'checked="checked"'; } ?> value="0" /> <?php echo $_LANG['NO']; ?>
                        </label>
                        <div style="clear:both;"></div>
                        <div class="help-block"><?php echo $_LANG['AD_WIEW_DB_ERRORS']; ?></div>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_WHY_STOP']; ?></label>
                    <div class="col-sm-7">
                        <input type="text" class="form-control" name="offtext" value="<?php echo htmlspecialchars($config['offtext']); ?>" />
                        <div class="help-block"><?php echo $_LANG['AD_VIEW_WHY_STOP']; ?></div>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_WATERMARK']; ?></label>
                    <div class="col-sm-7">
                        <input type="text" class="form-control" name="wmark" value="<?php echo $config['wmark']; ?>" />
                        <div class="help-block"><?php echo $_LANG['AD_WATERMARK_NAME']; ?></div>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_QUICK_CONFIG']; ?></label>
                    <div class="col-sm-7 btn-group" data-toggle="buttons">
                        <label class="btn btn-default <?php if ($config['fastcfg']) { echo 'active'; } ?>">
                            <input type="radio" name="fastcfg" <?php if ($config['fastcfg']) { echo 'checked="checked"'; } ?> value="1" /> <?php echo $_LANG['YES']; ?>
                        </label>
                        <label class="btn btn-default <?php if (!$config['fastcfg']) { echo 'active'; } ?>">
                            <input type="radio" name="fastcfg" <?php if (!$config['fastcfg']) { echo 'checked="checked"'; } ?> value="0" /> <?php echo $_LANG['NO']; ?>
                        </label>
                        <div style="clear:both;"></div>
                        <div class="help-block"><?php echo $_LANG['AD_MODULE_CONFIG']; ?></div>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_ONLINESTATS']; ?></label>
                    <div class="col-sm-7">
                        <select class="form-control" name="user_stats">
                            <option value="0" <?php if (!$config['user_stats']) { echo 'selected="selected"'; } ?>><?php echo $_LANG['AD_NO_ONLINESTATS']; ?></option>
                            <option value="1" <?php if ($config['user_stats'] == 1) { echo 'selected="selected"'; } ?>><?php echo $_LANG['AD_YES_ONLINESTATS']; ?></option>
                            <option value="2" <?php if ($config['user_stats'] == 2) { echo 'selected="selected"'; } ?>><?php echo $_LANG['AD_CRON_ONLINESTATS']; ?></option>
                        </select>
                    </div>
                </div>
                
                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_SEO_URL_COUNT']; ?></label>
                    <div class="col-sm-7">
                        <input type="number" class="form-control" name="seo_url_count" value="<?php echo $config['seo_url_count']; ?>" />
                        <div class="help-block"><?php echo $_LANG['AD_SEO_URL_COUNT_HINT']; ?></div>
                    </div>
                </div>
                
                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_PAGEBAR_MAX_LINKS']; ?></label>
                    <div class="col-sm-7">
                        <input type="number" class="form-control" name="max_pagebar_links" value="<?php echo $config['max_pagebar_links']; ?>" />
                    </div>
                </div>
            </div>
        </div>
        
        <div id="home">
            <div style="width:750px;">
                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_MAIN_PAGE']; ?></label>
                    <div class="col-sm-7">
                        <input type="text" class="form-control" name="hometitle" value="<?php echo htmlspecialchars($config['hometitle']); ?>" />
                        <div class="help-block"><?php echo $_LANG['AD_MAIN_SITENAME']; ?></div>
                        <div class="help-block"><?php echo $_LANG['AD_BROWSER_TITLE']; ?></div>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_KEY_WORDS']; ?></label>
                    <div class="col-sm-7">
                        <textarea class="form-control" name="keywords" rows="3"><?php echo $config['keywords']; ?></textarea>
                        <div class="help-block"><?php echo $_LANG['AD_FROM_COMMA']; ?></div>
                        <div class="help-block"><a style="color:#09C" href="http://tutorial.semonitor.ru/#5" target="_blank"><?php echo $_LANG['AD_WHAT_KEY_WORDS']; ?></a></div>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_DESCRIPTION']; ?></label>
                    <div class="col-sm-7">
                        <textarea class="form-control" name="metadesc" rows="3"><?php echo $config['metadesc']; ?></textarea>
                        <div class="help-block"><?php echo $_LANG['AD_LESS_THAN']; ?></div>
                        <div class="help-block"><a style="color:#09C" href="http://tutorial.semonitor.ru/#219" target="_blank"><?php echo $_LANG['AD_WHAT_DESCRIPTION']; ?></a></div>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_MAIN_PAGE_COMPONENT']; ?></label>
                    <div class="col-sm-7">
                        <select class="form-control" name="homecom">
                            <option value="" <?php if (!$config['homecom']) { ?>selected="selected"<?php } ?>><?php echo $_LANG['AD_ONLY_MODULES']; ?></option>
                            <?php echo cmsCore::getListItems('cms_components', $config['homecom'], 'title', 'ASC', 'internal=0', 'link'); ?>
                        </select>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_GATE_PAGE']; ?></label>
                    <div class="col-sm-7 btn-group" data-toggle="buttons">
                        <label class="btn btn-default <?php if ($config['splash']) { echo 'active'; } ?>">
                            <input type="radio" name="splash" <?php if ($config['splash']) { echo 'checked="checked"'; } ?> value="1" /> <?php echo $_LANG['SHOW']; ?>
                        </label>
                        <label class="btn btn-default <?php if (!$config['splash']) { echo 'active'; } ?>">
                            <input type="radio" name="splash" <?php if (!$config['splash']) { echo 'checked="checked"'; } ?> value="0" /> <?php echo $_LANG['HIDE']; ?>
                        </label>
                        <div style="clear:both;"></div>
                        <div class="help-block"><?php echo $_LANG['AD_FIRST_VISIT']; ?></div>
                        <div class="help-block"><?php echo $_LANG['AD_FIRST_VISIT_TEMPLATE']; ?></div>
                    </div>
                </div>
            </div>
        </div>
        
        <div id="cache">
            <div style="width:750px;">
                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_CACHE']; ?></label>
                    <div class="col-sm-7 btn-group" data-toggle="buttons">
                        <label class="btn btn-default <?php if ($config['cache']) { echo 'active'; } ?>">
                            <input type="radio" name="cache" <?php if ($config['cache']) { echo 'checked="checked"'; } ?> value="1" /> <?php echo $_LANG['YES']; ?>
                        </label>
                        <label class="btn btn-default <?php if (!$config['cache']) { echo 'active'; } ?>">
                            <input type="radio" name="cache" <?php if (!$config['cache']) { echo 'checked="checked"'; } ?> value="0" /> <?php echo $_LANG['NO']; ?>
                        </label>
                        <div style="clear:both;"></div>
                        <div class="help-block">
                            <?php echo $_LANG['AD_CACHE_INFO']; ?>
                        </div>
                    </div>
                </div>
                
                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_CACHE_TYPE']; ?></label>
                    <div class="col-sm-7 btn-group" data-toggle="buttons">
                        <select class="form-control" name="cache_type" onchange="if ($(this).val() == 'memcached'){$('.memcached').show();}else{$('.memcached').hide();}">
                            <option value="file" <?php if ($config['cache_type'] == 'file') { echo 'selected="selected"'; } ?>>File</option>
                            <?php if (class_exists('Memcached')) { ?>
                                <option value="memcached" <?php if ($config['cache_type'] == 'memcached') { echo 'selected="selected"'; } ?>>Memcached</option>
                            <?php } ?>
                        </select>
                        <div class="help-block">
                            <?php echo $_LANG['AD_CACHE_TYPE_INFO']; ?>
                        </div>
                    </div>
                </div>
                
                <div class="form-group memcached" <?php if ($config['cache_type'] != 'memcached'){ ?>style="display:none;"<?php } ?>>
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_MEMCACHED_HOST']; ?></label>
                    <div class="col-sm-7 btn-group" data-toggle="buttons">
                        <input type="text" class="form-control" name="memcached_host" value="<?php echo $config['memcached_host']; ?>" />
                        <div class="help-block">
                            <?php echo $_LANG['AD_MEMCACHED_HOST_INFO']; ?>
                        </div>
                    </div>
                </div>
                
                <div class="form-group memcached" <?php if ($config['cache_type'] != 'memcached'){ ?>style="display:none;"<?php } ?>>
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_MEMCACHED_PORT']; ?></label>
                    <div class="col-sm-7 btn-group" data-toggle="buttons">
                        <input type="number" class="form-control" name="memcached_port" value="<?php echo $config['memcached_port']; ?>" />
                        <div class="help-block">
                            <?php echo $_LANG['AD_MEMCACHED_PORT_INFO']; ?>
                        </div>
                    </div>
                </div>
                
                <div class="form-group">
                    <label class="col-sm-5 control-label">
                        <?php echo $_LANG['AD_COLLECT_CSS']; ?><br/>
                        <input type="checkbox" name="combine_css_enable" value="1" <?php if ($config['combine_css_enable']) { ?>checked="checked"<?php } ?> />
                        <?php echo $_LANG['AD_DO_ENABLE']; ?>
                    </label>
                    <div class="col-sm-7 btn-group" data-toggle="buttons">
                        <textarea class="form-control" style="height:150px;" name="combine_css"><?php echo cmsCore::getArrVal($config, 'combine_css', ''); ?></textarea>
                        <div class="help-block">
                            <?php echo $_LANG['AD_COLLECT_CSS_INFO']; ?>
                        </div>
                    </div>
                </div>
                
                <div class="form-group">
                    <label class="col-sm-5 control-label">
                        <?php echo $_LANG['AD_COLLECT_JS']; ?>
                        <br/>
                        <input type="checkbox" name="combine_js_enable" value="1" <?php if ($config['combine_js_enable']) { ?>checked="checked"<?php } ?> />
                        <?php echo $_LANG['AD_DO_ENABLE']; ?>
                    </label>
                    <div class="col-sm-7 btn-group" data-toggle="buttons">
                        <textarea class="form-control" style="height:150px;" name="combine_js"><?php echo cmsCore::getArrVal($config, 'combine_js', ''); ?></textarea>
                        <div class="help-block">
                            <?php echo $_LANG['AD_COLLECT_JS_INFO']; ?>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        
        <div id="database">
            <div style="width:750px;">
                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_DB_SIZE']; ?></label>
                    <div class="col-sm-7">
                        <?php
                            $result = cmsCore::c('db')->query("SELECT (sum(data_length)+sum(index_length))/1024/1024 as size FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = '". $config['db_base'] ."'", true);
                            if (!cmsCore::c('db')->error()) {
                                $s = cmsCore::c('db')->fetch_assoc($result);
                                echo round($s['size'], 2) .' '. $_LANG['SIZE_MB'];
                            } else {
                                echo $_LANG['AD_DB_SIZE_ERROR'];
                            }
                        ?>
                        <div class="help-block"><?php echo $_LANG['AD_MYSQL_CONFIG']; ?></div>
                    </div>
                </div>
            </div>
        </div>
        
        <div id="mail">
            <div style="width:750px;">
                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_SITE_EMAIL']; ?></label>
                    <div class="col-sm-7">
                        <input type="text" class="form-control" name="sitemail" value="<?php echo $config['sitemail']; ?>" />
                        <div class="help-block"><?php echo $_LANG['AD_SITE_EMAIL_POST']; ?></div>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_SENDER_EMAIL']; ?></label>
                    <div class="col-sm-7">
                        <input type="text" class="form-control" name="sitemail_name" value="<?php echo $config['sitemail_name']; ?>" />
                        <div class="help-block"><?php echo $_LANG['AD_IF_NOT_HANDLER']; ?></div>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_SEND_METHOD']; ?></label>
                    <div class="col-sm-7">
                        <select class="form-control" name="mailer">
                            <option value="mail" <?php if ($config['mailer'] == 'mail') { echo 'selected="selected"'; } ?>><?php echo  $_LANG['AD_PHP_MAILER']; ?></option>
                            <option value="sendmail" <?php if ($config['mailer'] == 'sendmail') { echo 'selected="selected"'; } ?>><?php echo  $_LANG['AD_SEND_MAILER']; ?></option>
                            <option value="smtp" <?php if ($config['mailer'] == 'smtp') { echo 'selected="selected"'; } ?>><?php echo  $_LANG['AD_SMTP_MAILER']; ?></option>
                        </select>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_ENCRYPTING']; ?></label>
                    <div class="col-sm-7 btn-group" data-toggle="buttons">
                        <label class="btn btn-default <?php if (!$config['smtpsecure']) { echo 'active'; } ?>">
                            <input type="radio" name="smtpsecure" <?php if (!$config['smtpsecure']) { echo 'checked="checked"'; } ?> value="" /> <?php echo $_LANG['NO']; ?>
                        </label>

                        <label class="btn btn-default <?php if ($config['smtpsecure'] == 'tls') { echo 'active'; } ?>">
                            <input type="radio" name="smtpsecure" <?php if ($config['smtpsecure'] == 'tls') { echo 'checked="checked"'; } ?> value="tls" /> tls
                        </label>

                        <label class="btn btn-default <?php if ($config['smtpsecure'] == 'ssl') { echo 'active'; } ?>">
                            <input type="radio" name="smtpsecure" <?php if ($config['smtpsecure'] == 'ssl') { echo 'checked="checked"'; } ?> value="ssl" /> ssl
                        </label>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_SMTP_LOGIN']; ?></label>
                    <div class="col-sm-7 btn-group" data-toggle="buttons">
                        <label class="btn btn-default <?php if ($config['smtpauth']) { echo 'active'; } ?>">
                            <input type="radio" name="smtpauth" <?php if ($config['smtpauth']) { echo 'checked="checked"'; } ?> value="1" /> <?php echo $_LANG['YES']; ?>
                        </label>
                        <label class="btn btn-default <?php if (!$config['smtpauth']) { echo 'active'; } ?>">
                            <input type="radio" name="smtpauth" <?php if (!$config['smtpauth']) { echo 'checked="checked"'; } ?> value="0" /> <?php echo $_LANG['NO']; ?>
                        </label>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_SMTP_USER']; ?></label>
                    <div class="col-sm-7">
                        <?php if (!$config['smtpuser']) { ?>
                            <input type="text" class="form-control" name="smtpuser" value="<?php echo $config['smtpuser']; ?>" />
                        <?php } else { ?>
                            <div class="help-block"><?php echo $_LANG['AD_IF_CHANGE_USER']; ?></div>
                        <?php } ?>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_SMTP_PASS']; ?></label>
                    <div class="col-sm-7">
                        <?php if (!$config['smtppass']) { ?>
                            <input type="text" class="form-control" name="smtppass" value="<?php echo $config['smtppass']; ?>" />
                        <?php } else { ?>
                            <div class="help-block"><?php echo $_LANG['AD_IF_CHANGE_PASS']; ?></div>
                        <?php } ?>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_SMTP_HOST']; ?></label>
                    <div class="col-sm-7">
                        <input type="text" class="form-control" name="smtphost" value="<?php echo $config['smtphost']; ?>" />
                        <div class="help-block"><?php echo $_LANG['AD_SOME_HOST']; ?></div>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_SMTP_PORT']; ?></label>
                    <div class="col-sm-7">
                        <input type="text" class="form-control" name="smtpport" value="<?php echo $config['smtpport']; ?>" />
                    </div>
                </div>
            </div>
        </div>
        
        <div id="other">
            <div style="width:750px;">
                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_VIEW_PATHWAY']; ?></label>
                    <div class="col-sm-7 btn-group" data-toggle="buttons">
                        <label class="btn btn-default <?php if ($config['show_pw']) { echo 'active'; } ?>">
                            <input type="radio" name="show_pw" <?php if ($config['show_pw']) { echo 'checked="checked"'; } ?> value="1" /> <?php echo $_LANG['YES']; ?>
                        </label>
                        <label class="btn btn-default <?php if (!$config['show_pw']) { echo 'active'; } ?>">
                            <input type="radio" name="show_pw" <?php if (!$config['show_pw']) { echo 'checked="checked"'; } ?> value="0" /> <?php echo $_LANG['NO']; ?>
                        </label>
                        <div style="clear:both;"></div>
                        <div class="help-block"><?php echo $_LANG['AD_PATH_TO_CATEGORY']; ?></div>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_MAINPAGE_PATHWAY']; ?></label>
                    <div class="col-sm-7 btn-group" data-toggle="buttons">
                        <label class="btn btn-default <?php if ($config['index_pw']) { echo 'active'; } ?>">
                            <input type="radio" name="index_pw" <?php if ($config['index_pw']) { echo 'checked="checked"'; } ?> value="1" /> <?php echo $_LANG['YES']; ?>
                        </label>
                        <label class="btn btn-default <?php if (!$config['index_pw']) { echo 'active'; } ?>">
                            <input type="radio" name="index_pw" <?php if (!$config['index_pw']) { echo 'checked="checked"'; } ?> value="0" /> <?php echo $_LANG['NO']; ?>
                        </label>
                    </div>
                </div>

                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_PAGE_PATHWAY']; ?></label>
                    <div class="col-sm-7 btn-group" data-toggle="buttons">
                        <label class="btn btn-default <?php if (!$config['last_item_pw']) { echo 'active'; } ?>">
                            <input type="radio" name="last_item_pw" <?php if (!$config['last_item_pw']) { echo 'checked="checked"'; } ?> value="0" /> <?php echo $_LANG['HIDE']; ?>
                        </label>

                        <label class="btn btn-default <?php if ($config['last_item_pw'] == 1) { echo 'active'; } ?>">
                            <input type="radio" name="last_item_pw" <?php if (!$config['last_item_pw'] == 1) { echo 'checked="checked"'; } ?> value="1" /> <?php echo $_LANG['AD_PAGE_PATHWAY_LINK']; ?>
                        </label>

                        <label class="btn btn-default <?php if ($config['last_item_pw'] == 2) { echo 'active'; } ?>">
                            <input type="radio" name="last_item_pw" <?php if (!$config['last_item_pw'] == 2) { echo 'checked="checked"'; } ?> value="2" /> <?php echo $_LANG['AD_PAGE_PATHWAY_TEXT']; ?>
                        </label>
                    </div>
                </div>
            </div>
        </div>
        
        <div id="seq">
            <div style="width:750px;">
                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_IP_ADMIN']; ?></label>
                    <div class="col-sm-7">
                        <input type="text" class="form-control" name="allow_ip" value="<?php echo htmlspecialchars($config['allow_ip']); ?>" />
                        <div class="help-block"><?php echo $_LANG['AD_IP_COMMA']; ?></div>
                    </div>
                </div>

                <p style="color:#900"><?php echo $_LANG['AD_ATTENTION']; ?></p>
            </div>
        </div>     
    
        <div id="soc_apps">
            <div style="width:750px;">
                <div class="form-group">
                    <label class="col-sm-5 control-label"><?php echo $_LANG['AD_IFRAME_ENABLE']; ?></label>
                    <div class="col-sm-7 btn-group" data-toggle="buttons">
                        <label class="btn btn-default <?php if (cmsCore::getArrVal($config, 'iframe_enable')) { echo 'active'; } ?>">
                            <input type="radio" name="iframe_enable" <?php if (cmsCore::getArrVal($config, 'iframe_enable')) { echo 'checked="checked"'; } ?> value="1" /> <?php echo $_LANG['YES']; ?>
                        </label>
                        <label class="btn btn-default <?php if (!cmsCore::getArrVal($config, 'iframe_enable')) { echo 'active'; } ?>">
                            <input type="radio" name="iframe_enable" <?php if (!cmsCore::getArrVal($config, 'iframe_enable')) { echo 'checked="checked"'; } ?> value="0" /> <?php echo $_LANG['NO']; ?>
                        </label>
                    </div>
                </div>

                <fieldset>
                    <legend>VK.COM</legend>
                    
                    <div class="form-group">
                        <label class="col-sm-5 control-label"><?php echo $_LANG['AD_ENABLE']; ?></label>
                        <div class="col-sm-7 btn-group" data-toggle="buttons">
                            <label class="btn btn-default <?php if ($config['vk_enable']) { echo 'active'; } ?>">
                                <input type="radio" name="vk_enable" <?php if ($config['vk_enable']) { echo 'checked="checked"'; } ?> value="1" /> <?php echo $_LANG['YES']; ?>
                            </label>
                            <label class="btn btn-default <?php if (!$config['vk_enable']) { echo 'active'; } ?>">
                                <input type="radio" name="vk_enable" <?php if (!$config['vk_enable']) { echo 'checked="checked"'; } ?> value="0" /> <?php echo $_LANG['NO']; ?>
                            </label>
                        </div>
                    </div>
                    
                    <div class="form-group">
                        <label class="col-sm-5 control-label"><?php echo $_LANG['AD_IFRAME_APP_ID']; ?></label>
                        <div class="col-sm-7">
                            <input type="text" class="form-control" name="vk_id" value="<?php echo $config['vk_id']; ?>" />
                        </div>
                    </div>
                    
                    <div class="form-group">
                        <label class="col-sm-5 control-label"><?php echo $_LANG['AD_IFRAME_APP_PRIVATE_KEY']; ?></label>
                        <div class="col-sm-7">
                            <input type="text" class="form-control" name="vk_private_key" value="<?php echo $config['vk_private_key']; ?>" />
                        </div>
                    </div>
                </fieldset>
            </div>
        </div>
    </div>
    
    <div>
        <input type="hidden" name="do" value="save" />
        
        <input type="submit" class="btn btn-primary" name="save" value="<?php echo $_LANG['SAVE']; ?>" />
        <input type="button" class="btn btn-default" name="back" value="<?php echo $_LANG['CANCEL']; ?>" onclick="window.history.back();" />
    </div>
</form>
<?php
}