added addStarter function to Event
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* frame for a shiai
|
||||
*/
|
||||
class shiai
|
||||
class Shiai
|
||||
{
|
||||
private $id = null; //< unique id
|
||||
private $date = null; //< date of the shiai
|
||||
@@ -90,7 +90,10 @@ class shiai
|
||||
}
|
||||
} // end class shiai
|
||||
|
||||
class event
|
||||
/**
|
||||
* Framework for a event
|
||||
*/
|
||||
class Event
|
||||
{
|
||||
private $id = null; //< unique id of the event in the db
|
||||
private $date = null; //< date for the event (@todo ranges?)
|
||||
@@ -98,8 +101,18 @@ class event
|
||||
private $deadline = null; //< until when one can register for the event
|
||||
private $remarks = null; //< remarks to the event (special rules) or a json object for missing data (e.g. non-shiai events)
|
||||
|
||||
private $shiai = null;
|
||||
private $shiai = null; //< a place to load the linked shiai to (if loaded)
|
||||
|
||||
/**
|
||||
* constructor
|
||||
*
|
||||
* @param int $id id in the database
|
||||
* @param string $date date of the event as string in the format "YYYY-MM-DD"
|
||||
* @param int $shiaiId id of the linked shiai or null if not appropriate
|
||||
* @param string $deadline deadline for sign ins in the format "YYYY-MM-DD"
|
||||
* @param string $remarks (json formatted) string with meta information
|
||||
* @param Shiai $shiai if the shiai is loaded anyway it can be placed here.
|
||||
*/
|
||||
public function __construct($id, $date, $shiaiId, $deadline, $remarks, $shiai)
|
||||
{
|
||||
//! @todo InputValidation
|
||||
@@ -112,6 +125,11 @@ class event
|
||||
$this->shiai = $shiai;
|
||||
}
|
||||
|
||||
/**
|
||||
* Representation of an event as (materializeCss) card
|
||||
*
|
||||
* @return string string with the html code of the event
|
||||
*/
|
||||
public function asHtmlCard()
|
||||
{
|
||||
return
|
||||
@@ -135,7 +153,8 @@ class event
|
||||
'<tr>' .
|
||||
'<td>' . $this->date->format('Y-m-d') . '</td>' .
|
||||
'<td><a href="/pages/desktop/wkParticipo/showWkEvent.php?eventId=' . $this->id . '" >' . $this->shiai->getName() . '</a></td>' .
|
||||
'<td><a class="waves-effect waves-light btn-floating modal-trigger" href="#event-modal-' . $this->id . '"><i class="material-icons">add</i></a></td>' .
|
||||
'<td><a class="waves-effect waves-light btn-floating modal-trigger" href="#event-modal-' . $this->id . '"><i class="material-icons">zoom_in
|
||||
</i></a></td>' .
|
||||
'</tr>';
|
||||
}
|
||||
|
||||
@@ -166,8 +185,140 @@ class event
|
||||
shiai::fromArray(($shiai != null) ? $shiai : $member)
|
||||
);
|
||||
}
|
||||
|
||||
/// Einen Starter per userId mit typeId zu einem Event per eventId hinzufügen
|
||||
/// Es erfolgt keine Überprüfung der Meldeberechtigung!
|
||||
public static function addStarter($dbConnection, $starter)
|
||||
{
|
||||
$retMessage = [];
|
||||
|
||||
$query = 'INSERT INTO `wkParticipo_Starter` (eventId, userId, type) values (:eventId, :userId, :typeId);';
|
||||
$params = [
|
||||
':eventId' => ['value' => $starter->getEventId(), 'data_type' => PDO::PARAM_INT],
|
||||
':userId' => ['value' => $starter->getUserId(), 'data_type' => PDO::PARAM_INT],
|
||||
':typeId' => ['value' => $starter->getTypeId(), 'data_type' => PDO::PARAM_INT]
|
||||
];
|
||||
|
||||
return dbConnector::query($query, $params);
|
||||
}
|
||||
} // end class event
|
||||
|
||||
abstract class StartingType
|
||||
{
|
||||
const __default = null;
|
||||
|
||||
const Fighter = 1;
|
||||
const Audience = 2;
|
||||
const NoParticipation = 3;
|
||||
|
||||
/**
|
||||
* convert a variable into a StartingType
|
||||
*
|
||||
* @param [int] $type starting type candidate
|
||||
* @return int representation of the StartingType if successful converted, otherwise null
|
||||
*/
|
||||
public static function toStartingType($type)
|
||||
{
|
||||
return filter_var($type, FILTER_VALIDATE_INT, ['options' => ['default' => null, 'min_range' => 1, 'max_range' => 3]]);
|
||||
}
|
||||
|
||||
/**
|
||||
* string representations of the starting type
|
||||
*
|
||||
* @var array array of StartingType=> its string representation
|
||||
*/
|
||||
public static $AsString = [1 => 'Kämpfer', 2 => 'Zuschauer', 3 => 'keine Teilnahme'];
|
||||
}
|
||||
|
||||
class Starter
|
||||
{
|
||||
private $id = null; //< id of the event in the database
|
||||
private $eventId = null; //< dbId of the event one is starting
|
||||
private $typeId = null; //< type(id) of the starter
|
||||
private $userId = null; //< id of the starting user
|
||||
private $rideId = null; //< id of the ride where the starter can car pool
|
||||
private $mass = null; //< mass in kg on the scale
|
||||
private $result = null; //< result of the start (array of places if multi start)
|
||||
|
||||
// Getter for the member
|
||||
public function getId()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function getEventId()
|
||||
{
|
||||
return $this->eventId;
|
||||
}
|
||||
|
||||
public function getTypeId()
|
||||
{
|
||||
return $this->typeId;
|
||||
}
|
||||
|
||||
public function getUserId()
|
||||
{
|
||||
return $this->userId;
|
||||
}
|
||||
|
||||
public function getRideId()
|
||||
{
|
||||
return $this->rideId;
|
||||
}
|
||||
|
||||
public function getMass()
|
||||
{
|
||||
return $this->mass;
|
||||
}
|
||||
|
||||
public function getResult()
|
||||
{
|
||||
return $this->result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Construtor
|
||||
*
|
||||
* @todo Document
|
||||
* @todo Rethink validation: filter_var is supposed to return the converted value in case of success. But the reference didn't say anything about not success...
|
||||
*/
|
||||
public function __construct($id, $eventId, $typeId, $userId, $rideId, $mass, $result)
|
||||
{
|
||||
$this->id = filter_var($id, FILTER_VALIDATE_INT, ['options' => ['default' => null, 'min_range' => 1]]);
|
||||
$this->eventId = filter_var($id, FILTER_VALIDATE_INT, ['options' => ['default' => null, 'min_range' => 1]]);
|
||||
$this->typeId = StartingType::toStartingType($type);
|
||||
$this->userId = filter_var($id, FILTER_VALIDATE_INT, ['options' => ['default' => null, 'min_range' => 1]]);
|
||||
$this->rideId = filter_var($id, FILTER_VALIDATE_INT, ['options' => ['default' => null, 'min_range' => 1]]);
|
||||
$this->mass = filter_var($mass, FILTER_VALIDATE_FLOAT, ['options' => ['default' => null, 'min_range' => 0.0]]);
|
||||
|
||||
if (is_iterable($result)) {
|
||||
$this->result = [];
|
||||
foreach ($result as $r) {
|
||||
$r = filter_var($r, FILTER_VAR_INT, ['options' => ['default' => null, 'min_range' => 0]]);
|
||||
if ($r) {
|
||||
array_push($this->result, $r);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$this->$result = filter_var($r, FILTER_VAR_INT, ['options' => ['default' => null, 'min_range' => 0]]);
|
||||
}
|
||||
}
|
||||
|
||||
// create starter from assoc array
|
||||
public static function create($parameter)
|
||||
{
|
||||
$id = $parameter['id'] ?? null; //< id of the event in the database
|
||||
$eventId = $parameter['eventId'] ?? null; //< dbId of the event one is starting
|
||||
$typeId = $parameter['typeId'] ?? null; //< type(id) of the starter
|
||||
$userId = $parameter['userId'] ?? null; //< id of the starting user
|
||||
$rideId = $parameter['rideId'] ?? null; //< id of the ride where the starter can car pool
|
||||
$mass = $parameter['mass'] ?? null; //< mass in kg on the scale
|
||||
$result = $parameter['result'] ?? null; //< result of the start (array of places if multi start)
|
||||
|
||||
return new Starter($id, $eventId, $typeId, $userId, $rideId, $mass, $result);
|
||||
}
|
||||
}
|
||||
|
||||
class eventPlaner
|
||||
{
|
||||
private static $db = null;
|
||||
|
||||
Reference in New Issue
Block a user