carcam / jresearch

2 stars 1 forks source link

Problema con Jresearch en Joomla! 3.7 #16

Closed rubenjo7 closed 7 years ago

rubenjo7 commented 7 years ago

Buenas tardes! Te comento un poquito el error que tengo y a ver si me puedes ayudar a solucionarlo:

Cuando intento insertar un articulo, un libro o algunas de las muchas opciones que nos deja añadir jresearch me aparece el siguiente error:

La información no pudo ser guardada.: Unknown column 'journal_url' in 'field list'

He probado a corregir los problemas en la base de datos y sigue sin funcionar. ¿Alguna idea de lo que puede ser?

Muchas gracias de antemano!

carcam commented 7 years ago

Hola rubenjo7 ¿Qué versión de JResearch estás usando?

rubenjo7 commented 7 years ago

He instalado la 3.2. Pero creo que el problema viene de que la web estaba en la versión 2.5 de Joomla, con Jresearch instalado en su versión más antigua. Al actualizar, se muestran los datos sin problema, pero no hay manera de añadir nada.

rubenjo7 commented 7 years ago

Alguna solución?

carcam commented 7 years ago

Hola, perdona el retraso, pensaba que Luís estaba operativo.

En principio creo que no llegamos a implementar nunca un proceso de migración ¿Cómo hiciste el paso de Joomla! 2.5 a Joomla! 3 en lo que a JResearch se refiere?

rubenjo7 commented 7 years ago

El proceso de migración me estaba dando problemas no solo por jresearch si no con más componentes, así que la solución fue borrar todos los componentes que diesen problemas y actualizar. Una vez terminado esto, instale la última versión de Jresearch y la información está en la base de datos, pero a falta de algunos errores como ese que os comento. Gracias de nuevo.

carcam commented 7 years ago

Has cerrado el hilo ¿Has solucionado el problema?

rubenjo7 commented 7 years ago

Si, he añadido a mano esa columna la columna 'journal_url' a la tabla que contiene la información de los artículos, libros... Y se ha solucionado el problema. Saludos y gracias!

rubenjo7 commented 7 years ago

Otra pregunta que me ha surgido. ¿Donde se encuentran los archivos que contienen la inserción de un miembro en la base de datos? Desde el back

carcam commented 7 years ago

EStán en el modelo de Staff: https://github.com/carcam/jresearch/blob/master/src/admin/models/staff/member.php

rubenjo7 commented 7 years ago

Te comento el nuevo problema que tengo, porque no entiendo muy bien como se realiza la inserción. Cuando añado un nuevo miembro, en el campo "JRESEARCH_USERNAME" (que aparecía bloqueado, y lo he desbloqueado), inserto un nombre en ese campo(y en los demás) y se guarda toda la información salvo esa. ¿Como puede solucionarse? Gracias de Nuevo!

image

carcam commented 7 years ago

¿Me puedes mostrar una captura de pantalla del formulario de edición? ¿Es parte pública o privada?

rubenjo7 commented 7 years ago

Te adjunto una captura con el formulario completo. Se pueden ver los campos que se guardan correctamente y te señalo el que da problemas. Este formulario se encuentra en la parte de administración - Componentes - Jresearch - Miembros Ahora bien, el problema sigue estando editando un miembro o creando uno nuevo. No se aplican los cambios de ese campo, ni en "guardar" ni en "Guardar y cerrar" ni similares.

El campo que ahora mismo aparece bloqueado si sabría desbloquearlo.

Gracias!!

captura

carcam commented 7 years ago

Hola @rubenjo7, siento mucho la demora, pero a no ser que @lgalarra pueda revisarlo antes me temo que hasta entrada la semana que viene no podré darte una respuesta.

Un saludo.

rubenjo7 commented 7 years ago

Perfecto, esperaré sin problema. De todas formas intentaré arreglarlo, y si lo consigo os aviso!

Muchas gracias!

lgalarra commented 7 years ago

Hola @rubenjo7 ,

En relación al problema con el campo de usuario, tienes que primero crear el usuario en Joomla! y luego importarlo en J!Research para completar el perfil.

Con respecto al problema con la tabla, puedo ver que la última versión de J!Research incluye el campo journal_url en la tabla de publicaciones, por ende no comprendo qué pasó. Revisando el código noté que dicha columna fue agregada en la versión 3.1.

Por alguna razón mi filtro de spam marcó esta conversación como correo basura. Ya lo he solucionado, así que no dudes en contactarnos en caso de cualquier inconveniente. Estoy disponible.

Saludos, Luis

rubenjo7 commented 7 years ago

Perfecto, muchas gracias. Pero no entiendo como hacer lo de importar el usuario ya creado en J!Research, ya que el cuadro sale bloqueado y si lo desbloqueo, no se guarda la información que hay en él.

Muchas gracias, saludos!

lgalarra commented 7 years ago

s3 s2 s1 staff_import

Observa la secuencia. J!Research no te permite editar el campo de "username" porque es una clave foránea a la tabla de usuarios. La única forma de obtener un valor para ese campo es importando (última imagen) el usuario. Una vez importado puedes editar cualquier otro de los campos.

Saludos, Luis

rubenjo7 commented 7 years ago

Am perfecto! ahora si que lo he entendido!! Muchas Gracias por todo, saludos!

rubenjo7 commented 7 years ago

Buenas noches de nuevo! Me está surgiendo un problema con la edición de publicaciones. Tengo una categoría de usuarios de joomla! que tiene los permisos que aparecen a continuación en la imagen adjunta.

captura

Lo que necesito es que el autor que publique un articulo por ejemplo, solo pueda editar sus propias publicaciones. Con los permisos mostrados en la imagen nos sale la edición solo de los que hemos publicado, hasta ahí todo correcto, pero a la hora de editar, cuando nos sale el formulario, y guardamos, los cambios no se guardan...

Sin embargo, si permito el permiso que falta en la imagen, tengo acceso a la edición de todas las publicaciones, y si se editan bien..

¿A qué puede ser debido?

Muchas gracias de nuevo, saludos!

lgalarra commented 7 years ago

Hola @rubenjo7,

¿Hay algún mensaje de error que nos podrías reportar? Tal parece que se trata de un fallo. El sistema te muestra el formulario, pero no te deja guardar los cambios. La línea 463 en https://github.com/carcam/jresearch/blob/master/src/site/controllers/publications.php es la que se encarga de determinar si un usuario tiene permiso de guardar un cambio en la base de datos:

        $canProceed = $canDoPubs->get('core.publications.edit') ||
                ($canDoPubs->get('core.publications.edit.own') 
                && $publication->created_by == $user->get('id'));

Estimo que $canProceed es falso. Dado que $canDoPubs->get('core.publications.edit') es falso, mi teoría es que $publication->created_by == $user->get('id') está retornando falso también. ¿Existe forma de hacer un debugging in situ de tu sitio web? Me gustaría imprimir el valor de esas tres expresiones.

Saludos, Luis

rubenjo7 commented 7 years ago

Tras realizar el debugging, $canProceed = $canDoPubs->get('core.publications.edit') es Falso, $canDoPubs->get('core.publications.edit.own') es Verdadero y $publication->created_by == $user->get('id') es Falso, por lo que al final se devuelve Falso.

¿Qué se puede hacer al respecto? Saludos y gracias!

rubenjo7 commented 7 years ago

Otra pregunta, si entro como administrador si me deja modificar todos los campos, salvo el de los miembros, que no se muestra. ¿Esto es así? o ¿debería mostrarse para poder editarse? En el caso de que se pueda editar, ¿como podría ponerlo?

Saludos y gracias de nuevo!

lgalarra commented 7 years ago

Hola,

Perdona la demora en la respuesta. Si $publication->created_by == $user->get('id') es falso entonces significa que el usuario que trata de editar la publicación no fue quien la creó. ¿Es el caso? ¿Sería posible imprimir ambos valores de $publication->created_by y $user->get('id')? De igual forma te pediría que proveyeras el id del usuario de la sesión (para verificar que $user->get('id') está retornando el valor correcto)

Otra pregunta, si entro como administrador si me deja modificar todos los campos, salvo el de los miembros, que no se muestra.

Cuando dices "salvo el de los miembros", ¿te refieres a los autores? De ser el caso, no es normal. Un administrador debería ser capaz de editar todos los campos. ¿Podría aclarar eso?

La comunicación puede ser un poco lenta. Si tu sitio web puede ser accedido de de forma pública, estaré gustoso de hacer una depuración de los errores. En ese caso necesitaría credenciales para poder reproducir los problemas.

Saludos, Luis