mirror of
https://github.com/Einundzwanzig-Podcast/einundzwanzig-portal.git
synced 2025-12-11 06:46:47 +00:00
huge Laravel 10 upgrade
This commit is contained in:
113
support/laravel-translation/resources/helpers.php
Normal file
113
support/laravel-translation/resources/helpers.php
Normal file
@@ -0,0 +1,113 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
if (! function_exists('set_active')) {
|
||||
/**
|
||||
* Determine if a route is the currently active route.
|
||||
*
|
||||
* @param string $path
|
||||
* @param string $class
|
||||
* @return string
|
||||
*/
|
||||
function set_active($path, $class = 'active')
|
||||
{
|
||||
return Request::is(config('translation.ui_url').$path) ? $class : '';
|
||||
}
|
||||
}
|
||||
|
||||
if (! function_exists('strs_contain')) {
|
||||
/**
|
||||
* Determine whether any of the provided strings in the haystack contain the needle.
|
||||
*
|
||||
* @param array $haystacks
|
||||
* @param string $needle
|
||||
* @return bool
|
||||
*/
|
||||
function strs_contain($haystacks, $needle)
|
||||
{
|
||||
$haystacks = (array) $haystacks;
|
||||
|
||||
foreach ($haystacks as $haystack) {
|
||||
if (is_array($haystack)) {
|
||||
return strs_contain($haystack, $needle);
|
||||
} elseif (Str::contains(strtolower($haystack), strtolower($needle))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (! function_exists('array_diff_assoc_recursive')) {
|
||||
/**
|
||||
* Recursively diff two arrays.
|
||||
*
|
||||
* @param array $arrayOne
|
||||
* @param array $arrayTwo
|
||||
* @return array
|
||||
*/
|
||||
function array_diff_assoc_recursive($arrayOne, $arrayTwo)
|
||||
{
|
||||
$difference = [];
|
||||
foreach ($arrayOne as $key => $value) {
|
||||
if (is_array($value) || $value instanceof Illuminate\Support\Collection) {
|
||||
if (! isset($arrayTwo[$key])) {
|
||||
$difference[$key] = $value;
|
||||
} elseif (! (is_array($arrayTwo[$key]) || $arrayTwo[$key] instanceof Illuminate\Support\Collection)) {
|
||||
$difference[$key] = $value;
|
||||
} else {
|
||||
$new_diff = array_diff_assoc_recursive($value, $arrayTwo[$key]);
|
||||
if ($new_diff != false) {
|
||||
$difference[$key] = $new_diff;
|
||||
}
|
||||
}
|
||||
} elseif (! isset($arrayTwo[$key])) {
|
||||
$difference[$key] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $difference;
|
||||
}
|
||||
}
|
||||
|
||||
if (! function_exists('str_before')) {
|
||||
/**
|
||||
* Get the portion of a string before a given value.
|
||||
*
|
||||
* @param string $subject
|
||||
* @param string $search
|
||||
* @return string
|
||||
*/
|
||||
function str_before($subject, $search)
|
||||
{
|
||||
return $search === '' ? $subject : explode($search, $subject)[0];
|
||||
}
|
||||
}
|
||||
|
||||
// Array undot
|
||||
if (! function_exists('array_undot')) {
|
||||
/**
|
||||
* Expands a single level array with dot notation into a multi-dimensional array.
|
||||
*
|
||||
* @param array $dotNotationArray
|
||||
* @return array
|
||||
*/
|
||||
function array_undot(array $dotNotationArray)
|
||||
{
|
||||
$array = [];
|
||||
foreach ($dotNotationArray as $key => $value) {
|
||||
// if there is a space after the dot, this could legitimately be
|
||||
// a single key and not nested.
|
||||
if (count(explode('. ', $key)) > 1) {
|
||||
$array[$key] = $value;
|
||||
} else {
|
||||
Arr::set($array, $key, $value);
|
||||
}
|
||||
}
|
||||
|
||||
return $array;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user