| 
<?php
 namespace PHPtricks\Logaty\Helpers;
 use PHPtricks\Logaty\App;
 
 class Link
 {
 public function __construct(App $app)
 {
 $this->app = $app;
 }
 
 public function create($link = '', $lang = '')
 {
 // if language code is not sent , so we need current language
 if(!$lang || !in_array($lang, $this->app->enabled())) $lang = $this->app->current();
 // get the language query string key
 $langKey = $this->app->options('lang_key');
 /**
 * Build the url
 */
 // check if (https or http)
 $url = isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on" ? "https://" : "http://";
 $url .= str_replace('https://', '', str_replace('http://', '', $_SERVER["SERVER_NAME"]));
 // check if server port is not (80) so we need to add port to url
 if ($_SERVER["SERVER_PORT"] != "80")
 {
 $url .= ":" . $_SERVER["SERVER_PORT"];
 }
 if(!$link)
 {
 // get the URI from current url
 $url .= $_SERVER["REQUEST_URI"];
 }
 else
 {
 $url .= "/" . trim($link, "/");
 }
 /**
 * check and build query string
 */
 if (strlen($_SERVER["QUERY_STRING"]) > 0 && !$link)
 {
 $url = rtrim(substr($url, 0, -strlen($_SERVER["QUERY_STRING"])), '?');
 }
 
 $query = $_GET;
 // remove language parameter from query string
 unset($query[$langKey]);
 // check if we have more parameters
 // and build it
 if (sizeof($query) > 0)
 {
 $url .= '?' . http_build_query($query);
 if($this->app->options('hide_default_language') && $lang == $this->app->current())
 {
 return $url;
 }
 return $url . "&{$langKey}={$lang}";
 }
 else
 {
 if($this->app->options('hide_default_language') && $lang == $this->app->defaultLang())
 {
 return $url;
 }
 else
 {
 return $url . "?{$langKey}={$lang}";
 }
 }
 }
 }
 |