You can define menu in adminCP in file Install.php

protected function setOthers()
{
    $this->admincp_menu = [
        "Manage Campaigns" => "betterads",
        "Add Placement" => "betterads.addplacement",
        "Manage Placements" => "betterads.placement",
        "Manage Invoice" => "betterads.invoice",
        "Manage Sponsorships" => "betterads.sponsor",
    ];//Do not put admincp here
    $this->admincp_route = 'admincp.betterads';//must be begun with admincp
}

 

On start.php

Phpfox_Module::instance()->addComponentNames('controller', [
    'betterads.admincp.add' => '\Apps\phpFox_BetterAds\Controller\Admin\AddController',
    'betterads.admincp.index' => '\Apps\phpFox_BetterAds\Controller\Admin\IndexController',
    'betterads.admincp.addplacement' => '\Apps\phpFox_BetterAds\Controller\Admin\AddPlacementController',
    'betterads.admincp.invoice' => '\Apps\phpFox_BetterAds\Controller\Admin\InvoiceController',
    'betterads.admincp.placement' => '\Apps\phpFox_BetterAds\Controller\Admin\PlacementController',
    'betterads.admincp.sponsor' => '\Apps\phpFox_BetterAds\Controller\Admin\SponsorController',
])
    ->addTemplateDirs([
        'betterads' => PHPFOX_DIR_SITE_APPS . 'phpFox_BetterAds' . PHPFOX_DS . 'views',
    ])->addAliasNames('betterads', 'phpFox_BetterAds');

group('/betterads/admincp', function () {
    route('/', 'betterads.admincp.index');
    route('/add', 'betterads.admincp.add');
    route('/addplacement/*', 'betterads.admincp.addplacement');
    route('/placement', 'betterads.admincp.placement');
    route('/invoice', 'betterads.admincp.invoice');
    route('/sponsor', 'betterads.admincp.sponsor');
});

 

And then, we add 6 controllers file and 6 view files.

Path of 6 controllerfiles:

Path of 6 view files