jdatabase - Cómo devolver el user_id desde el Joomla-Framework al insertar/actualizar un(nuevo) usuario
load array joomla (1)
Alternativamente, puede cargar al usuario según el nombre de usuario utilizado para crear el usuario.
$return = $model->register($data);
if($return == ''useractivate''){
$userid = JFactory::getUser($username)->id;
}
Intento insertar / actualizar un nuevo usuario en una página joomla desde un script externo. El siguiente código funciona muy bien. Sin embargo, necesitaré el user_id del usuario agregado o actualizado, pero el script devuelve solo "useractive".
El Foro / Documentación de Joomla ( https://github.com/joomla/joomla-cms/issues/9644 ) sugiere usar
$db->insertid();
Pero no pude conseguir este trabajo. Hasta ahora probé esto:
$db = JFactory::getDbo();
var_dup($db->insertid());
y obtén el resultado: 0
Creación de usuario
<?php
define( ''_JEXEC'', 1 );
define(''JPATH_BASE'', __DIR__ );
define( ''DS'', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.''includes''.DS.''defines.php'' );
require_once ( JPATH_BASE .DS.''includes''.DS.''framework.php'' );
$language = JFactory::getLanguage();
$language->load(''com_users'', JPATH_BASE);
JFactory::getLanguage()->load(''mod_login'', JPATH_BASE, ''de-DE'', true);
$app = JFactory::getApplication(''site'');
$app->initialise();
require_once(JPATH_BASE.DS.''components''.DS.''com_users''.DS.''models''.DS.''registration.php'');
$model = new UsersModelRegistration();
jimport(''joomla.mail.helper'');
jimport(''joomla.user.helper'');
$username = ''jimporttest'';
$name = ''J Port2'';
$email = ''[email protected]'';
$password = ''test'';
$data = array(
''username'' => $username,
''name'' => $name,
''email1'' => $email,
''password1'' => $password,
''password2'' => $password,
''block'' => 0
);
$return = $model->register($data);
var_dump($return);
PD: Tengo que usar joomla-framework y no puedo usar una simple consulta mysql porque el nuevo usuario tiene que activar su cuenta y establecer fácilmente una nueva contraseña.