hesabixCore/hesabixCore/src/Service/twigFunctions.php
2023-11-27 03:14:05 -05:00

103 lines
2.8 KiB
PHP

<?php
namespace App\Service;
use App\Entity\ChangeReport;
use App\Entity\Settings;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
class twigFunctions
{
private EntityManagerInterface $em;
protected $request;
protected RequestStack $requestStack;
function __construct(
EntityManagerInterface $entityManager,
RequestStack $request
)
{
$this->request = $request->getCurrentRequest();
$this->em = $entityManager;
}
public function md5($val){
return md5($val);
}
public function gravatarHash($email){
return md5( strtolower( trim( $email) ) );
}
public function dayToNow($time){
$time = $time - time(); // to get the time since that moment
$tokens = array (
86400 => 'روز',
2592000 => 'ماه'
);
foreach ($tokens as $unit => $text) {
if ($time < $unit) continue;
return floor($time / $unit) . $text;
}
return 'چند ساعت ';
}
public function pastTime($time){
$time = time() - $time; // to get the time since that moment
$tokens = array (
31536000 => 'سال',
2592000 => 'ماه',
604800 => 'هفته',
86400 => 'روز',
3600 => 'ساعت',
60 => 'دقیقه',
1 => 'ثانیه'
);
foreach ($tokens as $unit => $text) {
if ($time < $unit) continue;
$numberOfUnits = floor($time / $unit);
return $numberOfUnits.' '.$text . ' قبل ';
}
return 'چند ثانیه قبل';
}
public function pastHash($hash){
$tokens = array (
1024 *1024 *1024 *1024 *1024 => 'اگزاهش',
1024 *1024 *1024 *1024 => 'پتاهش',
1024 *1024 *1024 => 'تراهش',
1024 *1024 => 'گیگاهش',
1024 => 'مگاهش',
1 => 'کیلوهش',
);
foreach ($tokens as $unit => $text) {
if ($hash < $unit) continue;
$numberOfUnits = floor($hash / $unit);
return $numberOfUnits.' '.$text;
}
}
public function getHesabixLastVersionNumber():string{
$last = $this->em->getRepository(ChangeReport::class)->findOneBy([],['id'=>'DESC']);
if($last)
return $last->getVersion();
return '0.0.1';
}
public function systemSettings(){
return $this->em->getRepository(Settings::class)->findAll()[0];
}
public function getCurrentUrl(){
return $this->request->getUri();
}
}