Cómo usar el nuevo sistema de registro de acciones
A partir de Joomla 3.9, Joomla introdujo un sistema de registro de acciones.
Este sistema es la finalización del proyecto "Grabar registros de acción" de GSoC 2016 . Este sistema proporciona una infraestructura para crear un registro de auditoría de la actividad realizada en un sitio web y se puede ajustar a las preferencias del administrador del sitio. Las extensiones pueden conectarse a este sistema para agregar mensajes personalizados o hacer que el sistema procese acciones CRUD estándar.
En este tutorial, encontrará información sobre cómo configurar este nuevo sistema.
Nota: Solo los Super-usuarios tienen acceso al sistema de Registro de acciones.
Componente
Panel de registro de acciones del usuario
Nos dirigimos en nuestro administrador de joomla a Usuarios → Registro de acciones del usuario para acceder al tablero.
Desde esta pantalla, un Superusuario tiene una visión global de todas las actividades realizadas por los usuarios en un sitio y tiene la capacidad de revisar, exportar, eliminar y purgar entradas.
Para obtener más información, consulte en Inglés los siguientes enlaces:
Sistema - Registro de acciones del usuario
Una vez habilitado, este complemento permite definir el número de días después de los cuales se eliminarán los registros.
Registro de Acción
Una vez habilitado, este complemento permite registrar las acciones de los usuarios para las extensiones principales.
Privacidad: registros de acciones
Una vez habilitado, este complemento permite exportar los datos del registro de acciones para la solicitud de privacidad de un usuario.
Módulo
Registros de acción: último módulo
Este módulo de administración muestra en el panel de control una lista de las últimas acciones realizadas en un sitio.
Nota: El módulo no se muestra de manera predeterminada en los sitios que actualizan a Joomla 3.9. Para mostrarlo en su panel de control, navegue a Extensiones → Administrar → Administrar → Habilitar el sistema - Complemento de registro de acciones del usuario y luego vaya a Extensiones → Módulos → Administrador → Nuevo → Registros de acción-Último
Consulte también en Inglés: Módulo de administración de últimas acciones .
Cómo conectar una extensión al sistema
Siéntase libre de editar esta sección al mejorarla o corregirla.
Script de instalación de componentes
Agregue la extensión a la tabla (#__action_logs_extensions) para que aparezca en la configuración de los registros de acciones del usuario.
Por supuesto, sería mejor realizar algunas comprobaciones para asegurarse de que el registro no exista.
Ayudante de componentes
En este ejemplo, el componente auxiliar se utiliza para realizar el almacenamiento de acciones.
/ ** * Registre los detalles de la transacción en el registro de registro * @param object $ user Guarda la obtención del usuario actual nuevamente. * @param int $ tran_id El ID de transacción recién creado o actualizado * @param int $ id Referencia de identificación pasada del formulario para identificar si hay un nuevo registro * @return boolean True * / public static function recordActionLog ( $ user = null , $ tran_id = 0 , $ id = 0 ) { // obtener los detalles del componente, como id $ extension = MycomponentHelper ::getExtensionDetails ( 'com_mycomponent' ); // obtener los detalles de la transacción para usar en el registro para una referencia fácil $ tran = MycomponentHelper :: getTransaction ( $ tran_id ); $ con_type = "transacción" ; if ( $ id === 0 ) { $ type = 'Nuevo' ; } else { $ type = 'Actualizar' ; } $ mensaje = array (); $ mensaje [ 'acción' ] = $ con_type ; $ mensaje [ 'tipo' ] = $ tipo . $ tran -> tran_type . '-' . $ tran -> tran_desc . '$' . $ tran -> tran_amount ; $ mensaje [ 'id' ] = $ tran -> id ; $ mensaje [ 'título' ] = $ extensión -> nombre; $ mensaje [ 'extension_name' ] = $ extension -> nombre ; $ message [ 'itemlink' ] = "index.php? option = com_mycomponent & task = transaction.edit & id =" . $ tran -> id ; $ mensaje [ 'userid' ] = $ usuario -> id ; $ mensaje [ 'nombre de usuario' ] = $ usuario -> nombre de usuario ; $ message [ 'accountlink' ] = "index.php? option = com_users &. $ usuario -> id ; $ messages = array ( $ mensaje ); $ messageLanguageKey = Text :: _ ( 'COM_MYCOMPONENT_TRANSACTION_LINK' ); $ context = $ extension -> nombre . '.' . $ con_type ; $ fmodel = MycomponentHelper :: getForeignModel ( 'Actionlog' , 'ActionlogsModel' ); $ fmodel -> addLog ( $ messages , $ messageLanguageKey , $ context , $ user -> id ); volver verdadero ; } / ** * Obtener el modelo de otro componente para usar * @param string $ name El nombre del modelo. Opcional. Por defecto a la mía por seguridad. * @param string $ prefix El prefijo de clase. Opcional * @param array $ config Matriz de configuración para el modelo. Opcional * @return object El modelo * / public function getForeignModel ( $ name = 'Transaction' , $ prefix = 'MycomponentModel' , $ config = array ( 'ignore_request' => true )) { \ Joomla \ CMS \ MVC \ Model \ ItemModel :: addIncludePath( JPATH_ADMINISTRATOR .
'/ Components / com_actionlogs / models' , 'ActionlogsModelActionlog' ); $ fmodel = \ Joomla \ CMS \ MVC \ Model \ ItemModel :: getInstance ( $ nombre , $ prefijo , $ config ); return $ fmodel ; }
Formulario de transacción frontal
Ahora que las bases están establecidas, solo necesitamos activar el proceso. Estamos capturando información sobre una transacción que se crea o actualiza y tenemos un modelo llamado transactionform.php . Es en el método Guardar que queremos capturar un registro.
// Entonces, el código sobre este punto verifica y hace lo que debería hacer y luego, después de guardar el registro exitosamente,
verificamos la configuración del parámetro para ver si se requiere el registro, pasamos elementos clave a recordActionLog.
$ tabla = $ this -> getTable (); if ( $ tabla -> guardar ( $ datos ) === verdadero ) { / * ------------------------------------------------ ---------------- * / // activa el registro de transacciones si es necesario $ act_log = $ params -> get ( 'act_log' , 0 ); if ( $ act_log && $ table -> id ) { // recopilar información e iniciar sesión en un nuevo registro de acciones registro MycomponentHelper :: recordActionLog ( $ user , $ table -> id , $ data [ 'id' ]); } / * ----------------------------------------------- ----------------- * / return $ tabla -> id ; } else { return false ; }
Archivo de idioma
Finalmente, para ayudar con la Lista de registro de acciones en el lado de administración de Joomla, queremos establecer algunos elementos clave de datos que se mostrarán en el archivo de idioma en-GB.com_mycomponent.ini.
COM_MYCOMPONENT_TRANSACTION_LINK = "El usuario <a href='{accountlink}'> {username} </a> creó una transacción
(<a href='{itemlink}'> {type} </a>)"
Espero que esto ayude y siempre tener en cuenta que la mejor información la encontras en Joomla Saludos