jfactory jdatabase complemento array joomla joomla-framework

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.