diff options
author | Frederic Guillot <fred@kanboard.net> | 2016-03-04 20:10:34 -0500 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2016-03-04 20:10:34 -0500 |
commit | 8f3e2b2e5c62a6130f6c8867ab335fb4c1a32c5c (patch) | |
tree | ce28cdc2dba9c31560ef753ac1b4dc39d567b7a6 /app/Helper/Url.php | |
parent | f32507d423c46e8e9612b5239728e6c617e4cbcb (diff) |
Helper refactoring
Diffstat (limited to 'app/Helper/Url.php')
-rw-r--r-- | app/Helper/Url.php | 171 |
1 files changed, 0 insertions, 171 deletions
diff --git a/app/Helper/Url.php b/app/Helper/Url.php deleted file mode 100644 index 7de8a571..00000000 --- a/app/Helper/Url.php +++ /dev/null @@ -1,171 +0,0 @@ -<?php - -namespace Kanboard\Helper; - -use Kanboard\Core\Base; - -/** - * Url helpers - * - * @package helper - * @author Frederic Guillot - */ -class Url extends Base -{ - private $base = ''; - private $directory = ''; - - /** - * Helper to generate a link to the documentation - * - * @access public - * @param string $label - * @param string $file - * @return string - */ - public function doc($label, $file) - { - return $this->link($label, 'doc', 'show', array('file' => $file), false, '', '', true); - } - - /** - * HTML Link tag - * - * @access public - * @param string $label Link label - * @param string $controller Controller name - * @param string $action Action name - * @param array $params Url parameters - * @param boolean $csrf Add a CSRF token - * @param string $class CSS class attribute - * @param boolean $new_tab Open the link in a new tab - * @param string $anchor Link Anchor - * @return string - */ - public function link($label, $controller, $action, array $params = array(), $csrf = false, $class = '', $title = '', $new_tab = false, $anchor = '') - { - return '<a href="'.$this->href($controller, $action, $params, $csrf, $anchor).'" class="'.$class.'" title=\''.$title.'\' '.($new_tab ? 'target="_blank"' : '').'>'.$label.'</a>'; - } - - /** - * HTML 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 - * @param boolean $absolute Absolute or relative link - * @return string - */ - public function href($controller, $action, array $params = array(), $csrf = false, $anchor = '', $absolute = false) - { - return $this->build('&', $controller, $action, $params, $csrf, $anchor, $absolute); - } - - /** - * Generate controller/action url - * - * @access public - * @param string $controller Controller name - * @param string $action Action name - * @param array $params Url parameters - * @param string $anchor Link Anchor - * @param boolean $absolute Absolute or relative link - * @return string - */ - public function to($controller, $action, array $params = array(), $anchor = '', $absolute = false) - { - return $this->build('&', $controller, $action, $params, false, $anchor, $absolute); - } - - /** - * Get application base url - * - * @access public - * @return string - */ - public function base() - { - if (empty($this->base)) { - $this->base = $this->config->get('application_url') ?: $this->server(); - } - - return $this->base; - } - - /** - * Get application base directory - * - * @access public - * @return string - */ - public function dir() - { - if ($this->directory === '' && $this->request->getMethod() !== '') { - $this->directory = str_replace('\\', '/', dirname($this->request->getServerVariable('PHP_SELF'))); - $this->directory = $this->directory !== '/' ? $this->directory.'/' : '/'; - $this->directory = str_replace('//', '/', $this->directory); - } - - return $this->directory; - } - - /** - * Get current server base url - * - * @access public - * @return string - */ - public function server() - { - if ($this->request->getServerVariable('SERVER_NAME') === '') { - return 'http://localhost/'; - } - - $url = $this->request->isHTTPS() ? 'https://' : 'http://'; - $url .= $this->request->getServerVariable('SERVER_NAME'); - $url .= $this->request->getServerVariable('SERVER_PORT') == 80 || $this->request->getServerVariable('SERVER_PORT') == 443 ? '' : ':'.$this->request->getServerVariable('SERVER_PORT'); - $url .= $this->dir() ?: '/'; - - return $url; - } - - /** - * 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->route->findUrl($controller, $action, $params); - $qs = array(); - - if (empty($path)) { - $qs['controller'] = $controller; - $qs['action'] = $action; - $qs += $params; - } else { - unset($params['plugin']); - } - - if ($csrf) { - $qs['csrf_token'] = $this->token->getCSRFToken(); - } - - if (! empty($qs)) { - $path .= '?'.http_build_query($qs, '', $separator); - } - - return ($absolute ? $this->base() : $this->dir()).$path.(empty($anchor) ? '' : '#'.$anchor); - } -} |