<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
 * MaxSite CMS
 * (c) https://max-3000.com/
 */

if ($fn = mso_find_ts_file('main/main-start.php')) require $fn;

// проверяем запрет регистраций/комментирование комюзеров
if (!mso_get_option('allow_comment_comusers', 'general', '1')) {
	echo '<div class="mso-message-alert">' . tf('На сайте запрещена регистрация комюзеров.') . '</div>';
	if ($fn = mso_find_ts_file('main/main-end.php')) require $fn;
	return;
}

echo '<div class="mso-type-loginform"><div class="mso-page-only"><div class="mso-page-content mso-type-loginform-content">';

if (is_login()) {
	if (mso_segment(2) == 'error') mso_redirect('loginform');

	eval(mso_tmpl_ts('type/loginform/units/loginform-user-tmpl.php'));
} elseif ($comuser = is_login_comuser()) {
	if (mso_segment(2) == 'error') mso_redirect('loginform');

	if (!$comuser['comusers_nik'])
		$hello = t('Привет!');
	else
		$hello = t('Привет,') . ' ' . $comuser['comusers_nik'] . '!';

	eval(mso_tmpl_ts('type/loginform/units/loginform-comuser-tmpl.php'));
} else {
	$redirect_url = (isset($_SERVER['HTTP_REFERER'])) ? mso_clean_str($_SERVER['HTTP_REFERER'], 'xss') : getinfo('siteurl');

	// для запоминания уже введенных полей
	$vreg_email = $vreg_password = $vreg_password_repeat = $vreg_nik = $vreg_url = '';

	if ($post = mso_check_post(['freg_session_id', 'freg_rules_ok', 'freg_email', 'freg_password', 'freg_password_repeat', 'freg_nik', 'freg_url', 'freg_submit'])) {
		mso_checkreferer();

		// обработка _post
		$post = mso_clean_post([
			'freg_email' => 'email',
			'freg_password' => 'base',
			'freg_password_repeat' => 'base',
			'freg_nik' => 'base|not_url',
			'freg_url' => 'base',
			'freg_redirect_url' => 'base'
		], $post);

		// подставим введенные поля
		$vreg_email = $post['freg_email'];
		$vreg_password = $post['freg_password'];
		$vreg_password_repeat = $post['freg_password_repeat'];
		$vreg_nik = $post['freg_nik'];
		$vreg_url = $post['freg_url'];

		// проверки введенных данных
		$error = '';

		if (!$post['freg_rules_ok']) {
			$error .= '<div class="mso-message-error">' . tf('Необходимо принять правила сайта') . '</div>';
		}

		if (!$post['freg_email']) {
			$error .= '<div class="mso-message-error">' . tf('Не указан email') . '</div>';
		} else {
			// email указан, проверим его корректность
			$email = mso_clean_str($post['freg_email'], 'email');

			if (!$email)
				$error .= '<div class="mso-message-error">' . tf('Неверный email') . '</div>';
		}

		if (!$post['freg_password']) {
			$error .= '<div class="mso-message-error">' . tf('Не указан пароль') . '</div>';

			$vreg_password = '';
			$vreg_password_repeat = '';
		} else {
			if (strlen($post['freg_password']) < 6)
				$error .= '<div class="mso-message-error">' . tf('Длина пароля должна быть более 6 символов') . '</div>';
		}

		if ($post['freg_password'] != $post['freg_password_repeat']) {
			$vreg_password = '';
			$vreg_password_repeat = '';

			$error .= '<div class="mso-message-error">' . tf('Пароль и его повтор не совпадают') . '</div>';
		}

		if (mso_hook_present('comments_new_captcha') and !mso_hook('comments_new_captcha')) {
			$error .= '<div class="mso-message-error">' . tf('Неверный код капчи') . '</div>';
		}

		if ($error) {
			echo $error;
		} else {
			// нет ошибок

			require_once getinfo('common_dir') . 'comments.php';

			// подготавливаем данные для mso_comuser_auth

			$data = [];

			$data['allow_create_new_comuser'] = true; // явно разрешить регистрацию
			$data['die'] = false; // получаем результат в случае ошибки
			$data['password'] = $vreg_password;
			$data['comusers_nik'] = $vreg_nik;
			$data['comusers_url'] = $vreg_url;
			$data['email'] = $vreg_email;

			if (isset($post['freg_redirect_url']))
				$data['redirect'] = $post['freg_redirect_url'];
			else
				$data['redirect'] = getinfo('siteurl') . 'registration';

			// функция сама средиректит куда нужно
			// из-за этого форма ниже не будет отображена в случае успеха
			$res = mso_comuser_auth($data);

			// если ошибка, то выводим сообщение
			echo '<div class="mso-message-alert">' . $res . '</div>';
		}
	}

	// форма регистрации
	$action = getinfo('siteurl') . 'registration';

	if ($rules = mso_get_option('rules_site', 'general', ''))
		$rules = ' (<a href="' . $rules . '" target="_blank">' . tf('Правила сайта') . '</a>)';
	else
		$rules = '';

	eval(mso_tmpl_ts('type/registration/units/registration-tmpl.php'));
}

echo '</div></div></div><!-- class="mso-type-loginform" -->';

if ($fn = mso_find_ts_file('main/main-end.php')) require $fn;

# end of file
