<?php

/**
 * A mapping store of given permalinks to the full documentation path or useful 
 * for customizing the shortcut URLs used in the viewer.
 *
 * Redirects the user from example.com/foo to example.com/en/module/foo
 *
 * @package docsviewer
 */

class DocumentationPermalinks {
	
	/**
	 * @var array
	 */
	private static $mapping = array();
	
	/**
	 * Add a mapping of nice short permalinks to a full long path
	 *
	 * <code>
	 * DocumentationPermalinks::add(array(
	 * 	'debugging' => 'current/en/sapphire/topics/debugging'
	 * ));
	 * </code>
	 *
	 * Do not need to include the language or the version current as it 
	 * will add it based off the language or version in the session
	 *
	 * @param array
	 */
	public static function add($map = array()) {
		if(ArrayLib::is_associative($map)) {
			self::$mapping = array_merge(self::$mapping, $map);
		}
		else {
			user_error("DocumentationPermalinks::add() requires an associative array", E_USER_ERROR);
		}
	}
	
	/**
	 * Return the location for a given short value.
	 *
	 * @return string|false
	 */
	public static function map($url) {
		return (isset(self::$mapping[$url])) ? self::$mapping[$url] : false;
	}
}