# responsive-menu/3.0.6/src/app/Routing/WpRouting.php

Responsive Menu – Create Mobile-Friendly Menu, version 3.0.6. 62 lines.

- Page: https://pluginprobe.com/plugins/responsive-menu/3.0.6/code/src/app/Routing/WpRouting.php
- Raw: https://pluginprobe.com/plugins/responsive-menu/3.0.6/raw/src/app/Routing/WpRouting.php
- Modified: 2016-07-22T17:19:42+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/responsive-menu/3.0.6/code/src/app/Routing/WpRouting.php#L10-L20`.

```php
<?php

namespace ResponsiveMenu\Routing;
use ResponsiveMenu\Routing\Container as Container;

class WpRouting implements Routing {

  protected $container;

  public function __construct(Container $container) {
    $this->container = $container;
  }

  public function route() {
    if(is_admin())
      add_action('admin_menu', [$this, 'adminPage']);
    else
      add_action('template_redirect', [$this->container['front_controller'], 'index']);
  }

  public function adminPage() {
    /* Heavily reliant on WordPress so very hard coded */
    if(isset($_POST['responsive_menu_submit'])):
      $method = 'update';
    elseif(isset($_POST['responsive_menu_reset'])):
      $method = 'reset';
    elseif(isset($_POST['responsive_menu_export'])):
      $controller = $this->container['admin_controller'];
      $controller->export();
    elseif(isset($_POST['responsive_menu_import'])):
      $method = 'import';
    else:
      $method = 'index';
    endif;

    add_menu_page(
      'Responsive Menu',
      'Responsive Menu',
      'manage_options',
      'responsive-menu',
      function() use ($method) {
        $controller = $this->container['admin_controller'];
        switch ($method) :
          case 'update':
            $controller->$method($this->container['default_options'], $_POST['menu']);
            break;
          case 'reset':
            $controller->$method($this->container['default_options']);
            break;
          case 'import':
            $controller->$method($this->container['default_options'], $_FILES['responsive_menu_import_file']);
            break;
          default:
            $controller->$method();
            break;
        endswitch;
      },
      'dashicons-menu');
  }

}

```
