href($controller, $action, $params, $csrf, $anchor).'" class="'.$class.'" title="'.$title.'" '.($new_tab ? 'target="_blank"' : '').'>'.$label.''; } /** * Hyperlink * * @access public * @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 * @return string */ public function href($controller, $action, array $params = array(), $csrf = false, $anchor = '') { $values = array( 'controller' => $controller, 'action' => $action, ); if ($csrf) { $params['csrf_token'] = Security::getCSRFToken(); } $values += $params; return '?'.http_build_query($values, '', '&').(empty($anchor) ? '' : '#'.$anchor); } /** * Generate controller/action url * * @access public * @param string $controller Controller name * @param string $action Action name * @param array $params Url parameters * @return string */ public function to($controller, $action, array $params = array()) { $values = array( 'controller' => $controller, 'action' => $action, ); $values += $params; return '?'.http_build_query($values, '', '&'); } /** * Get application base url * * @access public * @return string */ public function base() { return $this->config->get('application_url') ?: $this->server(); } /** * Get current server base url * * @access public * @return string */ public function server() { if (empty($_SERVER['SERVER_NAME'])) { return 'http://localhost/'; } $self = str_replace('\\', '/', dirname($_SERVER['PHP_SELF'])); $url = Request::isHTTPS() ? 'https://' : 'http://'; $url .= $_SERVER['SERVER_NAME']; $url .= $_SERVER['SERVER_PORT'] == 80 || $_SERVER['SERVER_PORT'] == 443 ? '' : ':'.$_SERVER['SERVER_PORT']; $url .= $self !== '/' ? $self.'/' : '/'; return $url; } }