CRM_Utils_System_Base
defines a great set of key functions that look like they should work in any system.
What is the correct way to access this functionality within an extension?
FYI these are the classes public methods:
addHTMLHead($head)
addScript($code, $region)
addScriptUrl($url, $region)
addStyle($code, $region)
addStyleUrl($url, $region)
appendBreadCrumb($breadCrumbs)
appendCoreResources(&$list)
authenticate($name, $password, $loadCMSBootstrap = FALSE, $realPath = NULL)
checkPermissionAddUser()
clearResourceCache()
cmsRootPath()
createUser(&$params, $mail)
flush()
getBestUFID($user = NULL)
getBestUFUniqueIdentifier($user = NULL)
getDefaultBlockLocation()
getDefaultSiteSettings($dir)
getLoggedInUfID()
getLoggedInUniqueIdentifier()
getLoginDestination(&$form)
getModules()
getTimeZoneOffset()
getTimeZoneString()
getUFLocale()
getUfId($username)
getUniqueIdentifierFromUserObject($user)
getUser($contactID)
getUserIDFromUserObject($user)
getUserRecordUrl($contactID)
getVersion()
isUserLoggedIn()
languageNegotiationURL(
loadUser($user)
logger($message)
logout()
mapConfigToSSL()
outputError($content)
permissionDenied()
postURL($action)
resetBreadCrumb()
setMessage($message)
setMySQLTimeZone()
setTitle($title, $pageTitle = NULL)
setUserSession($data)
theme(&$content, $print = FALSE, $maintenance = FALSE)
updateCMSName($ufID, $email)
updateCategories()
url($path = NULL, $query = NULL, $absolute = FALSE, $fragment = NULL, $htmlize = TRUE, $frontend = FALSE, $forceBackend = FALSE)
userLoginFinalize($params = array())
(note a few of these are marked as only be called in certain contexts)