We can add a custom block with php code easily. Just enable php code and add a block. But what about a page? How can I add a page with custom php code?
1 Answer
Since you already know how to provide a block through a custom module here is what you need to add:
/**
* Implements hook_menu().
*/
function modulename_menu() {
$items['your/special/path'] = array(
'type' => MENU_NORMAL_ITEM,
'title' => t('Title'),
'description' => 'My custom and very special page',
'page callback' => 'modulename_special_page',
'access callback' => 'user_access',
'access arguments' => array('access content'),
);
return $items;
}
/**
* Page callback.
*/
function modulename_special_page() {
$content = 'Hello World';
// ... do something and add to $content;
return $content;
}
So first you need to register a path by implementing hook_menu and there you need to provide a page callback which itself returns the contents of your page.
Check out the example modules for further variations. There is one submodule that shows a lot of examples regarding registering new pages/tabs/etc.