Search code examples
phpdrupaldrupal-6drupal-viewsdrupal-modules

Create a standard page and table in drupal module with PHP


I made a module with a simple menu structure. I am able to programmatically retrieve a view of all my students in PHP. Now, I want to return all the students on a page in a simple table.

  • How can I make a standard page?
  • How can a return the values in a simple table?

The structure of the table is

UGhentID Name student First name student Location student

12874749 Smith Nick New York . . .


Solution

  • If you want to create a new page, you need to use hook_menu in a module.

    For 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;
    }
    

    You can see here that I call "mymodule_table()" in the page callback, this is where you build your table.

    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;
    }
    

    This should output a table, with a header a a line a rows, with 5 columns.