defaults(); return $url; } /** * @param array $url * @return array */ public function completeArray(array $url) { $url = $this->addQueryStrings($url); $url = $this->addPassed($url); return $url; } /** * Creates a reset URL. * The prefix and plugin params are resetting to default false. * * Can only add defaults for array URLs. * * @param string|array|null $url URL. * @param bool $full If true, the full base URL will be prepended to the result * @return string Full translated URL with base path. */ public function buildReset($url = null, $full = false) { if (is_array($url)) { $url += $this->defaults(); } return $this->build($url, $full); } /** * Returns a URL based on provided parameters. * * Can only add query strings for array URLs. * * @param string|array|null $url URL. * @param bool $full If true, the full base URL will be prepended to the result * @return string Full translated URL with base path. */ public function buildComplete($url = null, $full = false) { if (is_array($url)) { $url = $this->addQueryStrings($url); } return $this->build($url, $full); } /** * @return array */ public function defaults() { return [ 'prefix' => false, 'plugin' => false, ]; } /** * @param array $url * * @return array */ protected function addQueryStrings(array $url) { if (!isset($url['?'])) { $url['?'] = []; } $url['?'] += $this->_View->getRequest()->getQuery(); return $url; } /** * @param array $url * * @return array */ protected function addPassed(array $url) { $pass = $this->_View->getRequest()->getParam('pass'); $url = array_merge($url, $pass); return $url; } }