The file and file path keys are only needed to load the page callback itself. You are correct that url() et al should exist long before you get to the page callback. That suggests something else is wrong.
Also note that in D6, you do *not* need to specify a file key if the callback is in the .module file. You only need to do so if it is in a different file. (Mind you, you should be putting your page callback in separate files for performance reasons.)
Try moving the callback to a mymodule.pages.inc file and updating the menu item accordingly, or else remove the file key completely and keep the page callback in the .module file. Remember to refresh your menus by hitting the clear cache button on the Performance page. See if it works now.
On Tuesday 24 June 2008 7:27:36 am Matt Connolly wrote:
I'm writing a module to custom drupal for our needs.
My question is about including files.
I have some page callbacks, which are defined in my hook_menu function like so:
$items['mymodule/myaction'] = array( 'title' => 'Custom Action', 'page callback' => 'mymodule_myaction', 'type' => MENU_CALLBACK, 'file' => 'mymodule.module', 'access callback' => TRUE, );
However, common functions, such as `url()` cannot be used because they are not included.
I would have thought that `/includes/common.inc` would be already included, since drupal has got far enough to call my page callback function.
In my handler function, I have had to include:
require_once './includes/common.inc'; require_once './includes/path.inc';
to access drupal's functionality that I want.
Or have I missed something really obvious!!?
-matt