* (optional) Whether to include the reset GET string (if present).
* @param bool $includeForce
* (optional) Whether to include the force GET string (if present).
- * @param string $path
+ * @param string $path
* (optional) The path to use for the new url.
- * @param string $absolute
+ * @param bool|string $absolute
* (optional) Whether to return an absolute URL.
*
* @return string
*
* @param string $content
* The content that will be themed.
- * @param bool $print
+ * @param bool $print
* (optional) Are we displaying to the screen or bypassing theming?
* @param bool $maintenance
* (optional) For maintenance mode.
*
+ * @return string
+ *
* @access public
*/
static function theme(
return $config->userSystem->url($path, $query, $absolute, $fragment, $htmlize, $frontend, $forceBackend);
}
+ /**
+ * @param $text
+ * @param null $path
+ * @param null $query
+ * @param bool $absolute
+ * @param null $fragment
+ * @param bool $htmlize
+ * @param bool $frontend
+ * @param bool $forceBackend
+ *
+ * @return string
+ */
static function href($text, $path = NULL, $query = NULL, $absolute = TRUE,
$fragment = NULL, $htmlize = TRUE, $frontend = FALSE, $forceBackend = FALSE
) {
return "<a href=\"$url\">$text</a>";
}
+ /**
+ * @return mixed
+ */
static function permissionDenied() {
$config = CRM_Core_Config::singleton();
return $config->userSystem->permissionDenied();
}
+ /**
+ * @return mixed
+ */
static function logout() {
$config = CRM_Core_Config::singleton();
return $config->userSystem->logout();
/**
* @param bool $abort
* (optional) Whether to exit; defaults to true.
+ *
+ * @return bool
*/
static function authenticateKey($abort = TRUE) {
// also make sure the key is sent and is valid
}
/**
+ * @param bool $abort
+ * @param null $name
+ * @param null $pass
+ * @param bool $storeInSession
+ * @param bool $loadCMSBootstrap
+ * @param bool $requireKey
+ *
* @return bool
*/
static function authenticateScript($abort = TRUE, $name = NULL, $pass = NULL, $storeInSession = TRUE, $loadCMSBootstrap = TRUE, $requireKey = TRUE) {
return substr_replace($number, $replace, 0, -$keep);
}
- /**
+ /**
* Determine which PHP modules are loaded.
*
* @return array
/**
* @param $title
* (optional)
+ *
+ * @return mixed|string
*/
static function memory($title = NULL) {
static $pid = NULL;
* @param $buffer
* @param string $ext
* @param bool $output
+ * @param string $disposition
*/
static function download($name, $mimeType, &$buffer,
$ext = NULL,
* The URL to check.
* @param bool $addCookie
* (optional)
+ *
+ * @return mixed
*/
static function checkURL($url, $addCookie = FALSE) {
// make a GET request to $url
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
// lets capture the return stuff rather than echo
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE );
return curl_exec($ch);
}
* @param int $ver
* The major version of PHP that is required.
* @param bool $abort
- * (optional) Whether to fatally abort if the version requirement is not
+ * (optional) Whether to fatally abort if the version requirement is not
* met. Defaults to TRUE.
* @return bool
* Returns TRUE if the requirement is met, FALSE if the requirement is not
}
/**
+ * @param $string
+ * @param bool $encode
+ *
* @return string
*/
static function formatWikiURL($string, $encode = FALSE) {
/**
* @param string $url
+ *
+ * @return null|string
*/
static function urlEncode($url) {
$items = parse_url($url);
return
(isset($_SERVER['HTTPS']) &&
!empty($_SERVER['HTTPS']) &&
- strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
+ strtolower($_SERVER['HTTPS']) != 'off') ? TRUE : FALSE;
}
/**
* @return string
* IP address of logged in user.
*/
+ /**
+ * @param bool $strictIPV4
+ *
+ * @return mixed|string
+ */
static function ipAddress($strictIPV4 = TRUE) {
$address = CRM_Utils_Array::value('REMOTE_ADDR', $_SERVER);
$config = CRM_Core_Config::singleton();
- if ($config->userSystem->is_drupal) {
- //drupal function handles the server being behind a proxy securely
- $address = ip_address();
+ if ($config->userSystem->is_drupal && function_exists('ip_address')) {
+ //drupal function handles the server being behind a proxy securely. We still have legacy ipn methods
+ // that reach this point without bootstrapping hence the check that the fn exists
+ $address = ip_address();
}
// hack for safari
* @param string $style
* (optional) Style attribute value for HTML link (no effect if $URLonly = false)
*
+ * @param null $resource
+ *
* @return string
* URL or link to documentation page, based on provided parameters.
* @access public
* Response from URL.
*/
static function getServerResponse($url, $addCookie = TRUE) {
- $errorScope = CRM_Core_TemporaryErrorScope::ignoreException();
+ CRM_Core_TemporaryErrorScope::ignoreException();
require_once 'HTTP/Request.php';
$request = new HTTP_Request($url);
* Produce an absolute URL from a possibly-relative URL.
*
* @param string $url
- * @param bool $remoteLanguagePart
+ * @param bool $removeLanguagePart
+ *
+ * @internal param bool $remoteLanguagePart
* @return string
*/
static function absoluteURL($url, $removeLanguagePart = FALSE) {
*
* @param string $url
*
+ * @param bool $addLanguagePart
+ * @param bool $removeLanguagePart
+ *
* @return string $url, formatted url.
*/
static function languageNegotiationURL($url,
// getPluginList()
/**
- *
+ *
*/
static function executeScheduledJobs() {
$facility = new CRM_Core_JobManager();
}
return $cache;
}
-}
+ /**
+ * @return bool
+ */
+ static function isInUpgradeMode() {
+ $args = explode('/', $_GET['q']);
+ $upgradeInProcess = CRM_Core_Session::singleton()->get('isUpgradePending');
+ if ((isset($args[1]) && $args[1] == 'upgrade') || $upgradeInProcess) {
+ return TRUE;
+ }
+ else {
+ return FALSE;
+ }
+ }
+
+ /**
+ * Determine the standard URL for viewing or editing the specified link
+ *
+ * This function delegates the decision-making to (a) the hook system and
+ * (b) the BAO system.
+ *
+ * @param array $crudLinkSpec with keys:
+ * - action: int, CRM_Core_Action::UPDATE or CRM_Core_Action::VIEW [default: VIEW]
+ * - entity_table: string, eg "civicrm_contact"
+ * - entity_id: int
+ * @return array|NULL NULL if unavailable, or an array. array has keys:
+ * - path: string
+ * - query: array
+ * - title: string
+ * - url: string
+ */
+ static function createDefaultCrudLink($crudLinkSpec) {
+ $crudLinkSpec['action'] = CRM_Utils_Array::value('action', $crudLinkSpec, CRM_Core_Action::VIEW);
+ $daoClass = CRM_Core_DAO_AllCoreTables::getClassForTable($crudLinkSpec['entity_table']);
+ if (!$daoClass) {
+ return NULL;
+ }
+
+ $baoClass = str_replace('_DAO_', '_BAO_', $daoClass);
+ if (!class_exists($baoClass)) {
+ return NULL;
+ }
+
+ $bao = new $baoClass();
+ $bao->id = $crudLinkSpec['entity_id'];
+ if (!$bao->find(TRUE)) {
+ return NULL;
+ }
+
+ $link = array();
+ CRM_Utils_Hook::crudLink($crudLinkSpec, $bao, $link);
+ if (empty($link) && is_callable(array($bao, 'createDefaultCrudLink'))) {
+ $link = $bao->createDefaultCrudLink($crudLinkSpec);
+ }
+
+ if (!empty($link)) {
+ if (!isset($link['url'])) {
+ $link['url'] = self::url($link['path'], $link['query'], TRUE, NULL, FALSE);
+ }
+ return $link;
+ }
+ return NULL;
+ }
+}