Crie um usuário quando enviar um formulário

Esta questão, infelizmente, é bastante específica em que talvez não precise de um Joomla! especialista para me ajudar com isso (espero que eu não e alguém com bom conhecimento php / mysql pode ajudar).

http://pastebin.com/JRhNB4EP – Eu tive que colocar meu código em pastebin porque o arquivo é bastante grande e eu não queria inundar esta página com o código.

Então, deixe-me explicar o que o formulário faz: permite que os usuários criem uma listview sob um tipo de empresa selecionado, mas o que eu preciso implementar é que, uma vez que o formulário é submetido, ele cria um usuário sob o ACL ‘Registered’ e gera aleatoriamente uma senha formá-los. O nome de usuário seria o email fornecido. Esta informação também seria enviada para o e-mail fornecido.

Eu procurei ajuda por alguns dias agora (geralmente algumas horas aqui e ali dentro do dia), mas como a questão é tão específica, não encontrei nada que seja bem definido.

Qualquer ajuda / pointers / referências que possam me apontar na direção certa serão muito apreciadas! Desde já, obrigado.

Algo semelhante … Mas você consegue a ideia:

Código HTML :

  Registration    
Username
Password
confirm

Código PHP a ser executado no formulário enviar

  

Tente isso,

Suponha que sua página de submissão não seja parte do joomla, ou seja, fora do trabalho do quadro joomla.

Passo 1:

  Include Joomla Frame work define( '_JEXEC', 1 ); define('JPATH_BASE', dirname(__FILE__) );//this is when we are in the root define( 'DS', DIRECTORY_SEPARATOR ); require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' ); require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' ); $mainframe = JFactory::getApplication('site'); $mainframe->initialise(); $db = JFactory::getDBO(); 

Passo 2:

 Collect your Form fields data. //Something like $user_email ,$password etc. 

Etapa 3: Verifique o nome do usuário já existe no database.

  $sql ="SELECT * FROM #__users WHERE username ='$username'"; $db->setQuery($sql); $db->query(); if($db->getNumRows()>0){ $mainframe->redirect("url","error msg","error"); } else{ jimport('joomla.user.helper'); $salt = JUserHelper::genRandomPassword(32); $crypt = JUserHelper::getCryptedPassword($password, $salt); $password = $crypt.':'.$salt; //Data to login table $sql= "INSERT INTO #__users(username,email,lastvisitDate,registerDate,block,sendEmail,password,name,params,) values('$user_email','$user_email','$now','$now',0,0,'$password','$full_name','{}')"; $db->setQuery($sql); $db->query(); $last_inserted_id = $db->insertid(); //User group tabe normally group id for registered user is 2 other wise you have to check that too $sql= "INSERT INTO #__user_usergroup_map(user_id,group_id) values('$last_inserted_id',2)"; $db->setQuery($sql); $db->query(); //Finally send a mail to user if required. JUtility::sendMail(mailfrom, fromname, $user_email, $emailSubject, $email_body,true); } 

Espero que faça sentido …