$URL) {
if ($user->hasAccess($permission)) {
return Backend::url($URL);
}
}
return Backend::url($urls[$default]);
}
/**
* Check if Translator plugin is installed
*
* @return boolean
*/
public static function isTranslatePlugin() :bool {
return class_exists('\RainLab\Translate\Classes\Translator') && class_exists('\RainLab\Translate\Models\Message') && class_exists('\RainLab\Translate\Models\Locale');
}
/**
* Render an array|object as HTML list (UL > LI)
*
* @param mixed $data List items
*
* @return string
*/
public static function array2ul($data) :string {
$return = '';
foreach ($data as $index => $item) {
if (!is_string($item)) {
$return .= '
' . htmlspecialchars($index, ENT_QUOTES) . '' . self::array2ul($item) . "
";
} else {
$return .= '';
if (is_object($data)) {
$return .= htmlspecialchars($index, ENT_QUOTES) . ' - ';
}
$return .= htmlspecialchars($item, ENT_QUOTES) .'';
}
}
return $return;
}
/**
* Anonymize an IPv4 address
* (credits: https://github.com/geertw/php-ip-anonymizer)
*
* @param string $address IPv4 address
*
* @return string Anonymized address
*/
public static function anonymizeIPv4(string $address) :string {
return inet_ntop(inet_pton($address) & inet_pton("255.255.255.0"));
}
/**
* Extract string from curly braces
*
* @param string $pattern Pattern to replace
* @param string $replacement Replacement string
* @param string $subject Strings to replace
*
* @return string
*/
public static function replaceToken(string $pattern, string $replacement = null, string $subject) :string {
$pattern = '/{{\s*('.$pattern.')\s*}}/';
return preg_replace($pattern, $replacement, $subject);
}
}
?>