aboutsummaryrefslogtreecommitdiff
path: root/lib/helper.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/helper.php')
-rw-r--r--lib/helper.php41
1 files changed, 39 insertions, 2 deletions
diff --git a/lib/helper.php b/lib/helper.php
index 4fce91e..1925382 100644
--- a/lib/helper.php
+++ b/lib/helper.php
@@ -18,14 +18,20 @@ function baseurl()
if(startswith('//', $base))
$base = proto().':'.$base;
- return forceslash(forceslash($base).@$GLOBALS['MANDATOR']);
+ return forceslash($base);
}
$base = ssl() ? 'https://' : 'http://';
$base .= $_SERVER['HTTP_HOST'];
$base .= forceslash(dirname($_SERVER['SCRIPT_NAME']));
- return forceslash(forceslash($base).@$GLOBALS['MANDATOR']);
+ return forceslash($base);
+}
+
+function joinpath($parts)
+{
+ $parts = array_map('forceslash', $parts);
+ return rtrim(implode('', $parts), '/');
}
function forceslash($url)
@@ -108,3 +114,34 @@ function url_params()
return '';
}
+
+/**
+ * returns the fielst element matching $predicate or null, if none matched.
+ * $predicate is a callable that receives one array value at a time and can
+ * return a bool'ish value
+ */
+function array_filter_first($array, $predicate)
+{
+ foreach ($array as $value) {
+ if( $predicate($value) ) {
+ return $value;
+ }
+ }
+
+ return null;
+}
+/**
+ * returns the fielst element matching $predicate or null, if none matched.
+ * $predicate is a callable that receives one array value at a time and can
+ * return a bool'ish value
+ */
+function array_filter_last($array, $predicate)
+{
+ foreach (array_reverse($array) as $value) {
+ if( $predicate($value) ) {
+ return $value;
+ }
+ }
+
+ return null;
+}