<?
/*
* Smarty plugin
* -------------------------------------------------------------
* File:     function.url.php
* Type:     function
* Name:     link
* Purpose:  zwraca sformatowany url
* -------------------------------------------------------------
*/

function smarty_function_urlO($param, &$smarty)
{

	//    if (isset($params['_value'])) {//Stara wersja
	//
	//        $return = explode(',', $params['_value']);
	//
	//        $controller = array_shift($return);
	//        $model = array_shift($return);
	//
	//        if (!empty($model)) {
	//            $return[] = $model;
	//        }
	//        $return[] = $controller;
	//
	//        $return = implode(URL_DELIMITER, $return);
	//
	//        return URL_MAIN . '/' .$return.APPLICATION_FILE_TYPE;
	//    }
	//
	//    if (isset($params['_current']) && $params['_current']) {
	//
	//        $fileName = pathinfo($_SERVER['REQUEST_URI']);
	//
	//        $exp = explode(URL_DELIMITER, $fileName['filename']);
	//
	//        if (!isset($fileName['extension']) || $fileName['extension'] != 'html') {
	//            $return = array('index' => 'index');
	//        } else {
	//            $size = sizeof($exp);
	//
	//            if ($size == 1) {
	//                $return[$exp[0]] = 'index';
	//            } else {
	//                $return[$exp[$size - 2]] = $exp[$size - 1];
	//            }
	//        }
	//
	//        $rout = Router::GetParam();
	//
	//        if ($rout['param']) {
	//            $return = array_merge($return, array_reverse($rout['param']));
	//        }
	//
	//        $current = array_merge($return, $params);
	//
	//        $first_flag = false;
	//
	//        unset($params['_current']);
	//    }
	//
	//
	//            $return = $params;
	//
	//
	//        $first_flag = true;
	//
	//
	//        $addr = array();
	//
	//        if(isset($return[0]) && count(array_values($return))==1) {
	//            $addr = $return;
	//
	//        } else {
	//
	//            foreach ($return as $k => $v) {
	//                if (substr($k, 0, 1) == '_') {
	//                    continue;
	//                }
	//
	//                if ($first_flag && Router::$controllerMethodSeek==true) {
	//                    $addr = array_merge(array($v . URL_DELIMITER . $k), $addr);
	//                    $first_flag = false;
	//                } else {
	//                    $addr = array_merge(array($k . URL_DELIMITER . $v), $addr);
	//                }
	//            }
	//        }
	//
	//        //reakcja na ustawienia routera
	//        if(Router::$reverseRoute==true) {
	//            $addr=array_reverse($addr);
	//        }
	//
	//        return URL_MAIN . '/' . implode(URL_DELIMITER, $addr) . APPLICATION_FILE_TYPE;
	if(isset($param['label'])) {
		$label = $param['label'];
	} else {
		$label = null;
	}

	if(isset($param['_BASE_URL_'])){
		$baseUrl = $param['_BASE_URL_'];
		unset($param['_BASE_URL_']);
		return Router::GenerateUrl($label, $param,$baseUrl);
	}



	return Router::GenerateUrl($label, $param);

}
?>