VbzCart/docs/v1/class/vcPageContent ckout/DetectPageRequest

From Woozle Writes Code
Jump to navigation Jump to search

Template:Page/code/class/method

Calls

Code

    /*----
      ACTION: Checks form input to see which (if any) navigation button was pressed,
	and therefore which form is being requested for display next.
	
	Does not enforce rules about whether to advance or not.
    */
    protected function DetectPageRequest() {
	$gotPgDest = FALSE;
	if (fcHTTP::Request()->GetBool(KSQ_ARG_PAGE_DEST)) {
	    $gotPgDest = TRUE;
	    $this->SetPageKey_forShow(fcHTTP::Request()->GetString(KSQ_ARG_PAGE_DEST));
	}
	
	// DEBUGGING
	//echo 'DETECTING PAGE REQUEST...<br>';
	
	if (!$gotPgDest) {
	// destination page unknown, so calculate it from data/source page:
	    if (fcHTTP::Request()->GetBool('btn-go-prev')) {
		switch ($this->GetPageKey_forData()) {
		  case KSQ_PAGE_CART:
		    $this->SetPageKey_forShow(KSQ_PAGE_CART);	// can't go back any further
		    break;
		  case KSQ_PAGE_SHIP:
		    $this->SetPageKey_forShow(KSQ_PAGE_CART);
		    break;
		  case KSQ_PAGE_PAY:
		    $this->SetPageKey_forShow(KSQ_PAGE_SHIP);
		    break;
		  case KSQ_PAGE_CONF:
		    $this->SetPageKey_forShow(KSQ_PAGE_PAY);
		    break;
		  default:	// source page name not recognized; default to cart
		    $this->SetPageKey_forShow(KSQ_PAGE_CART);	// can't go back any further
		}
	    } elseif (fcHTTP::Request()->GetBool('btn-go-next')) {
		switch ($this->GetPageKey_forData()) {
		  case KSQ_PAGE_CART:
		    $this->SetPageKey_forShow(KSQ_PAGE_SHIP);
		    break;
		  case KSQ_PAGE_SHIP:
		    $this->SetPageKey_forShow(KSQ_PAGE_PAY);
		    break;
		  case KSQ_PAGE_PAY:
		    $this->SetPageKey_forShow(KSQ_PAGE_CONF);
		    break;
		  case KSQ_PAGE_CONF:
		    $this->SetPageKey_forShow(KSQ_PAGE_RCPT);
		    break;
		  default:	// not sure how we got here; use default
		    $this->SetPageKey_forShow(KSQ_PAGE_DEFAULT);
		}
	    } elseif (fcHTTP::Request()->GetBool('btn-go-same')) {
		$this->SetPageKey_forShow($this->PageKey_forData());
	    } elseif (fcHTTP::Request()->GetBool('btn-go-order')) {
		$this->SetPageKey_forShow(KSQ_PAGE_RCPT);		// receipt page - submits order too
	    } else {
		$this->SetPageKey_forShow(KSQ_PAGE_DEFAULT);	// default page to display
	    }
	}
    }