Ixonn Group

Create Menu Items

You are here:
< All Topics

If you are creating your custom modules, probably you will want to create menu items that will be shown on admin area sidebar or clients area navigation.

With Ixonn you can easily achieve this with few lines of code.

The code samples below, should be places in the module init file.

Admin Area

hooks()->add_action(‘admin_init’, ‘my_module_init_menu_items’);

 

function my_module_init_menu_items(){

    $CI = &get_instance();

 

    $CI->app_menu->add_sidebar_menu_item(‘custom-menu-unique-id’, [

        ‘name’     => ‘Custom Menu Item’, // The name if the item

        ‘href’     => ‘https://ixonn.com/’, // URL of the item

        ‘position’ => 10, // The menu position, see below for default positions.

        ‘icon’     => ‘fa fa-question-circle’, // Font awesome icon

    ]);

}

Item With SubMenu Items

hooks()->add_action(‘admin_init’, ‘my_module_menu_item_collapsible’);

 

function my_module_menu_item_collapsible()

{

    $CI = &get_instance();

 

    $CI->app_menu->add_sidebar_menu_item(‘custom-menu-unique-id’, [

        ‘name’     => ‘Parent Item’, // The name if the item

        ‘collapse’ => true, // Indicates that this item will have submitems

        ‘position’ => 10, // The menu position

        ‘icon’     => ‘fa fa-question-circle’, // Font awesome icon

    ]);

 

    // The first paremeter is the parent menu ID/Slug

    $CI->app_menu->add_sidebar_children_item(‘custom-menu-unique-id’, [

        ‘slug’     => ‘child-to-custom-menu-item’, // Required ID/slug UNIQUE for the child menu

        ‘name’     => ‘Sub Menu’, // The name if the item

        ‘href’     => ‘https://ixonn.com/’, // URL of the item

        ‘position’ => 5, // The menu position

        ‘icon’     => ‘fa fa-exclamation’, // Font awesome icon

    ]);

}

Make sure to replace the my_module functions prefix with your own unique function prefix.

Default Admin Menu Items Positions

The default menu items have different positions, so you can hook your new items in the middle, find below the default position, based on where you want to add your custom item, you can adjust the position attribute.

  • Dashboard – 1
  • Customers – 5
  • Sales – 10
  • Subscriptions – 15
  • Expenses – 20
  • Contracts – 25
  • Projects – 30
  • Tasks – 35
  • Tickets – 40
  • Leads – 45
  • Knowledge Base – 50
  • Utilities – 55
  • Reports – 60

Clients Area

hooks()->add_action(‘clients_init’, ‘my_module_clients_area_menu_items’);

 

function my_module_clients_area_menu_items()

{  

    // Item for all clients

    add_theme_menu_item(‘unique-item-id’, [

            ‘name’     => ‘Custom Clients Area’,

            ‘href’     => site_url(‘my_module/acme’),

            ‘position’ => 10,

        ]);

 

    // Show menu item only if client is logged in

    if (is_client_logged_in()) {

        add_theme_menu_item(‘unique-logged-in-item-id’, [

                    ‘name’     => ‘Only Logged In’,

                    ‘href’     => site_url(‘my_module/only_logged_in’),

                    ‘position’ => 15,

        ]);

    }

}

Default Clients Area Menu Items Positions

  • Knowledge Base 5
  • Register – 99
  • Login – 100
  • Projects – 10
  • Invoices – 15
  • Contracts – 20
  • Estimates – 25
  • Proposals – 30
  • Subscriptions – 40
  • Support – 45

Related Articles

Table of Contents
Scroll Up