Pagehandler

Elgg offers a facility to manage your plugin pages via a page handler, enabling custom urls like `http://yoursite/pg/yourplugin/your_view' (note the `pg` prefix, necessary for the pagehandler to process your url).

To get started, define a page handler in your plugin's `start.php`, and be sure to register it:

function yourplugin_page_handler($page) {
    switch ($page[0])
    {
        case 'index':
            // Your code for creating a view
            break;
        case 'your_view':
            ...
    }
}
 
register_page_handler('entity_type', 'yourplugin_page_handler');

`register_page_handler()` first argument is your entity type, for example 'blog', the second argument is the your plugin function handling the request which will get passed as an array in `$page`, broken down to the path elements. With this information you'll be able to load views according to the url being requested.

Search docs