WowPress-Tailwind/theme/wowpress/Frontend/Widgets/Birthdays.php

65 lines
1.9 KiB
PHP

<?php
namespace WoWPress\Frontend\Widgets;
use Illuminate\Support\Collection;
use WoWPress\Models\User;
class Birthdays extends Widget {
protected $template_path = "birthdays.php";
protected $title = "Geburtstage";
protected $base_id = "wowpress_birthdays";
public $name = "Geburtstagsliste";
protected $restricted = "wowpress_view_birthdays";
public function getList(){
$out = new Collection();
foreach(User::all() as $user){
$bday = $user->getMeta('birthday');
if($bday){
$ts = strtotime($bday);
$thisyear = strtotime(date('Y-m-d',strtotime(date('Y-').date('m-d',$ts))));
$nextyear = strtotime(date('Y-m-d',strtotime(date('Y-').date('m-d',$ts)))."+1 year");
$today = strtotime(date('0:00'));
if($thisyear < $today){
$age = intval(($nextyear-$ts)/31536000);
$sort = $nextyear;
$party = false;
}elseif($thisyear > $today){
$age = intval(($thisyear-$ts)/31536000);
$sort= $thisyear;
$party = false;
}else{
$age = intval(($thisyear-$ts)/31536000);
$sort = $thisyear;
$party = true;
}
$next = date('Y-m-d',strtotime('next '.date('m-d',$ts)));
$out[] = [
'user' => $user->username,
'next' => date('d.m.',$ts),
'sort' => date('Y-m-d',$sort),
// 'sort' => date('Y-m-d',strtotime('next '.date('Y-m-d',$ts))),
'age' => $age,
'party' => $party,
];
}
}
return $out->sortBy(fn($a) => $a['sort']);
}
public function form( $instance ) {
}
public function update( $new_instance, $old_instance ) {
$instance = array();
return $instance;
}
}