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

Funcionamiento de paginas en DRUPAL

Estas en el tema de Funcionamiento de paginas en DRUPAL en el foro de Drupal en Foros del Web. Buenas, me estoy haciendo un lio para entender como funciona Drupal :S, estoy buscando en foros y paginas hasta en la misma pagina de Drupal ...
  #1 (permalink)  
Antiguo 27/12/2010, 08:58
 
Fecha de Ingreso: abril-2009
Mensajes: 52
Antigüedad: 15 años, 7 meses
Puntos: 0
Funcionamiento de paginas en DRUPAL

Buenas,
me estoy haciendo un lio para entender como funciona Drupal :S, estoy buscando en foros y paginas hasta en la misma pagina de Drupal pero no llego a entender como puedo manejar todo lo que aporta Drupal.

1- Las paginas, segun lo que he leido se puede crear tantas paginas como quisiera "page-ejemplo1","page-ejemplo2"..etc y declararlos en template ¿Es asi?¿como hago referencia a una pagina desde otra? por ejemplo: Si quiero crear una vista (View)que tenga datos extraidos desde BBDD con botones que me llevan a otras paginas.

2- Como puedo guardar datos de un formulario (CCK)en tabla creada por mi y no en tablas existentes de drupal (en todos los foros pone que debo crear un modulo nuevo pero no consigo hacerlo funcionar).

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 27/12/2010, 13:00
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 15 años, 1 mes
Puntos: 265
Respuesta: Funcionamiento de paginas en DRUPAL

Yo creo que tenes que empezar un poco mas "despacio" en este mundo de Drupal, en realidad no solo de Drupal, si no de cualquier gestor de contenidos que vayas a usar.

Viste que cuando vos haces una pagina estatica, creas un fichero "pagina.php" o "pagina.html" y pones dentro el contenido? Bueno, en Drupal es igual, vos creas una pagina (o story, o cualquier tipo de contenido que vos crees)...le pones un cuerpo, un titulo, una url, y listo. Tenes tu page-ejemplo1 ... y asi tendras lo que vos quieras.

A que te referis con hacer referencia? Enlazar una desde otra? En el cuerpo de page-ejemplo1 pones un enlace a page-ejemplo2 y listo, vos podes poner html dentro del cuerpo, y ahi es donde entran en juego los formatos de entrada, y quienes pueden usar html y quienes no (pq no vas a dejar que los usuarios anonimos te pongan html en tu web, te llenan de scripts de javascript y te matan la web, por decir un ejemplo).

Vos podes hacer una vista de todas las paginas que vos quieras, ahora, si queres que las vistas muestren botones.....dificil lo tenes q sea automatico, ahi ya tenes que ver un poco la documentacion del modulo views, que creando ficheros podes hacer overrides de los campos, y ponerles el codigo html que quieras, hasta usar la api de drupal para complementar datos.

Para hacer lo que pedis en el punto 2, si o si tenes que crear tu propio modulo, te dejo un enlace para que veas como crearlo:

http://blog.solucionex.com/drupal/c%...lo-en-drupal-6

No vi ni lo que tiene dentro el tutorial, si solo pones "Crear modulo drupal" en Google salen muchas paginas.
En un modulo, vos podes interceptar acciones en Drupal, los llamados hooks, entonces vos te creas un hook para el momento en el que se guardan datos en la base de datos (interceptas ese momento), y los guardas en tu tabla. En tu caso, tendrias que usar el hook_nodeapi, aplicandolo en el momento en el que haces un save en un nodo creado.

De todos modos creo q tenes q empezar desde muy abajo...pq si no sabes usar el modulo views, dudo que puedas hacer tu propio modulo, y menos que menos aplicar un hook.

Saludos.
  #3 (permalink)  
Antiguo 02/01/2011, 16:30
 
Fecha de Ingreso: abril-2009
Mensajes: 52
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Funcionamiento de paginas en DRUPAL

Buenas Mario,
gracias por responderme, estaba mirando estos dias si se puede modificar el modulo CCK para que almacene los datos de cada formulario en su tabla correspondiente(personalizadas) pero no hay nada en internet y no veo en que método se obtiene los datos del formulario y en que linea se insertan los datos de formulario :S.

Estoy ahora intentando crear mi modulo (tendré que crear un modulo para cada formulario ya que son distintos y se almacenan los datos insertados en tablas personalizadas diferentes) y consegui que se añada el el menu pero no consigo que se visualise cuando se hace el click en el menu, es decir, por ejemplo el modulo creado es 'formulario'y aparece en el menu pues al darle a 'formulario' aparece una pagina en blanco como si no no leiera lo que hay en function formulario_form().
Este es mi formulario.modulo

function formulario_menu() {
$items['formulario'] = array(
'title' => 'formulario',
'page callback' => 'formulario',
'access callback' => TRUE,
'access arguments' => array('content type'),
'type' => MENU_NORMAL_ITEM,//aparece en el menu
);
$items['menu_mas'] = array(
'title' => 'Ejemplo formulario',
'page callback' => 'drupal_get_form',
'access callback' => TRUE,
'access arguments' => array('content type'),
'type' => MENU_NORMAL_ITEM,//aparece en el menu
);

return $items;
}
function formulario_page(){
return drupal_get_form('formulario_form');
}
function formulario_form() {
$form['formulario']=array(
'#title' => t('name'),
'#type' => 'textfield',
'#description' => t('Please enter your name'),
);
$form['submit']=array(
'#type' => 'submit',
'#value' => t('Submit'),
);
return $form;
}

function formulario_form_submit ($form_id,$form_values){
$Message = 'Se han presentado los';
drupal_set_message(t('$Message'));
}


No sé porque no veo el formulario.

supongo que en el $form['submit'] tengo que apuntar a otro metodo que es el que se encarga de almacenar los datos en la tabla correspondiente ¿verdad?

Muchas gracias de antemano.

Un saludo
  #4 (permalink)  
Antiguo 02/01/2011, 17:47
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años
Puntos: 890
Respuesta: Funcionamiento de paginas en DRUPAL

CCK Exitiende y agrega tablas y campos adicionales relacionados al NODO.
Debes entender que la base de Drupal es el NODO y no puedes evitarlo todo tiene que pasar por el.

Podrías hacer que Cada tipo de contenido tenga su propia tabla pero no tiene sentido ni logica ya que perderías todo control sobre los nodos, tendrias que hacer una reprogramación o extender del Core y eso no es buena idea. Por eso no encuentras nada relacionado a eso.

Para que quieres hacer eso, que intentas lograr guardando en tablas separadas? Si empiezas por decir que resultado esperas tener te podría ayudar.

Saludos ;)
__________________
Drupal Argentina
  #5 (permalink)  
Antiguo 03/01/2011, 03:02
 
Fecha de Ingreso: abril-2009
Mensajes: 52
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Funcionamiento de paginas en DRUPAL

Buenas NUCKLEO,
sé que CCK almacena estos campo en la tabla nodo_..., pero necesito que se almacenen en diferentes tablas, a lo mejor no debe ser asi en Drupal.
Les cuento de que va mi proyecto:
-Nada mas autenticarse depende del usuario autenticado(si es profesor o alumno) aparecera una vista con los datos obtenidos de la tabla correspondiente al tipo de usuario autenticado, es decir, si es profesor tendrá una vista que muestra el contenido de la tabla Profesor y si es alumno tendrá una vista que muestra el contenido de la tabla Alumno.

- En la vista anterior cada uno tendrá un boton que lleve a distintos formularios, el profesor al formulario del profesor y el alumno al formulario del alumno.cuando se rellena el formulario y se pulsa submit los datos se deben de guardar en sus tablas correspondientes (profesor o alumno).

-El profesor en su sesion tiene que tener una boton para ver los datos guardados de todos los alumno o de algun alumno en especial.(el alumno puede rellenar tantos formularios como quiera, el formulario es para subir practicas).

Para eso tengo creadas 2 tablas profesor y alumno que tienen un comun un campo id_test que representa el identificado del test que sube el profesor.


El planteamiento de BBDD es correcto o se puede hacer de otra forma en drupal?

Muchas gracias.
  #6 (permalink)  
Antiguo 03/01/2011, 11:08
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años
Puntos: 890
Respuesta: Funcionamiento de paginas en DRUPAL

no entiendo bien, primero deberias analizar bien(si no lo has hecho aun por ejemplo :

Profesor tiene acceso a sus alumnos o todos los alumnos
Alumno puede editar sus notas o solo sube, puede visualizar sus notas?
Los alumnos son dados de alta manualmente, lo mismo los profesores?
Los profesores solo tienen acceso a las notas o tambien pueden editar eliminar, crear sus propias notas?

No creo que haga falta hacerlo como pretendes, hay varios modulo que prodrias usar aparte de crear los roles(alumno / profesor), y el sistema de permisos:

Hay varios de node access by role. Por ejemplo este http://drupal.org/project/node_privacy_byrole

Ya me cuentas.

Saludos.
__________________
Drupal Argentina
  #7 (permalink)  
Antiguo 04/01/2011, 03:02
 
Fecha de Ingreso: abril-2009
Mensajes: 52
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Funcionamiento de paginas en DRUPAL

Buenas,
siento explicarme tan mal :S. Explico ahora con mas detalles lo que intento hacer:

Tenemos 2 tipos de usuario Profesor y Alumo.
Tenemos 3 Tablas en BBDD de drupal personalizadas:
Profesor: id,nombre_usuario,id_test [donde se insertan los datos introducidos en el formulario de profesor]
Alumno:id,nombre_usuario,id_test,practica, definitiva,nota [donde se insertan los datos introducidos en el formulario de alumno]
Test:id_test, test. [Aqui se guarda el adjunto del formulario de profesor].

1-Si el autenticado es profesor:

Aparece una vista con sus datos personales y justo debajo los datos suyos almacenados en la tabla Profesor, es decir todos los test que introdujo.
En cada linea que muestra el test tiene que tener 2 botones que permiten: 1- ver el test y 2- ver las practicas que han elegido el test(en esta pantalla se verá el nombre del alumno y las versiones de practicas que ha subido). En la misma pantalla tiene que haber un boton que permite añadir un test (que lleva al formulario que he llamado formulario Profesor).
Cuando accede el profesor a las practicas las puede visualizar una por una (con un boton), y si ve que el alumno marcó alguna como definitiva tendrá que ponerle nota.

2-Si el autenticado es Alumno

Aparece una vista con sus datos personales y debajo los datos suyos almacenados en la tabla Alumno, tambien tendrá 3 botones 1- ver la practica, 2- para ver los test 3-para pasar el test. En la misma pantalla tiene que haber un botn que permite añadir una practica (que lleva al formulario que he llamado que llamo yo formulario alumno).
Si le doy a ver test me aparecen todos los test subidos por distintos profesorres, si le doy a ver practicas aparecen todas las practicas subidas por el alumno y si le doy pasar test me tiene que pasar el test para ver mis errores.

Resumiendo:

1- Cualquiera se puede registrar manualmente y elegir su tipo de usuario (Eso lo que hice es añadir campos en el formulario registrar).
2- Profesor puede visualizar sus datos y los datos y practicas de los alumnos que han elegido su test.
3- Profesor puede subir tantos test como quisiera
4- Profesor pone la nota definitiva a la practica definitiva, marcada por el alumno como tal, y se guarda en la tabla Alumno.

5- Alumno puede visualizar sus datos personales y sus practicas subidas
6- Alumno puede visualizar los test subidos por los profesores para poder elegir uno.
7- Alumno elige una version definitiva (con un boton)
8- Alumno cuando elige una practica como la definitiva (la válida por decirlo de alguna forma) se le actualiza la pantalla y aparece la misma que antes pero con la definitiva y la nota puesta por el profesor.

No sé si me he explicado mejor esta vez :D.
Lo que tengo hecho y lo que estoy pelenado por resolverlo:

1- para registrarse he modificado el formulario registrar añadiendo los campos que faltan, tipo de usuario,apellidos,edad....etc.
2- Para subir Test o practica quiero crear 2 formularios distintos cada uno con sus campos correspondientes y que almacenen los datos en tablas diferentes (Eso es lo que no sé como hacer para almacenar los datos, de formulario creao en CCK, en tablas propias).
3- Visualizar los datos he visto que hay el VIEW pero claro estamos en lasmismas tengo que recuperar los datos de las tablas personalizadas.

De momento me he quedado alli :S.

Lo del nodo_privaty esta muy bien , para limitar el acceso a formularios.

Muchas gracias de antemano.

Última edición por juanaDe; 04/01/2011 a las 03:57
  #8 (permalink)  
Antiguo 04/01/2011, 16:54
 
Fecha de Ingreso: abril-2009
Mensajes: 52
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Funcionamiento de paginas en DRUPAL

Buenas,
creo que voy entendiendo como funciona Drupal. Para hacer lo que he contado antes se puede crear los formulario con CCK y visualizarlos con View sin crear las tablas personalizadas (Estoy haciendolo espero que me funcione).
En drupal se trabaja con Nodos, gracias Nucklear y ya voy entiediendo como va.
Ahora mi duda es, en view ¿se puede añadir botones que apuntan a otras paginas?.


Muchas gracias

Saludos

Etiquetas: funcionamiento
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 08:19.