mirror of
				https://github.com/grocy/grocy.git
				synced 2025-11-03 20:15:04 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			181 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			181 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
function FindObjectInArrayByPropertyValue($array, $propertyName, $propertyValue)
 | 
						|
{
 | 
						|
	foreach($array as $object)
 | 
						|
	{
 | 
						|
		if($object->{$propertyName} == $propertyValue)
 | 
						|
		{
 | 
						|
			return $object;
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	return null;
 | 
						|
}
 | 
						|
 | 
						|
function FindAllObjectsInArrayByPropertyValue($array, $propertyName, $propertyValue, $operator = '==')
 | 
						|
{
 | 
						|
	$returnArray = array();
 | 
						|
 | 
						|
	foreach($array as $object)
 | 
						|
	{
 | 
						|
		switch($operator)
 | 
						|
		{
 | 
						|
			case '==':
 | 
						|
				if($object->{$propertyName} == $propertyValue)
 | 
						|
				{
 | 
						|
					$returnArray[] = $object;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case '>':
 | 
						|
				if($object->{$propertyName} > $propertyValue)
 | 
						|
				{
 | 
						|
					$returnArray[] = $object;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case '<':
 | 
						|
				if($object->{$propertyName} < $propertyValue)
 | 
						|
				{
 | 
						|
					$returnArray[] = $object;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	return $returnArray;
 | 
						|
}
 | 
						|
 | 
						|
function FindAllItemsInArrayByValue($array, $value, $operator = '==')
 | 
						|
{
 | 
						|
	$returnArray = array();
 | 
						|
 | 
						|
	foreach($array as $item)
 | 
						|
	{
 | 
						|
		switch($operator)
 | 
						|
		{
 | 
						|
			case '==':
 | 
						|
				if($item == $value)
 | 
						|
				{
 | 
						|
					$returnArray[] = $item;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case '>':
 | 
						|
				if($item > $value)
 | 
						|
				{
 | 
						|
					$returnArray[] = $item;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
			case '<':
 | 
						|
				if($item < $value)
 | 
						|
				{
 | 
						|
					$returnArray[] = $item;
 | 
						|
				}
 | 
						|
				break;
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	return $returnArray;
 | 
						|
}
 | 
						|
 | 
						|
function SumArrayValue($array, $propertyName)
 | 
						|
{
 | 
						|
	$sum = 0;
 | 
						|
	foreach($array as $object)
 | 
						|
	{
 | 
						|
		$sum += $object->{$propertyName};
 | 
						|
	}
 | 
						|
 | 
						|
	return $sum;
 | 
						|
}
 | 
						|
 | 
						|
function GetClassConstants($className)
 | 
						|
{
 | 
						|
	$r = new ReflectionClass($className);
 | 
						|
	return $r->getConstants();
 | 
						|
}
 | 
						|
 | 
						|
function RandomString($length, $allowedChars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
 | 
						|
{
 | 
						|
	$randomString = '';
 | 
						|
	for ($i = 0; $i < $length; $i++)
 | 
						|
	{
 | 
						|
		$randomString .= $allowedChars[rand(0, strlen($allowedChars) - 1)];
 | 
						|
	}
 | 
						|
 | 
						|
	return $randomString;
 | 
						|
}
 | 
						|
 | 
						|
function IsAssociativeArray(array $array)
 | 
						|
{
 | 
						|
	$keys = array_keys($array);
 | 
						|
	return array_keys($keys) !== $keys;
 | 
						|
}
 | 
						|
 | 
						|
function IsIsoDate($dateString)
 | 
						|
{
 | 
						|
	$d = DateTime::createFromFormat('Y-m-d', $dateString);
 | 
						|
	return $d && $d->format('Y-m-d') === $dateString;
 | 
						|
}
 | 
						|
 | 
						|
function IsIsoDateTime($dateTimeString)
 | 
						|
{
 | 
						|
	$d = DateTime::createFromFormat('Y-m-d H:i:s', $dateTimeString);
 | 
						|
	return $d && $d->format('Y-m-d H:i:s') === $dateTimeString;
 | 
						|
}
 | 
						|
 | 
						|
function BoolToString(bool $bool)
 | 
						|
{
 | 
						|
	return $bool ? 'true' : 'false';
 | 
						|
}
 | 
						|
 | 
						|
function Setting(string $name, $value)
 | 
						|
{
 | 
						|
	if (!defined('GROCY_' . $name))
 | 
						|
	{
 | 
						|
		// The content of a $name.txt file in /data/settingoverrides can overwrite the given setting (for embedded mode)
 | 
						|
		$settingOverrideFile = GROCY_DATAPATH . '/settingoverrides/' . $name . '.txt';
 | 
						|
		if (file_exists($settingOverrideFile))
 | 
						|
		{
 | 
						|
			define('GROCY_' . $name, file_get_contents($settingOverrideFile));
 | 
						|
		}
 | 
						|
		else
 | 
						|
		{
 | 
						|
			define('GROCY_' . $name, $value);
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
function GetUserDisplayName($user)
 | 
						|
{
 | 
						|
	$displayName = '';
 | 
						|
	
 | 
						|
	if (empty($user->first_name) && !empty($user->last_name))
 | 
						|
	{
 | 
						|
		$displayName = $user->last_name;
 | 
						|
	}
 | 
						|
	elseif (empty($user->last_name) && !empty($user->first_name))
 | 
						|
	{
 | 
						|
		$displayName = $user->first_name;
 | 
						|
	}
 | 
						|
	elseif (!empty($user->last_name) && !empty($user->first_name))
 | 
						|
	{
 | 
						|
		$displayName = $user->first_name . ' ' . $user->last_name;
 | 
						|
	}
 | 
						|
	else
 | 
						|
	{
 | 
						|
		$displayName = $user->username;
 | 
						|
	}
 | 
						|
 | 
						|
	return $displayName;
 | 
						|
}
 | 
						|
 | 
						|
function Pluralize($number, $singularForm, $pluralForm)
 | 
						|
{
 | 
						|
	$text = $singularForm;
 | 
						|
	if ($number != 1 && $pluralForm !== null && !empty($pluralForm))
 | 
						|
	{
 | 
						|
		$text = $pluralForm;
 | 
						|
	}
 | 
						|
	return $text;
 | 
						|
}
 |