123 lines
3.5 KiB
PHP
123 lines
3.5 KiB
PHP
<?php
|
|
|
|
class Training extends Model
|
|
{
|
|
protected $dbTable = "trainings";
|
|
protected $dbFields = array(
|
|
'registered' => ['type' => 'datetime', 'required', 'unique', 'autoValMethod' => 'getDateTime'],
|
|
'name' => ['type' => 'text', 'required'],
|
|
'date' => ['type' => 'datetime','required'],
|
|
'duration' => ['type' => 'int'], //in days
|
|
'text' => ['type' => 'text'],
|
|
'url' => ['type' => 'text'], //if there is one
|
|
'logo' => ['type' => 'text', 'default' => 'https://pictshare.net/prrnrk.jpg'],
|
|
'admins' => ['type'=> 'array', 'default'=>[]],
|
|
'members' => ['type'=> 'array', 'default'=>[]],
|
|
'runs' => ['type'=> 'array', 'default'=>[]],
|
|
);
|
|
|
|
function joinUser($training = false)
|
|
{
|
|
if ($training == false)
|
|
$training = $this->id;
|
|
|
|
if (!$this->exists($training))
|
|
return false;
|
|
else {
|
|
if (!in_array($_SESSION['user']->id, $this->data['members']))
|
|
$this->data['members'][] = $_SESSION['user']->id;
|
|
if(!in_array($training,$_SESSION['user']->data['trainings']))
|
|
{
|
|
$_SESSION['user']->data['trainings'][] = $training;
|
|
$_SESSION['user']->save();
|
|
}
|
|
$this->save();
|
|
}
|
|
}
|
|
|
|
function removeUser($training = false)
|
|
{
|
|
if ($training == false)
|
|
$training = $this->id;
|
|
|
|
if (!$this->exists($training))
|
|
return false;
|
|
else {
|
|
if (in_array($_SESSION['user']->id, $this->data['members']))
|
|
$this->data['members'] = array_diff($this->data['members'],[$_SESSION['user']->id]);
|
|
if(in_array($training,$_SESSION['user']->data['trainings']))
|
|
{
|
|
$_SESSION['user']->data['trainings'] = array_diff($_SESSION['user']->data['trainings'],[$training]);
|
|
$_SESSION['user']->save();
|
|
}
|
|
$this->save();
|
|
}
|
|
}
|
|
|
|
function isMyEvent($training = false)
|
|
{
|
|
if ($training == false)
|
|
$training = $this->id;
|
|
|
|
if (!$this->exists($training))
|
|
return false;
|
|
else {
|
|
if (in_array($training, $_SESSION['user']->data['trainings']))
|
|
return true;
|
|
else return false;
|
|
}
|
|
}
|
|
|
|
function amIAdmin($training = false)
|
|
{
|
|
if ($training == false)
|
|
$training = $this->id;
|
|
|
|
if (!$this->exists($training))
|
|
return false;
|
|
else {
|
|
if (in_array($_SESSION['user']->id, $this->data['admins']))
|
|
return true;
|
|
else return false;
|
|
}
|
|
}
|
|
|
|
function getAdmins($training = false)
|
|
{
|
|
if ($training == false)
|
|
$training = $this->id;
|
|
|
|
if (!$this->exists($training))
|
|
return false;
|
|
else {
|
|
$admins = [];
|
|
foreach($this->data['admins'] as $admin)
|
|
{
|
|
$u = new User();
|
|
$u->load($admin);
|
|
$admins[] = $u->getDataFiltered();
|
|
}
|
|
return $admins;
|
|
}
|
|
}
|
|
|
|
function getMembers($training = false)
|
|
{
|
|
if ($training == false)
|
|
$training = $this->id;
|
|
|
|
if (!$this->exists($training))
|
|
return false;
|
|
else {
|
|
$members = [];
|
|
foreach($this->data['members'] as $member)
|
|
{
|
|
$u = new User();
|
|
$u->load($member);
|
|
$members[] = $u->getDataFiltered();
|
|
}
|
|
return $members;
|
|
}
|
|
}
|
|
}
|