Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
chamilo-lms/main/inc/lib/uri.class.php

104 lines
2.8 KiB

<?php
/**
* Utility functions to manage uris/urls.
*
* @license see /license.txt
* @author Laurent Opprecht <laurent@opprecht.info> for the Univesity of Geneva
*/
class Uri
{
public static function chamilo()
{
return 'http://chamilo.org/';
}
/**
* Application web root
*/
public static function www()
{
static $result = false;
if (empty($result)) {
$result = api_get_path(WEB_PATH);
}
return $result;
}
public static function here($params = array(), $html = true)
{
$protocol = Request::server()->server_protocol();
$protocol = stripos($protocol, 'https') !== false ? 'https' : 'http';
$host = Request::server()->server_name();
$host = $host ? $host : Request::server()->server_addr();
$here = Request::server()->request_uri();
$here = explode('?', $here);
$here = reset($here);
$here = $protocol . '://' . $host . $here;
return self::url($here, $params, $html);
}
/**
* Returns a full url from local/absolute path and parameters.
* Append the root as required for relative urls.
*
* @param string $path
* @param array $params
* @return string
*/
public static function url($path = '', $params = array(), $html = true)
{
$result = $path;
if (strpos($result, 'http') !== 0)
{
$result = ltrim($result, '/');
$result = self::www() . $result;
}
if ($params)
{
$result = rtrim($result, '?');
$result = $result . '?' . self::params($params, $html);
}
return $result;
}
/**
* Format url parameters
*
* @param array $params
* @return string
*/
public static function params($params = array(), $html = true)
{
$result = array();
foreach ($params as $key => $value)
{
$result[] = $key . '=' . urlencode($value);
}
$result = implode($html ? '&amp;' : '&', $result);
return $result;
}
/**
* Returns the course parameters. If null default to the current user parameters.
*
* @param string $course_code
* @param string|int $session_id
* @param string|int $group_id
* @return type
*/
public static function course_params($course_code = null, $session_id = null, $group_id = null)
{
$course_code = is_null($course_code) ? api_get_course_id() : $course_code;
$session_id = is_null($session_id) ? api_get_session_id() : $session_id;
$session_id = $session_id ? $session_id : '0';
$group_id = is_null($group_id) ? '' : $group_id;
$group_id = $group_id ? $group_id : '0';
return array('cidReq' => $course_code, 'id_session' => $session_id, 'gidReq' => $group_id);
}
}