Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » Drupal »

[SOLUCIONADO] Dos versiones del mismo sitio!

Estas en el tema de Dos versiones del mismo sitio! en el foro de Drupal en Foros del Web. Hola. Me explico. ¿Tienen en mente los sitios multiidioma? Pues lo que quiero se parece mucho. Digamos que nuestra página trata sobre educación sexual, y ...
  #1 (permalink)  
Antiguo 31/08/2015, 13:58
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 2 meses
Puntos: 22
Pregunta Dos versiones del mismo sitio!

Hola.

Me explico. ¿Tienen en mente los sitios multiidioma? Pues lo que quiero se parece mucho. Digamos que nuestra página trata sobre educación sexual, y está dirigida a niños y adolescentes. Hay muchas secciones que se muestran por igual a niños que a adolescentes. Pero no todas. Habrá algunas secciones cuyo contenido difiera, por la sensibilidad del tema.

¿Cómo hacer un sitio multicontenido, es decir, una versión para adolescentes y otra para niños?

Saludos!
  #2 (permalink)  
Antiguo 01/09/2015, 02:10
 
Fecha de Ingreso: junio-2012
Ubicación: Madrid
Mensajes: 339
Antigüedad: 11 años, 10 meses
Puntos: 47
Respuesta: Dos versiones del mismo sitio!

¿cómo filtra la edad del chaval?, ¿con un menú donde selecciona la edad o al entrar le pregunta? ¿abre sesión como usuario?
  #3 (permalink)  
Antiguo 01/09/2015, 07:28
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 2 meses
Puntos: 22
Respuesta: Dos versiones del mismo sitio!

Cita:
Iniciado por JustinKO Ver Mensaje
¿cómo filtra la edad del chaval?, ¿con un menú donde selecciona la edad o al entrar le pregunta? ¿abre sesión como usuario?

Gracias por responder, JustinKO.

No va a ver login de ninguna clase. La idea es que en la página de inicio de Drupal sólo haya dos imágenes que representen a los niños de primaria y otra imagen para los de secundaria.

Según lo que elijan, ese será el modo como sabremos si se le muestra el contenido para primaria o para secundaria.

No sé, pero imagino que algo tendrá que ver con pasarle a la URL un valor inicial, como: http://midominio.com/?q=primaria/vid...ucacion-sexual

¿No?

SALUDOS!
  #4 (permalink)  
Antiguo 02/09/2015, 07:42
 
Fecha de Ingreso: junio-2012
Ubicación: Madrid
Mensajes: 339
Antigüedad: 11 años, 10 meses
Puntos: 47
Respuesta: Dos versiones del mismo sitio!

Hola de nuevo,

No sé, lo de pasar parámetros por la uRL me parece un poco complejo porque deberías de estar pasando esa variable continuamente para no perderla ¿no?

Más que pensar en una web multiidioma pensaría en el carrito de la compra de Drupal_commerce en la que se guardan los productos si haber abierto sesión de usuario, me explico:

1 - al tipo de contenido le creas un campo en el que cada vez que crees un nodo le digas si es para "mayores" o no
2 - Al entrar en el sitio, cuando dieran al "botón" en el que dicen su edad se cree una variable de session de usuario anónimo.
.
3 - Luego con hook_node_acces() das acceso o no al nodo: obtienes la variable del nodo y creas un condicional permitiéndole el acceso o no al nodo dependiendo de las dos variables.

No he usado nunca el hook_node_access, pero en su día. como no conocía esta función, hice lo mismo pero en la plantilla de node.tpl.php (o en page..tpl.php ahora no recuerdo), en la que obtenía el nid (numero de nodo), luego con esta obtenía la variable del nodo donde dice la edad (que te decía en el 1º paso ) y con un if le decía si podía mostrar la página dependiendo de esta última y de la de session y o le enviaba a la típica de "acceso denegado si no cumplía la condición).


Otra cosa son las imágenes, estas si tendrán acceso por URL, pero para esto también hay un hook maravilloso, que guardando las imágenes en la carpeta private, puedes hacer lo mismo que en el nodo.

No sé si me he explicado my bien, pero creo que no es complicado de hacer, si no me he explicado bien o lo que sea te cuento más detalladamente.


(por supuesto, lo mismo hay un módulo que lo haga, lo desconozco, pero aunque lo hubiera, creo que instalar un módulo para esto no sé si merece la pena)

saludos

Última edición por JustinKO; 02/09/2015 a las 07:53
  #5 (permalink)  
Antiguo 02/09/2015, 21:30
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 2 meses
Puntos: 22
Pregunta Respuesta: Dos versiones del mismo sitio!

Creo que tienes razón con eso de que resultaría muy cansado eso de pasar parámetros a la URL. Me parece mejor lo de las sesiones.

Cita:
Iniciado por JustinKO Ver Mensaje
...pensaría en el carrito de la compra de Drupal_commerce en la que se guardan los productos si haber abierto sesión de usuario
Estuve leyendo y veo que por default, hay sesiones en Drupal. Así que aunque el visitante no se loguee, detrás hay una sesión anónima. Ya empezamos bien.

El status está así: Cree un formulario para filtrar al visitante. Dependiendo lo que elija, se crea una variable de sesión llamada primaria, o bien secundaria.

NOTA:
Aquí en México la educación básica se divide en 2, primaria y secundaria. La primera dura 6 años, la segunda 3 y es la antesala de la educación média superior. Imagino que en España los tipos de educación se llaman distinto, ¿no?


También, como indicaste, cree un nuevo campo llamado categoría dentro del tipo de contenido. Así que cuando genero un nuevo artículo, estoy obligado a seleccionar si está dirigido a primaria o a secundaria. E hice que el alias para ese tipo de contenido contenga dicha categoría. Cree 2 artículos con el mismo nombre pero con distinta categoría:
  1. http://localhost/www/drupal/primaria/educación-sexual
  2. http://localhost/www/drupal/secundaria/educación-sexual

Partamos de aquí, ¿te parece?

Hablas de hook_node_acces() y de hacer if's con él. Digamos que tenemos 100 artículos en 20 secciones. No resultaría muy práctico hacer 100 if's para cada artículo.

Cómo ves.
  #6 (permalink)  
Antiguo 03/09/2015, 02:48
 
Fecha de Ingreso: junio-2012
Ubicación: Madrid
Mensajes: 339
Antigüedad: 11 años, 10 meses
Puntos: 47
Respuesta: Dos versiones del mismo sitio!

No, no tienes que hacer uno por cada artículo en ninguna de las dos maneras que te he comentado.

Tanto en el sistema del page.tpl como en el del hook_node_acces. lo qeu hace Drupal (explicado de mi manera poco profesional) es, una vez que recibe la petición por la URL antes de renderizar la página es chequear si algún módulo (en el caso del módulo con hook) va a realizar algo.
  1. En este caso, abririas el hook
  2. obtendrías el $nid (id del nodo) que va a ser renderizado.
  3. con ese nid, obtendrías el objeto del nodo y de éste la variable del campo "categoría"
  4. Por otro lado obtendrías la variable de sesion (pon que en este caso es "secundaria")
  5. Y con un if dirías, "si este usuario es de primaria pero el nodo es de secundaria return NODE_ACCESS_DENY ).



Sería algo así (te lo hago sin comprobar nada y reutilizando un codigo mío parecido de un hook_menu. Tómatelo solo como orientación, además recuerda que no soy programador)
Código PHP:
Ver original
  1. $node = menu_get_object();
  2. if ( !empty($node) ) {
  3. //obtenemos el nid
  4.    $nid = $node->nid;
  5.   $node = node_load($nid);
  6.   $node_categoria = field_view_field('node',$node ,'field_categoria',array('default'));
  7.   // con un dump ves el objeto  $node_categoria y extraes la variable.
  8.   // después obtendrías la variable de sessión
  9.   // aquí pasarías el condicional
  10.  
  11. }


EN el Page.tpl. sería parecido, pero la operación se haría justo cuando la página se está renderizando y en este caso puedes acceder a $node (o $node ->nid) directamente puesto que la usa para renderizar la página.

Por cierto, instalaste el módulo Devel si no lo haas hecho.

Dime si me he expicado, pero me resulta muy difícil hacerlo, pero la idea creo que más o menos se entiende ¿no?
  #7 (permalink)  
Antiguo 03/09/2015, 02:53
 
Fecha de Ingreso: junio-2012
Ubicación: Madrid
Mensajes: 339
Antigüedad: 11 años, 10 meses
Puntos: 47
Respuesta: Dos versiones del mismo sitio!

Perdona, acabo de releer tu último post,

Lo que yo entendí y es que hay artículos que valen para todos los públicos y otros que solo lo pueden leer los de secundaria. ¿no es así? a uno de primaria le daría acceso denegado y al otro no. O en caso de haber listado de nodos a los de secundaria le mostraría todos y al de primaria solo los de primaria ¿no es así?

NO sé porqué has hecho dos artículos iguales con dos categorías distintas.

Última edición por JustinKO; 03/09/2015 a las 03:02
  #8 (permalink)  
Antiguo 03/09/2015, 06:43
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 2 meses
Puntos: 22
De acuerdo Respuesta: Dos versiones del mismo sitio!

¡Eureka!
Hay una cosa que se llama serendipia, que consiste en descubrir algo bueno sin querer. Pues eso acaba de pasar con el problema de este post.

JustinKO, hace unos 20 minutos puse a prueba lo que comentaste en el otro post, sobre poner URL's relativas.

Tenía yo un artículo categorizado como primaria, este:
http://localhost/www/drupal/primaria/educación-sexual

Le puse este link:
<a href="videos">Ir a videos</a>

Resultó que al dar clic al link, el navegador accedió a:
http://localhost/www/drupal/primaria/videos

Como ves, no se perdió la categoría primaria dentro de la URL. Hice más pruebas en local, y estoy viendo que para completar este proceso, basta con crear una taxonomía semejante a esto:

PRIMARIA
- Multimedia
-- Video
-- Audio
-- Wallpapers
-FAQ
-Cuestionario
-Descargas
...

SECUNDARIA
- Multimedia
-- Video
-- Audio
-- Wallpapers
-FAQ
-Cuestionario
-Descargas
...

Así, cada vez que cree algún tipo de contenido, lo categorizo según primaria o secundaria. Asunto arreglado .

Última edición por berkeleyPunk; 03/09/2015 a las 06:52
  #9 (permalink)  
Antiguo 03/09/2015, 08:32
 
Fecha de Ingreso: junio-2012
Ubicación: Madrid
Mensajes: 339
Antigüedad: 11 años, 10 meses
Puntos: 47
Respuesta: Dos versiones del mismo sitio!

Obviamente no entendí bien lo que pretendías,

Yo lo que te quería te decía era que la web, era igual para uno que para otro, la misma navegación, y mismas URL, la diferencia es que a unos no se le mostraban todos los nodos puesto que no tenía la edad para verlo, y en caso de que alguno estos metiera la url de un articulo que no era para su edad, prohibía el acceso.

Aunque si te soy sincero, no termino de entender ni lo que quieres hacer ni tampoco la solución que has encontrado con la taxonomía.

Bueno, pues siento no haberte entendido. Seguimos. Un saludo
  #10 (permalink)  
Antiguo 04/09/2015, 09:13
Avatar de berkeleyPunk  
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 2 meses
Puntos: 22
Respuesta: Dos versiones del mismo sitio!

Pues nada, como lo expuse inicialmente, la idea era crear un sitio en dos versiones, tal como se hace con los sitios multiidioma.

En un sitio multiidioma el usuario puede elegir libremente visitar el sitio en inglés o en español, lo único que se le pide es que dé clic en el lugar correcto. Además, puede cambiar de idioma en el momento que lo desee.

La idea es la misma para el sitio en el que trabajo. Si llega un niño de 7 años, la idea es que mientras él no decida otra cosa (regresar al home y dar clic al contenido para adolescentes) se le muestre sólo el contenido para niños.

Saludos!

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:27.