silverstripe-docsviewer/code/DocumentationPermalinks.php

50 lines
1.1 KiB
PHP
Raw Normal View History

<?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
2012-11-09 21:27:10 +01:00
*
* @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.
*
2012-11-09 21:27:10 +01:00
* @return string|false
*/
public static function map($url) {
return (isset(self::$mapping[$url])) ? self::$mapping[$url] : false;
}
}