Ver Mensaje Individual
  #6 (permalink)  
Antiguo 21/01/2011, 14:49
Avatar de Trublux
Trublux
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 355
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: Sistema web para administrador y usuarios

Se puede hacer con eZ Publish, yo lo haría así (no es la única forma pero es como yo lo haría):

Restringir el acceso a la web:

1º Creo una sección nueva llamada "Acceso restringido" en "Configuración" > "Secciones".
Asigna está sección a todo el contenido que haya por debajo del nodo 2 (el principal).

2º Crea un grupo nuevo por ejemplo "Usuario que ven sus datos" (no se me ocurre otro nombre).
En este grupo irán los usuarios.

3º Creo un rol nuevo llamado "Restringir" en "Usuarios" > "Roles y políticas" y le pongo de política en los combos que aparecen "section - assign", pulso en "Dar acceso limitado", saldrán unas cajas para que elijas donde puede acceder, en la última vienen las secciones, pulsa en "Acceso restringido" (es la sección que creamos antes), luego en "Ok" y luego en "Guardar".
Ahora saldrá un botón que pone "Asignar" pulsa en él y asígnaselo al grupo que habíamos creado antes.
Ve a "Usuarios" > "Roles y políticas" > "Anonymous" y asígnale al grupo también el rol de los usuarios anónimos (es para que tengan acceso a cosas básicas).

4. También borraría el contenido que ponen por defecto debajo del nodo 2.

Ahora, si estando deslogueado entras en la web, te saldrá un aviso de que es una zona restringida y el formulario para meter tu usuario y contraseña.
Si entras con un usuario del grupo "Usuarios que ven sus datos" (ó con un usuario "Administrador") verás la página por defecto que tenga el nodo 2.

Cambiar la vista:

En eZ Publish los objetos pueden tener distintas vistas (line, full, etc.) y se pueden especificar dependiendo de varias cosas (sección, clase, clase del padre, nodo, nodo del padre). Para este caso habría que crear una vista específica para el nodo 2 (podríamos sobreescribir la vista de la clase del nodo 2, pero prefiero hacerlo así, es más concreto)

1. Cambiar el override de tu siteaccess para modificar la vista que se muestra cuando ves el nodo 2:
[ContenidoDeCadaUsuario]
Source=node/view/full.tpl
MatchFile=full/contenido_usuario.tpl
Subdir=templates
Match[node]=2

Esto quiere decir que cuando se esté visualizando la vista full (Source=node/view/full.tpl) del nodo 2 (Match[node]=2) se tiene que buscar el archivo que está en full/contenido_usuario.tpl (MatchFile=full/contenido_usuario.tpl).

Con esto buscará el archivo en (buscará en todos los diseños y en las extensiones y usa el que encuentre primero):
./design/<tu-diseño>/override/templates/full/contenido_usuario.tpl

2. Contenido de la plantilla:
El contenido de la plantilla sería algo así, dependiendo de los campos que tengas:
{def $usuario_logueado = fetch( 'user', 'current_user' )}
Usuario: {$usuario_logueado.login}<br/>
Email: {$usuario_logueado.email}<br/>

Nombre: {attribute_view_gui attribute=$usuario_logueado.contentobject.data_map .first_name}<br/>
Apellido: {attribute_view_gui attribute=$usuario_logueado.contentobject.data_map .last_name_name}<br/>
Foto: {attribute_view_gui attribute=$usuario_logueado.contentobject.data_map .image}<br/>
(…)

{undef $usuario_logueado}

Se podrían sacar haciendo un bucle pero se este modo los puedes sacar en el orden que quieras y si hay alguno que no quieres sacar no lo pones.

Cambiar los atributos de los usuarios:

La clase "User" de eZ Publish viene con unos atributos por defecto:
First name, Last ame, User account, Signature e Image son los que suelen venir. Para cambiarlos ves a "Configuración" > "Clases" > "Users" y edita la clase usuario, puedes eliminar y añadir los que quieras excepto el "User account" que es lo que hace que la clase sea la clase de un "usuario".
En eZ hay varios tipos de datos "Línea de texto", "Imagen" (puedes recortar, poner marcas de agua…), "Bloque de texto" (es un bloque de texto simple, sin html), "Bloque de XML" (este es para html viene con un editor wysiwyg llamado eZOE), "Entero", "Objeto relacionado", "Fecha", "Hora", "Email", "Dirección GMap" (mapa de GoogleMaps), "Star rating" (votación), "ISBN"… También se pueden añadir con extensiones, como "eZVideoFLV" (es un campo para subir un video, lo transforma automáticamente a FLV).

Bueno, espero haberme explicado bien, si no entiendes algo avísame.