Давно искал этот плагин для своего проекта. Что он делает - при регистрации нового юзера ему создается автоматом новая страница, которую только он может редактировать. Ниже код плагина:
//retrive last inserted webuser id
$user_id=$modx->db->select("id","modx_web_users","", "id DESC","1");
$last = mysql_fetch_assoc($user_id);
$user_id=$last[id];
//check if user is member of any group
$is_member=$modx->db->select("id","modx_web_groups","webuser = $user_id", "","");
$total_rows = $modx->db->getRecordCount( $is_member );
//if not
if($total_rows==0){
//create unique doc group name
$sql = "INSERT INTO modx_documentgroup_names VALUES (NULL,’$doc_group$user_id’,0,0)";
$modx->db->query($sql);
$last_docgroup_name_id=$modx->db->getInsertId();
//create page
$sql ="INSERT INTO `modx_site_content` VALUES (NULL, ’document’, ’text/html’, ’test’, ’test’, ’’, ’’, ’’, 1, 0, 0, 0, 0, ’test’, ’<p>test</p>’, 1, 5, 6, 1, 1, 1, 1182963293, 1, 1182963829, 0, 0, 0, 1182963293, 1, ’’, 0, 0, 0, 1, 0, 0, 0)";
$modx->db->query($sql);
$last_page_id=$modx->db->getInsertId();
//create unique doc group
$sql = "INSERT INTO modx_document_groups (document_group,document) VALUES($last_docgroup_name_id,$last_page_id) ";
$modx->db->query($sql);
$last_docgroup_id=$modx->db->getInsertId();
//create unique web group name
$prefix="web_group_";
$sql = "INSERT INTO modx_webgroup_names VALUES(NULL,’$prefix$user_id’)";
$modx->db->query($sql);
$last_webgroup_name_id=$modx->db->getInsertId();
//add user to webgroup
$sql = "INSERT INTO modx_web_groups VALUES(NULL,$last_webgroup_name_id,$user_id) ";
$modx->db->query($sql);
//add web group access to doc groups
$sql = "INSERT INTO modx_webgroup_access VALUES(NULL,$last_webgroup_name_id,$last_docgroup_name_id) ";
$modx->db->query($sql);
//set homepage for user
$sql = "INSERT INTO modx_web_user_settings VALUES($user_id,’login_home’,$last_page_id) ";
$modx->db->query($sql);
include_once($modx->config[’base_path’] . "manager/processors/cache_sync.class.processor.php");
$sync = new synccache();
$sync->setCachepath($modx->config[’base_path’] . "assets/cache/");
$sync->setReport(false);
$sync->emptyCache();
$modx->clearCache(); // double clear cache
}
else{
return 0;
}
Параметры конфигурации:
&doc_group=doc group prefix;string;doc_group_
Использует OnWebUserSave Event
При попытке зарегистрировать нового пользователя, выдается сообщение браузера: "Missing username. Please enter username."
Теперь мои вопросы:
1) можно ли исправить данное недоразумение;
2) есть ли более галантное решение для данного плагина
P.S. Очень важен именно этот плагин. На нем практически вся идея сейчас висит. Помогите, плз..
P.P.S. Проверил сейчас - плагин не контачит с 0.9.6 Вместе с 0.9.5 вроде все окей. Как привести к 0.9.6?