2012-04-13 19 views
9

Estoy usando Liferay 6 para el desarrollo del portal. Durante la creación de usuarios en Liferay, ¿necesito agregar algunos campos adicionales también? Por favor, avíseme si esto es posible o no?¿Es posible agregar campos adicionales en Crear usuario en Liferay

Por favor, vea la captura de pantalla adjunta aquí, y también, por favor, ¿en qué tabla se almacenará en la base de datos?

enter image description here

Respuesta

3

sí, se puede añadir campos personalizados a la facilidad de entidad y les agregue los valores de campo de usuario:

user.getExpandoBridge().addAttribute(...); 

campo Custim para la facilidad de entidad puede crear mediante el Panel de control Portal->Custom Fields o programáticamente en liferay start.

Los datos se almacenarán en las tablas ExpandoValue.

11

Sí, puede usar Custom Attributes functionality para entidades liferay (en su caso, Usuario) y puede agregar tantos campos adicionales como sea necesario para cada entidad liferay.

El campo personalizado para la entidad de usuario se puede crear a través de: Panel de control -> Portal -> Campos personalizados -> Usuario.

y programáticamente se pueden crear de la siguiente manera:

user.getExpandoBridge().addAttribute("yourCustomFieldKey"); 

A continuación, establezca el valor como:

user.getExpandoBridge().setAttribute("yourCustomFieldKey", "valueForCustomField"); 

Si el campo personalizado ya está presente se puede comprobar de esta manera:

if (user.getExpandoBridge().hasAttribute("yourCustomFieldKey")) { ... }; 

Los datos se almacenan en tablas con el prefijo "EXPANDO":

  • EXPANDOCOLUMN: almacena la clave de campo personalizado y otros ajustes (contiene los refrences IDtabla)
  • EXPANDODATA: almacena el valor del campo personalizado de la clave (contiene los ColumnID y IDtabla refrences)
  • EXPANDOTABLE: tiendas para los que Liferay entidad (usuario) se le añadió el campo personalizado
  • EXPANDOROW: tiendas de vincular la información entre un usuario y sus valores (contiene IDtabla y UserId refrences)

Espero que esto ayude.

0

La página de creación de usuario en liferay se puede personalizar. De hecho, puede decidir qué campos estarán presentes en la página de creación del usuario.More about this in here.

3

Sólo en caso de que alguien intente recuperar los valores de los campos personalizados y está teniendo problemas con valores nulos devueltos por el método user.getExpandoBridge().getAttribute("yourCustomFieldKey") (incluso cuando ha seguido las discusiones acerca de los permisos), encontré otra manera de recuperar el los valores de los campos personalizados:

ExpandoTable table = ExpandoTableLocalServiceUtil.getDefaultTable(user.getCompanyId(), User.class.getName()); 
ExpandoColumn column = ExpandoColumnLocalServiceUtil.getColumn(table.getTableId(), "yourCustomFieldKey"); 
ExpandoValue expandoValue = ExpandoValueLocalServiceUtil.getValue(table.getTableId(), column.getColumnId(), user.getUserId()); 

entonces usted puede hacer un simple (si el campo es de texto) expandoValue.getString();

No

tan bonita, pero hacen el trabajo.

0

Utilice los siguientes comandos si obtiene el problema de permiso al agregar o establecer un atributo.

user.getExpandoBridge().addAttribute("yourCustomFieldKey",false); 
user.getExpandoBridge().setAttribute("yourCustomFieldKey", "valueForCustomField",false); 
Cuestiones relacionadas