Example #1
0
  public function manage() {

    $view_key = $this->view_key();
    
    MPV::incl($view_key);
    MasterPress::$view_class = MasterPress::view_class($view_key);
    
    $view_class = MasterPress::$view_class;
    MasterPress::$view = new $view_class();
    
    $view = MasterPress::$view;
    
    $view->title_args = array( 
      "text"    => call_user_func( array( $view_class, "__p" ) ),
      "actions" => $this->manage_actions(),
      "controller" => $this->key()
    );

    $view->method = "grid";

    $this->init();
  }
Example #2
0
  public static function dispatch() {
    
    // check that we're inside MasterPress (this also prevents MasterPress ajax from the normal dispatch too)
    
    if (isset($_REQUEST["page"]) && substr($_REQUEST["page"], 0, 11) == "masterpress") {
      // dispatch the menu to the correct controller / action

      // infer the controller, falling back to masterplan if the page is blank (shouldn't happen)
    
      if ($_REQUEST["page"] == "masterpress") {
        MasterPress::$controller_key = "masterplan";
      } else {
        MasterPress::$controller_key = str_replace("masterpress-", "", $_REQUEST["page"]); 
      }
    
      // include the controller
      MPC::incl(MasterPress::$controller_key);
    
      // infer the controller class, by converting to Title Case, and prefixing with "MPC_"
      $controller_class = MasterPress::controller_class(MasterPress::$controller_key);

      MasterPress::$controller = new $controller_class();

      MasterPress::$suffix = "-".MasterPress::$controller_key;

      MasterPress::$view = new stdClass();
       
      MasterPress::$action = "";
      
      if (isset($_GET['action'])) {
        MasterPress::$action = $_GET['action'];
      }
    
      if (MasterPress::$action == "") {
        MasterPress::$action = "manage";
      }
      
      if (isset($_REQUEST["parent"])) {
        MasterPress::$parent = $_REQUEST["parent"];
      }

      if (isset($_REQUEST["gparent"])) {
        MasterPress::$gparent = $_REQUEST["gparent"];
      }
    
      if (isset($_REQUEST["id"])) {
        MasterPress::$id = $_REQUEST["id"];
      }
      
      if (isset($_REQUEST["from"])) {
        MasterPress::$from = $_REQUEST["from"];
      }
    
      if (MasterPress::$action != "manage") { // no need for nonce checks on the manage (menu) pages
        $nonce = $_REQUEST['_wpnonce'];
        
        if ( !wp_verify_nonce($nonce, MasterPress::$action) ) { 
          // if nonce verification fails, simply go back to "manage", which is a non-destructive action
          MasterPress::$action = "manage";
        } 
      }

      
      $method = str_replace("-", "_", MasterPress::$action);
      
      if (method_exists(MasterPress::$controller, $method)) {
        MasterPress::$controller->$method();
      }

      
      
      
    }
    
  }