Смотрим сюда:
сниппет Registration
<?php
$post = $_POST;
unset($_POST);
if(!empty($post))
{
$error = array();
foreach($post as $k=>$v)
{
$post[$k] = $modx->db->escape($v);
}
$web_users = $modx->getFullTableName(’web_users’);
$web_user_attributes = $modx->getFullTableName(’web_user_attributes’);
$web_user_settings = $modx->getFullTableName(’web_user_settings’);
$site_content= $modx->getFullTableName(’site_content’);
if(empty($post[’company’]))
{
$error[] = "Название компании/ИП";
}
if(empty($post[’fullname’]))
{
$error[] = "ФИО представителя";
}
if(empty($post[’email’]) || !preg_match("/^(([\w-\s]+)|([\w-]+(?:\.[\w-]+)*)|([\w-\s]+)([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i",$post[’email’]))
{
$error[] = "Электронная почта";
}
if(empty($post[’username’]))
{
$error[] = "Логин";
}
if(empty($post[’password’]))
{
$error[] = "Пароль";
}
$query = "SELECT {$web_users}.`id` FROM {$web_users} LEFT JOIN {$web_user_attributes} ON {$web_user_attributes}.`email` = ’{$post[’email’]}’ WHERE {$web_users}.`username`=’{$post[’username’]}’ ";
$query = $modx->db->query($query);
if(mysql_num_rows($query) > 0)
{
$error[] = "Имя пользователя\емейл используются";
}
if(count($error) == 0)
{
$md5pass = md5($post[’password’]);
$query = "INSERT INTO {$web_users} (`username`, `password`) VALUES (’{$post[’username’]}’, ’{$md5pass}’)";
$modx->db->query($query);
$user_id = mysql_insert_id($modx->db->conn);
$query = "INSERT INTO {$web_user_attributes} (`internalKey`, `fullname`, `email`) VALUES (’{$user_id}’, ’{$post[’fullname’]}’, ’{$post[’email’]}’)";
$modx->db->query($query);
$userData = $post;
unset($userData[’password’]);
unset($userData[’username’]);
unset($userData[’fullname’]);
unset($userData[’email’]);
$userData = base64_encode(serialize($userData));
$query = "INSERT INTO {$web_user_settings} (`webuser`, `setting_name`, `setting_value`) VALUES (’{$user_id}’, ’user_data’, ’{$userData}’)";
$modx->db->query($query);
$date = time();
$menuindex = 0;
foreach($modx->documentMap as $k=>$v)
{
if(array_key_exists(86, $v)) ЗДЕСЬ УКАЗЫВАЕМ id ПАПКИ В КОТОРУЮ СОХРАНЯЕМ СТРАНИЦЫ ПОЛЬЗОВАТЕЛЕЙ
{
$menuindex ++;
}
}
$query = "INSERT INTO {$site_content} (
`type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`,
`link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`,
`introtext`, `content`, `richtext`, `template`, `menuindex`, `searchable`,
`cacheable`, `createdby`, `createdon`, `editedby`, `editedon`, `deleted`,
`deletedon`, `deletedby`, `publishedon`, `publishedby`, `menutitle`, `donthit`,
`haskeywords`, `hasmetatags`, `privateweb`, `privatemgr`, `content_dispo`, `hidemenu`)
VALUES (
’document’, ’text/html’, ’{$post[’company’]}’, ’’,’’, ’user-{$user_id}’,
’’,’1’,’0’,’0’,’86’,’0’,
’’,’’,’1’,’10’,’{$menuindex}’, ’0’,
’1’,’{$user_id}’,’{$date}’, ’0’,’0’,’0’,
’0’,’0’,’{$date}’,’1’,’’,’0’,
’0’,’0’,’0’,’0’,’0’,’0’
)";
$modx->db->query($query);
$html = "<p><h4>Поздравляем! Вы успешно зарегистрировались на сайте, теперь вы можете выполнить вход, используя логин и пароль, указанные при регистрации</h4></p>";
$message = "Вы успешно зарегистрировались на сайте {$modx->confing[’site_url’]}
логин: {$post[’username’]}
пароль; {$post[’password’]}
";
$modx->runSnippet(’SendEmail’, array(’subject’ => ’Регистрация на сайте ’.$modx->config[’site_url’], ’email’=>$post[’email’], ’message’ =>$message));
return $html;
}
if(count($error) > 0)
{
$post[’error’] = "<div class=’error’><p>Проверьте поля: ".implode(" - ", $error)."</p><p>Поля, отмеченные (*) - обязательны для заполнения.</p></div>";
}
$html = $modx->parseChunk("Registration-Tpl", $post, "[+", "+]");ЗДЕСЬ ШАБЛОН ФОРМЫ РЕГИСТРАЦИИ
return $html;
}
$html = $modx->getChunk("Registration-Tpl"); ЗДЕСЬ ШАБЛОН ФОРМЫ РЕГИСТРАЦИИ
return $html;
?>
Это регистрация пользователя с созданием отдельного документа в папке
Вход на сайт с помощью сниппета webLogin.
Удачи.