2011-03-29 10 views
5

Hice un módulo con una estructura de menú simple. Puedo recuperar programáticamente una vista de todos mis alumnos en PHP. Ahora, quiero devolver a todos los estudiantes en una página en una tabla simple.Crear una página y una tabla estándar en el módulo drupal con PHP

  • ¿Cómo puedo hacer una página estándar?
  • ¿Cómo se pueden devolver los valores en una tabla simple?

La estructura de la tabla es

UGhentID Nombre del estudiante estudiante de primer estudiante Nombre de la ubicación

12874749 Nick Smith Nueva York . . .

Respuesta

16

Si desea crear una nueva página, necesita usar hook_menu en un módulo.

Para exemple:

/** 
* Implementation of hook_menu. 
*/ 
function mymodule_menu() { 
    $items = array(); 

    $items['myPage'] = array(
    'title' => 'Finances', 
    'page callback' => 'mymodule_page', 
    'access callback' => 'user_access', 
    'access argument' => array('access nodes'), 
); 
    return $items 
} 

/** 
* Page callback 
*/ 
function mymodule_page() { 
    $output = mymodule_table(); 
    return $output; 
} 

Puede ver aquí que yo llamo "mymodule_table()" en la página de la llamada, este es el que construir su tabla.

function mymodule_table() { 
    $rows = array(); 
    // build the table header 
    $header = array(); 
    for ($i = 1; $i <= 5; $i++) { 
     $header[] = array('data' => $i, 'class' => 'header-class'); 
    } 
    $row = array(); 
    for ($i = 1; $i <= 5; $i++) { 
     $row[] = array('data' => $i, 'class' => 'row-class'); 
    } 
    $rows[] = array('data' => $row); 
    $output .= theme('table', $header, $rows, $attributes = array('class' => 'my-table-class')); 
    return $output; 
} 

Esto debería generar una tabla, con un encabezado de una línea a filas, con 5 columnas.

+0

¡Gracias, esa es la solución! – user001

+0

Esto está desactualizado (probablemente para Drupal 6). Para drupal 7 necesita utilizar una versión actualizada, donde los parámetros que se pasan a la función que no sea la primera son una matriz asociativa. Ver mi respuesta agregada a continuación, no tuve suficiente espacio en los comentarios. – DrCord

4

No estoy seguro de lo que quiere decir con una 'página estándar', pero creo que probablemente quiera echar un vistazo al proyecto de ejemplos (http://drupal.org/project/examples), en particular ese page_example módulo.

Para su tabla, Drupal proporciona una función theme_table que es bastante útil. En su forma más simple, pasa una matriz de encabezados y filas y devuelve el html para una tabla.

+0

comentario muy atento! Gracias, – user001

+0

Sí, me gustó su comentario ... cuando proporcione la fuente, no solo cierta respuesta, será útil para la otra –

+0

También hay un ejemplo con Editar y Eliminar opciones por fila como se explicó [* aquí *] (http : //stackoverflow.hex1.ru/a/14682482) – hyip

2

@ Sobre la base de la respuesta de Haza, aquí es una función de creación de la tabla actualizada que trabaja para Drupal 7:

function mymodule_table() { 
    $rows = array(); 
    // build the table header 
    $header = array(); 
    for ($i = 1; $i <= 5; $i++) { 
     $header[] = array('data' => $i, 'class' => 'header-class'); 
    } 
    $row = array(); 
    for ($i = 1; $i <= 5; $i++) { 
     $row[] = array('data' => $i, 'class' => 'row-class'); 
    } 
    $rows[] = array('data' => $row); 
    $data = array(
     'header' => $header, 
     'rows' => $rows, 
     'attributes' => $attributes 
    ); 
    $output = theme('table', $data); 
    return $output; 
} 
Cuestiones relacionadas