Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

You can define menu menus in adminCP AdminCP in file Install.php

Code Block
languagephp
titleInstall.php
linenumberstrue

protected function setOthers()
{
    $this->admincp_menu = [
        "'Manage Campaigns" => "betterads",
        "Add Placement" => "betterads.addplacement",
    To Do' => 'todo', // 'todo' is app's alias
   "Manage Placements" => "betterads.placement",
        "Manage Invoice" => "betterads.invoice",
        "Manage Sponsorships" => "betterads.sponsor",
    ];//Do
not
put admincp here     $this->admincp_route = 'admincp.betteradstodo'; //must be'todo' begunis withapp's admincpalias
}

 

...


After that, on start.php, we add below lines.

Code Block
languagephp
titlestart.php
linenumberstrue
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')
// 'todo' is app's alias
$module->addComponentNames('controller', [
    'todo.admincp.index' => Controller\AdminManageTodoController::class
]);

group('todo/betterads/admincp', function () {
    route('/', 'betteradstodo.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 controller files:

  • Apps\phpFox_BetterAds\Controller\Admin\AddController.php

  • Apps\phpFox_BetterAds\Controller\Admin\InvoiceController.php

  • Apps\phpFox_BetterAds\Controller\Admin\PlacementController.php

  • Apps\phpFox_BetterAds\Controller\Admin\SponsorController.php

  • Apps\phpFox_BetterAds\Controller\Admin\AddPlacementController.php

  • Apps\phpFox_BetterAds\Controller\Admin\IndexController.php

Path of 6 view files

  • PF.Site/Apps/phpFox_BetterAds/views/controller/admincp/add.html.php
  • PF.Site/Apps/phpFox_BetterAds/views/controller/admincp/addplacement.html.php
  • PF.Site/Apps/phpFox_BetterAds/views/controller/admincp/index.html.php
  • PF.Site/Apps/phpFox_BetterAds/views/controller/admincp/invoice.html.php
  • PF.Site/Apps/phpFox_BetterAds/views/controller/admincp/placement.html.php
  • PF.Site/Apps/phpFox_BetterAds/views/controller/admincp/sponsor.html.php
});

Finally, we add controller file and view file.

Path of controller file:

  • Apps/TodoList/Controller/AdminManageTodoController.php

Path of view file:

  • Apps/TodoList/views/controller/admincp/index.html.php

Sample structure of a controller file

Code Block
languagephp
titleAddController.php
linenumberstrue

<?php
namespace Apps\phpFox_BetterAdsTodoList\Controller\Admin;

use Phpfox;
use Admincp_Component_Controller_App_Index;
use Phpfox_Plugin;

defined('PHPFOX') or exit('NO DICE!');

/**
 * Class AddController
 * @author Neil <neil@phpfox.com>
 * @package Apps\phpFox_BetterAds\Controller\Admin
 */
class AddControllerclass AdminManageTodoController extends Admincp\Phpfox_Component_Controller_App_Index
{
    public function process()
    {
        parent::process();

        //Put your code here
    }

    public function clean()
    {
        (($sPlugin = Phpfox_Plugin::get('betteradstodo.component_controller_admincp_addmanage_clean')) ? eval($sPlugin) : false);
    }
}