/** * Build relative url * * @access private * @param string $separator Querystring argument separator * @param string $controller Controller name * @param string $action Action name * @param array $params Url parameters * @param boolean $csrf Add a CSRF token * @param string $anchor Link Anchor * @param boolean $absolute Absolute or relative link * @return string */ private function build($separator, $controller, $action, array $params = array(), $csrf = false, $anchor = '', $absolute = false) { $path = $this->router->findUrl($controller, $action, $params); $qs = array(); if (empty($path)) { $qs['controller'] = $controller; $qs['action'] = $action; $qs += $params; } if ($csrf) { $qs['csrf_token'] = Security::getCSRFToken(); } if (!empty($qs)) { $path .= '?' . http_build_query($qs, '', $separator); } return ($absolute ? $this->base() : $this->dir()) . $path . (empty($anchor) ? '' : '#' . $anchor); }
/** * Hidden CSRF token field * * @access public * @return string */ public function csrf() { return '<input type="hidden" name="csrf_token" value="' . Security::getCSRFToken() . '"/>'; }