wip watten
This commit is contained in:
1 parent
8ace316cbf
commit
afc8a6e1f5
93 files changed
+14369
-1
No files matched your search
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace HermannTelser\Watten\Controller;
|
||||
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
use Psr\Http\Server\MiddlewareInterface;
|
||||
use Psr\Http\Server\RequestHandlerInterface;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use HermannTelser\Watten\Domain\Repository\SpieltageRepository;
|
||||
use HermannTelser\Watten\Domain\Repository\ErgebnisseRepository;
|
||||
use HermannTelser\Watten\Domain\Repository\RanglisteRepository;
|
||||
use HermannTelser\Watten\Domain\Repository\StatistikRepository;
|
||||
use HermannTelser\Watten\Domain\Repository\GstrichenRepository;
|
||||
use HermannTelser\Watten\Domain\Repository\AthletenRepository;
|
||||
|
||||
class EidController implements MiddlewareInterface
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
date_default_timezone_set('Europe/Vienna');
|
||||
}
|
||||
|
||||
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
||||
{
|
||||
$response = $handler->handle($request);
|
||||
if (!isset($request->getQueryParams()['application'])) {
|
||||
return $response;
|
||||
}
|
||||
|
||||
switch (GeneralUtility::_GP('application')) {
|
||||
case 'loadspieltag':
|
||||
$arr = SpieltageRepository::loadSpieltag();
|
||||
break;
|
||||
case 'loadrangliste':
|
||||
$activeTournament = GeneralUtility::_GP('tournament') ?? ErgebnisseRepository::getActiveTournament();
|
||||
$arr = RanglisteRepository::loadRangliste($activeTournament);
|
||||
break;
|
||||
case 'loadgstrichenliste':
|
||||
$activeTournament = GeneralUtility::_GP('tournament') ?? ErgebnisseRepository::getActiveTournament();
|
||||
$arr = GstrichenRepository::loadGstrichenliste($activeTournament);
|
||||
break;
|
||||
case 'loadstatistik':
|
||||
$event_id = GeneralUtility::_GP('event_id') ?? ErgebnisseRepository::getLastEventId();
|
||||
$arr = StatistikRepository::loadStatistik($event_id);
|
||||
break;
|
||||
case 'loadstatistiktangliste':
|
||||
$activeTournament = GeneralUtility::_GP('tournament') ?? ErgebnisseRepository::getActiveTournament();
|
||||
$arr = StatistikRepository::loadStatistikRangliste($activeTournament);
|
||||
break;
|
||||
case 'loadtournamentathleten':
|
||||
$activeTournament = GeneralUtility::_GP('tournament') ?? ErgebnisseRepository::getActiveTournament();
|
||||
$arr = AthletenRepository::loadTournamentAthleten($activeTournament);
|
||||
break;
|
||||
case 'loadpaarlaufer';
|
||||
$activeTournament = GeneralUtility::_GP('tournament') ?? ErgebnisseRepository::getActiveTournament();
|
||||
$teilnehmer_id = GeneralUtility::_GP('teilnehmer_id');
|
||||
$arr = StatistikRepository::loadPaarlauf($activeTournament, $teilnehmer_id);
|
||||
break;
|
||||
}
|
||||
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode((array) $arr);
|
||||
exit();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Controller;
|
||||
|
||||
use HermannTelser\Watten\Domain\Repository\ErgebnisseRepository;
|
||||
use HermannTelser\Watten\Domain\Repository\AthletenRepository;
|
||||
use HermannTelser\Watten\Domain\Repository\SpieltageRepository;
|
||||
use HermannTelser\Watten\Domain\Repository\RanglisteRepository;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
class WattenController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController
|
||||
{
|
||||
private $athletenRepository;
|
||||
|
||||
private $spieltageRepository;
|
||||
|
||||
private $ergebnisseRepository;
|
||||
|
||||
private $ranglisteRepository;
|
||||
|
||||
private $activeTournament;
|
||||
|
||||
private $event_id;
|
||||
|
||||
/**
|
||||
* Inject the Athleten repository
|
||||
*
|
||||
* @param \HermannTelser\Watten\Domain\Repository\AthletenRepository $athletenRepository
|
||||
* @param \HermannTelser\Watten\Domain\Repository\SpieltageRepository $spieltageRepository
|
||||
* @param \HermannTelser\Watten\Domain\Repository\ErgebnisseRepository $ergebnisseRepository
|
||||
* @param \HermannTelser\Watten\Domain\Repository\RanglisteRepository $ranglisteRepository
|
||||
*/
|
||||
|
||||
public function __construct(AthletenRepository $athletenRepository, SpieltageRepository $spieltageRepository, ErgebnisseRepository $ergebnisseRepository, RanglisteRepository $ranglisteRepository)
|
||||
{
|
||||
$this->athletenRepository = $athletenRepository;
|
||||
$this->ergebnisseRepository = $ergebnisseRepository;
|
||||
$this->spieltageRepository = $spieltageRepository;
|
||||
$this->ranglisteRepository = $ranglisteRepository;
|
||||
|
||||
$this->activeTournament = GeneralUtility::_GP('tournament') ?? $this->ergebnisseRepository->getActiveTournament();
|
||||
$this->event_id = GeneralUtility::_GP('event_id') ?? $this->ergebnisseRepository->getLastEventId();
|
||||
}
|
||||
|
||||
public function ergebnisseAction()
|
||||
{
|
||||
$tournaments = $this->ergebnisseRepository->findTournaments(false);
|
||||
$this->view->assign('tournaments', $tournaments);
|
||||
$this->view->assign('active_tournaments', $this->activeTournament);
|
||||
|
||||
$spieltage = $this->spieltageRepository->loadSpieltage();
|
||||
$this->view->assign('spieltage', $spieltage);
|
||||
$this->view->assign('active_event_id', $this->event_id);
|
||||
}
|
||||
|
||||
public function ranglisteAction()
|
||||
{
|
||||
$tournaments = $this->ergebnisseRepository->findTournaments(true);
|
||||
$this->view->assign('tournaments', $tournaments);
|
||||
$this->view->assign('active', $this->activeTournament);
|
||||
}
|
||||
|
||||
public function statistikAction()
|
||||
{
|
||||
$tournaments = $this->ergebnisseRepository->findTournaments(true);
|
||||
$this->view->assign('tournaments', $tournaments);
|
||||
$this->view->assign('active', $this->activeTournament);
|
||||
$teilnehmer = $this->athletenRepository->loadTournamentAthleten($this->activeTournament);
|
||||
$this->view->assign('teilnehmer', $teilnehmer);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,191 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Daten;
|
||||
|
||||
// use Doctrine\DBAL\DBALException;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Database\Connection;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
class Berechnung
|
||||
{
|
||||
public static function run()
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_athleten')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid', 'athlet')
|
||||
->from('tx_watten_domain_model_athleten')
|
||||
->execute();
|
||||
|
||||
$user = [];
|
||||
foreach ($res as $key => $value) {
|
||||
$user[$value['uid']] = $value['athlet'];
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_tournaments')->createQueryBuilder();
|
||||
$tournaments = $queryBuilder
|
||||
->select('uid', 'tournament', 'active', 'king')
|
||||
->from('tx_watten_tournaments')
|
||||
->execute();
|
||||
|
||||
// TRUNCATE `tx_watten_tournaments_ergebnisse`
|
||||
GeneralUtility::makeInstance(ConnectionPool::class)
|
||||
->getConnectionForTable('tx_watten_tournaments_ergebnisse')
|
||||
->truncate('tx_watten_tournaments_ergebnisse');
|
||||
|
||||
self::calcolate_data($user, ['uid' => 0, 'tournament' => 'Gesamt']);
|
||||
foreach ($tournaments as $key => $row) {
|
||||
self::calcolate_data($user, $row);
|
||||
}
|
||||
}
|
||||
|
||||
public static function calcolate_data($user, $row)
|
||||
{
|
||||
$tournamentid = $row['uid'];
|
||||
$tournament = $row['tournament'];
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_ergebnisse')->createQueryBuilder();
|
||||
if ($tournamentid == 0) {
|
||||
// Gesamt
|
||||
$_tournament = $queryBuilder
|
||||
->select('s1', 's2', 'v1', 'v2', 'bumid')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->executeQuery()
|
||||
->fetchAllAssociative();
|
||||
} else {
|
||||
$_tournament = $queryBuilder
|
||||
->select('s1', 's2', 'v1', 'v2', 'bumid')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('tournaments_id', (int) $tournamentid)
|
||||
)
|
||||
->executeQuery()
|
||||
->fetchAllAssociative();
|
||||
}
|
||||
$arr = [];
|
||||
foreach ($_tournament as $key => $value) {
|
||||
$bum = $value['bumid'];
|
||||
$s1 = $value['s1'];
|
||||
$s2 = $value['s2'];
|
||||
$v1 = $value['v1'];
|
||||
$v2 = $value['v2'];
|
||||
|
||||
if (!isset($arr[$s1]['s'][$bum])) {
|
||||
$arr[$s1]['s'][$bum] = 0;
|
||||
}
|
||||
if (!isset($arr[$s2]['s'][$bum])) {
|
||||
$arr[$s2]['s'][$bum] = 0;
|
||||
}
|
||||
if (!isset($arr[$v1]['v'][$bum])) {
|
||||
$arr[$v1]['v'][$bum] = 0;
|
||||
}
|
||||
if (!isset($arr[$v2]['v'][$bum])) {
|
||||
$arr[$v2]['v'][$bum] = 0;
|
||||
}
|
||||
if (!isset($arr[$s1]['p'])) {
|
||||
$arr[$s1]['p'] = 0;
|
||||
}
|
||||
if (!isset($arr[$s2]['p'])) {
|
||||
$arr[$s2]['p'] = 0;
|
||||
}
|
||||
if (!isset($arr[$v1]['p'])) {
|
||||
$arr[$v1]['p'] = 0;
|
||||
}
|
||||
if (!isset($arr[$v2]['p'])) {
|
||||
$arr[$v2]['p'] = 0;
|
||||
}
|
||||
$arr[$s1]['s'][$bum]++;
|
||||
$arr[$s2]['s'][$bum]++;
|
||||
$arr[$v1]['v'][$bum]++;
|
||||
$arr[$v2]['v'][$bum]++;
|
||||
$arr[$s1]['p']++;
|
||||
$arr[$s2]['p']++;
|
||||
$arr[$v1]['p']++;
|
||||
$arr[$v2]['p']++;
|
||||
}
|
||||
|
||||
foreach ($arr as $userid => $value) {
|
||||
$punkte = 0;
|
||||
if (isset($value['s'][1])) {
|
||||
$punkte = $value['s'][1] * 1.1;
|
||||
}
|
||||
if (isset($value['s'][2])) {
|
||||
$punkte += $value['s'][2] * 2.1;
|
||||
}
|
||||
if (isset($value['s'][4])) {
|
||||
$punkte += $value['s'][4] * 4.1;
|
||||
}
|
||||
if (isset($value['v'][1])) {
|
||||
$punkte -= $value['v'][1];
|
||||
}
|
||||
if (isset($value['v'][2])) {
|
||||
$punkte -= $value['v'][2] * 2;
|
||||
}
|
||||
if (isset($value['v'][4])) {
|
||||
$punkte -= $value['v'][4] * 4;
|
||||
}
|
||||
$arr[$userid]['punkte'] = round($punkte, 2);
|
||||
$arr[$userid]['spiele'] = $value['p'];
|
||||
$arr[$userid]['userid'] = $userid;
|
||||
$arr[$userid]['name'] = $user[$userid];
|
||||
$arr[$userid]['userid'] = $userid;
|
||||
}
|
||||
|
||||
$punkte = array_column($arr, 'punkte');
|
||||
array_multisort($punkte, SORT_NUMERIC, SORT_DESC, $arr);
|
||||
|
||||
$winner = $arr[0];
|
||||
$looser = $arr[array_key_last($arr)];
|
||||
|
||||
foreach ($arr as $key => $value) {
|
||||
$arr[$key]['platz'] = $key + 1;
|
||||
$arr[$key]['s1'] = isset($value['s'][1]) ? $value['s'][1] : '';
|
||||
$arr[$key]['s1'] = isset($value['s'][1]) ? $value['s'][1] : '';
|
||||
$arr[$key]['s2'] = isset($value['s'][2]) ? $value['s'][2] : '';
|
||||
$arr[$key]['s4'] = isset($value['s'][4]) ? $value['s'][4] : '';
|
||||
unset($arr[$key]['s']);
|
||||
|
||||
$arr[$key]['v1'] = isset($value['v'][1]) ? $value['v'][1] : '';
|
||||
$arr[$key]['v2'] = isset($value['v'][2]) ? $value['v'][2] : '';
|
||||
$arr[$key]['v4'] = isset($value['v'][4]) ? $value['v'][4] : '';
|
||||
unset($arr[$key]['v']);
|
||||
}
|
||||
|
||||
$insert_value = [];
|
||||
$insert_value['crdate'] = time();
|
||||
$insert_value['tournament_id'] = $tournamentid;
|
||||
$insert_value['tournament'] = (string)$tournament;
|
||||
if ($tournamentid == 0) {
|
||||
$insert_value['type'] = 'gesamt';
|
||||
} elseif ($row['king'] == 1) {
|
||||
$insert_value['type'] = 'king';
|
||||
} elseif ($row['active'] == 1) {
|
||||
$insert_value['type'] = 'active';
|
||||
}
|
||||
$insert_value['koenig'] = (string)$winner['name'];
|
||||
$insert_value['koenig_id'] = (int)$winner['userid'];
|
||||
$insert_value['koenig_spiele'] = isset($winner['spiele']) ? $winner['spiele'] : 0;
|
||||
$insert_value['koenig_punkte'] = isset($winner['punkte']) ? (float) $winner['punkte'] : 0;
|
||||
$insert_value['koenig_siege'] = isset($winner['s'][1]) ? $winner['s'][1] : 0;
|
||||
$insert_value['koenig_niederlagen'] = isset($winner['v'][1]) ? $winner['v'][1] : 0;
|
||||
$insert_value['koenig_schneider'] = isset($winner['s'][2]) ? $winner['s'][2] : 0;
|
||||
$insert_value['koenig_schneider_niederlage'] = isset($winner['v'][2]) ? $winner['v'][2] : 0;
|
||||
$insert_value['koenig_retour_schneider'] = isset($winner['s'][4]) ? $winner['s'][4] : 0;
|
||||
$insert_value['koenig_retour_schneider_niederlage'] = isset($winner['v'][4]) ? $winner['v'][4] : 0;
|
||||
|
||||
$insert_value['schneewatter'] = (string)$looser['name'];
|
||||
$insert_value['schneewatter_id'] = (int)$looser['userid'];
|
||||
$insert_value['schneewatter_spiele'] = isset($looser['spiele']) ? $looser['spiele'] : 0;
|
||||
$insert_value['schneewatter_punkte'] = isset($looser['punkte']) ? (float) $looser['punkte'] : 0;
|
||||
$insert_value['schneewatter_siege'] = isset($looser['s'][1]) ? $looser['s'][1] : 0;
|
||||
$insert_value['schneewatter_niederlagen'] = isset($looser['v'][1]) ? $looser['v'][1] : 0;
|
||||
$insert_value['schneewatter_schneider'] = isset($looser['s'][2]) ? $looser['s'][2] : 0;
|
||||
$insert_value['schneewatter_schneider_niederlage'] = isset($looser['v'][2]) ? $looser['v'][2] : 0;
|
||||
$insert_value['schneewatter_retour_schneider'] = isset($looser['s'][4]) ? $looser['s'][4] : 0;
|
||||
$insert_value['schneewatter_retour_schneider_niederlage'] = isset($looser['v'][4]) ? $looser['v'][4] : 0;
|
||||
|
||||
$insert_value['result_json'] = json_encode($arr);
|
||||
|
||||
GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_tournaments_ergebnisse')
|
||||
->insert('tx_watten_tournaments_ergebnisse', $insert_value);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,117 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Domain\Model;
|
||||
|
||||
use TYPO3\CMS\Extbase\DomainObject\AbstractEntity;
|
||||
|
||||
class Athleten extends AbstractEntity
|
||||
{
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $gender = 0;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $name = '';
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $image = '';
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $isactive = 0;
|
||||
|
||||
|
||||
public function __construct(int $gender = 0, string $name = '', string $image = '', int $isactive = 0)
|
||||
{
|
||||
$this->setGender($gender);
|
||||
$this->setName($name);
|
||||
$this->setImage($image);
|
||||
$this->setIsactive($isactive);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param int $gender
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setGender(int $gender): void
|
||||
{
|
||||
$this->gender = $gender;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getGender(): int
|
||||
{
|
||||
return $this->gender;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string $name
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setName(string $name): void
|
||||
{
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getName(): string
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string $image
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setImage(string $image): void
|
||||
{
|
||||
$this->image = $image;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getImage(): string
|
||||
{
|
||||
return $this->image;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param int $isactive
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setIsactive(int $isactive): void
|
||||
{
|
||||
$this->isactive = $isactive;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getIsactive(): int
|
||||
{
|
||||
return $this->isactive;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,170 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Domain\Model;
|
||||
|
||||
use DateTime;
|
||||
use TYPO3\CMS\Extbase\DomainObject\AbstractEntity;
|
||||
|
||||
class Ergebnisse extends AbstractEntity
|
||||
{
|
||||
/**
|
||||
* @var DateTime
|
||||
*/
|
||||
protected $datum = 0;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $s1 = 0;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $s2 = 0;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $v1 = 0;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $v2 = 0;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $bumid = 0;
|
||||
|
||||
public function __construct(int $datum = 0, int $s1 = 0, int $s2 = 0, int $v1 = 0, int $v2 = 0, int $bumid = 0)
|
||||
{
|
||||
$this->setDatum($datum);
|
||||
$this->setS1($s1);
|
||||
$this->setS2($s2);
|
||||
$this->setV1($v1);
|
||||
$this->setV2($v2);
|
||||
$this->setBumid($bumid);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param DateTime $datum time stamp
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setDatum(int $datum): void
|
||||
{
|
||||
$this->datum = $datum;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return DateTime
|
||||
*/
|
||||
public function getDatum(): int
|
||||
{
|
||||
return $this->datum;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param int $s1
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setS1(int $s1): void
|
||||
{
|
||||
$this->s1 = $s1;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return Int
|
||||
*/
|
||||
public function getS1(): int
|
||||
{
|
||||
return $this->s1;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param int $s2
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setS2(int $s2): void
|
||||
{
|
||||
$this->s2 = $s2;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return Int
|
||||
*/
|
||||
public function getS2(): int
|
||||
{
|
||||
return $this->s2;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param int $v1
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setV1(int $v1): void
|
||||
{
|
||||
$this->v1 = $v1;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return Int
|
||||
*/
|
||||
public function getV1(): int
|
||||
{
|
||||
return $this->v1;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param int $v1
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setV2(int $v2): void
|
||||
{
|
||||
$this->v2 = $v2;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return Int
|
||||
*/
|
||||
public function getV2(): int
|
||||
{
|
||||
return $this->v2;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param int $bumid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setBumid(int $bumid): void
|
||||
{
|
||||
$this->bumid = $bumid;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return Int
|
||||
*/
|
||||
public function getBumid(): int
|
||||
{
|
||||
return $this->bumid;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,119 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Domain\Model;
|
||||
|
||||
use \DateTime;
|
||||
use TYPO3\CMS\Extbase\DomainObject\AbstractEntity;
|
||||
|
||||
class Events extends AbstractEntity
|
||||
{
|
||||
/**
|
||||
* @var DateTime
|
||||
*/
|
||||
protected $datum = 0;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $tournaments_id = 0;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $event = 0;
|
||||
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $isactive = 0;
|
||||
|
||||
|
||||
public function __construct(int $datum = 0, int $tournaments_id = 0, string $event = '', int $isactive = 0)
|
||||
{
|
||||
$this->setDatum($datum);
|
||||
$this->setTournamentId($tournaments_id);
|
||||
$this->setEvent($event);
|
||||
$this->setIsactive($isactive);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param DateTime $datum
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setDatum(int $datum): void
|
||||
{
|
||||
$this->datum = $datum;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return DateTime
|
||||
*/
|
||||
public function getDatum(): int
|
||||
{
|
||||
return $this->datum;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param int $tournaments_id
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setTournamentId(int $tournaments_id): void
|
||||
{
|
||||
$this->s1 = $tournaments_id;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return Int
|
||||
*/
|
||||
public function getTournamentId(): int
|
||||
{
|
||||
return $this->tournaments_id;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param String $event
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setEvent(string $event): void
|
||||
{
|
||||
$this->event = $event;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return String
|
||||
*/
|
||||
public function getEvent(): string
|
||||
{
|
||||
return $this->event;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param int $isactive
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setIsactive(int $isactive): void
|
||||
{
|
||||
$this->s1 = $isactive;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return Int
|
||||
*/
|
||||
public function getIsactive(): int
|
||||
{
|
||||
return $this->isactive;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Domain\Repository;
|
||||
|
||||
use TYPO3\CMS\Extbase\Persistence\Repository;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
class AthletenRepository extends Repository
|
||||
{
|
||||
public static function loadTournamentAthleten($activeTournament)
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_athleten')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid', 'name')
|
||||
->from('tx_watten_domain_model_athleten')
|
||||
->execute();
|
||||
$athleten = [];
|
||||
foreach ($res as $value) {
|
||||
$athleten[$value['uid']] = $value['name'];
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_ergebnisse')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('s1', 's2', 'v1', 'v2')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('tournaments_id', (int) $activeTournament)
|
||||
)
|
||||
->execute();
|
||||
$active = [];
|
||||
foreach ($res as $value) {
|
||||
$active[] = $value['s1'];
|
||||
$active[] = $value['s2'];
|
||||
$active[] = $value['v1'];
|
||||
$active[] = $value['v2'];
|
||||
}
|
||||
$active = array_unique($active);
|
||||
|
||||
$return = [];
|
||||
$return[] = ['id' => 0, 'name' => 'Athleten'];
|
||||
foreach ($athleten as $key => $name) {
|
||||
if (in_array($key, $active)) {
|
||||
$return[] = ['id' => $key, 'name' => $name];
|
||||
}
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Domain\Repository;
|
||||
|
||||
use TYPO3\CMS\Extbase\Persistence\Repository;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use stdClass;
|
||||
|
||||
class ErgebnisseRepository extends Repository
|
||||
{
|
||||
public static function loadStatistik()
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_tournaments')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid')
|
||||
->from('tx_watten_tournaments')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('active', (int) 1)
|
||||
)
|
||||
->execute();
|
||||
foreach ($res as $key => $value) {
|
||||
return (int) $value['uid'];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static function getActiveTournament()
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_tournaments')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid')
|
||||
->from('tx_watten_tournaments')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('active', (int) 1)
|
||||
)
|
||||
->execute();
|
||||
foreach ($res as $key => $value) {
|
||||
return (int) $value['uid'];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public function getLastEventId()
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_events')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid')
|
||||
->from('tx_watten_domain_model_events')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('isactive', (int) 1)
|
||||
)
|
||||
->execute();
|
||||
foreach ($res as $key => $value) {
|
||||
return (int) $value['uid'];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public function findTournaments($mitGesammt)
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_tournaments')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid', 'tournament', 'active')
|
||||
->from('tx_watten_tournaments')
|
||||
->execute();
|
||||
|
||||
$tournaments = [];
|
||||
foreach ($res as $key => $value) {
|
||||
$tmp = new stdClass();
|
||||
$tmp->id = (int) $value['uid'];
|
||||
$tmp->name = $value['tournament'];
|
||||
$tmp->active = $value['active'];
|
||||
$tournaments[] = $tmp;
|
||||
}
|
||||
if ($mitGesammt == true) {
|
||||
$tmp = new stdClass();
|
||||
$tmp->id = -1;
|
||||
$tmp->name = "Gesamt";
|
||||
$tournaments[] = $tmp;
|
||||
}
|
||||
return $tournaments;
|
||||
}
|
||||
|
||||
public function findByEventId(int $event_id)
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_athleten')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid', 'name')
|
||||
->from('tx_watten_domain_model_athleten')
|
||||
->execute();
|
||||
$athleten = [];
|
||||
foreach ($res as $key => $value) {
|
||||
$athleten[$value['uid']] = $value['name'];
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_ergebnisse')->createQueryBuilder();
|
||||
$ergebnisse = $queryBuilder
|
||||
->select('uid', 'datum', 's1', 's2', 'v1', 'v2', 'bumid')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('event_id', (int) $event_id)
|
||||
)
|
||||
->execute();
|
||||
|
||||
$return = [];
|
||||
foreach ($ergebnisse as $key => $value) {
|
||||
$tmp = [];
|
||||
$tmp['uid'] = $value['uid'];
|
||||
$tmp['s1'] = $athleten[$value['s1']];
|
||||
$tmp['s2'] = $athleten[$value['s2']];
|
||||
$tmp['v1'] = $athleten[$value['v1']];
|
||||
$tmp['v2'] = $athleten[$value['v2']];
|
||||
$tmp['bumid'] = $value['bumid'];
|
||||
$return[] = $tmp;
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Domain\Repository;
|
||||
|
||||
use TYPO3\CMS\Extbase\Persistence\Repository;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use stdClass;
|
||||
|
||||
class GstrichenRepository extends Repository
|
||||
{
|
||||
public static function loadGstrichenliste($activeTournament)
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_athleten')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid', 'name')
|
||||
->from('tx_watten_domain_model_athleten')
|
||||
->execute();
|
||||
$user = [];
|
||||
foreach ($res as $key => $value) {
|
||||
$user[$value['uid']] = $value['name'];
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_ergebnisse')->createQueryBuilder();
|
||||
if ($activeTournament < 0) {
|
||||
$ergebnisse = $queryBuilder
|
||||
->select('s1', 's2', 'v1', 'v2', 'gstrichen')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->execute();
|
||||
} else {
|
||||
$ergebnisse = $queryBuilder
|
||||
->select('s1', 's2', 'v1', 'v2', 'gstrichen')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->where($queryBuilder->expr()->eq('tournaments_id', (int) $activeTournament))
|
||||
->execute();
|
||||
}
|
||||
|
||||
$arr = [];
|
||||
foreach ($ergebnisse as $key => $value) {
|
||||
$s1 = $value['s1'];
|
||||
$s2 = $value['s2'];
|
||||
$v1 = $value['v1'];
|
||||
$v2 = $value['v2'];
|
||||
$gs = $value['gstrichen'];
|
||||
|
||||
if (!isset($arr[$s1]['s'])) {
|
||||
$arr[$s1]['s'] = 0;
|
||||
$arr[$s1]['v'] = 0;
|
||||
}
|
||||
if (!isset($arr[$s2]['s'])) {
|
||||
$arr[$s2]['s'] = 0;
|
||||
$arr[$s2]['v'] = 0;
|
||||
}
|
||||
if (!isset($arr[$v1]['v'])) {
|
||||
$arr[$v1]['v'] = 0;
|
||||
$arr[$v1]['s'] = 0;
|
||||
}
|
||||
if (!isset($arrv[$v2]['v'])) {
|
||||
$arr[$v2]['v'] = 0;
|
||||
$arr[$v2]['s'] = 0;
|
||||
}
|
||||
if ($gs) {
|
||||
$arr[$s1]['s']++;
|
||||
$arr[$s2]['s']++;
|
||||
$arr[$v1]['v']++;
|
||||
$arr[$v2]['v']++;
|
||||
}
|
||||
}
|
||||
|
||||
$sieger = [];
|
||||
$verlierer = [];
|
||||
$i = 1;
|
||||
foreach ($arr as $userid => $value) {
|
||||
$sieger[$i]['sieger'] = $user[$userid];
|
||||
$sieger[$i]['gewonnen'] = $value['s'];
|
||||
|
||||
$verlierer[$i]['verlierer'] = $user[$userid];
|
||||
$verlierer[$i]['verloren'] = $value['v'];
|
||||
|
||||
$i++;
|
||||
}
|
||||
$gewonnen = array_column($sieger, 'gewonnen');
|
||||
array_multisort($gewonnen, SORT_NUMERIC, SORT_DESC, $sieger);
|
||||
$verloren = array_column($verlierer, 'verloren');
|
||||
array_multisort($verloren, SORT_NUMERIC, SORT_DESC, $verlierer);
|
||||
|
||||
$return = [];
|
||||
$s = 0;
|
||||
$v = 0;
|
||||
foreach ($gewonnen as $key => $value) {
|
||||
$return[$key] = array_merge($sieger[$key], $verlierer[$key]);
|
||||
$return[$key]['platz'] = $key + 1;
|
||||
|
||||
if ($return[$key]['gewonnen'] == 0) {
|
||||
$return[$key]['sieger'] = '';
|
||||
$return[$key]['gewonnen'] = '';
|
||||
$s = 1;
|
||||
}
|
||||
if ($return[$key]['verloren'] == 0) {
|
||||
$return[$key]['verloren'] = '';
|
||||
$return[$key]['verlierer'] = '';
|
||||
$v = 1;
|
||||
}
|
||||
if ($s and $v) {
|
||||
unset($return[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,149 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Domain\Repository;
|
||||
|
||||
use TYPO3\CMS\Extbase\Persistence\Repository;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use stdClass;
|
||||
|
||||
class RanglisteRepository extends Repository
|
||||
{
|
||||
public static function loadRangliste($activeTournament)
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_athleten')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid', 'name')
|
||||
->from('tx_watten_domain_model_athleten')
|
||||
->execute();
|
||||
$user = [];
|
||||
foreach ($res as $key => $value) {
|
||||
$user[$value['uid']] = $value['name'];
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_ergebnisse')->createQueryBuilder();
|
||||
if ($activeTournament < 0) {
|
||||
$ergebnisse = $queryBuilder
|
||||
->select('s1', 's2', 'v1', 'v2', 'bumid', 'gstrichen')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->execute();
|
||||
} else {
|
||||
$ergebnisse = $queryBuilder
|
||||
->select('s1', 's2', 'v1', 'v2', 'bumid', 'gstrichen')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->where($queryBuilder->expr()->eq('tournaments_id', (int) $activeTournament))
|
||||
->execute();
|
||||
}
|
||||
// debug($queryBuilder->getSQL());
|
||||
|
||||
$arr = [];
|
||||
foreach ($ergebnisse as $key => $value) {
|
||||
$bum = $value['bumid'];
|
||||
$s1 = $value['s1'];
|
||||
$s2 = $value['s2'];
|
||||
$v1 = $value['v1'];
|
||||
$v2 = $value['v2'];
|
||||
$ge = $value['gstrichen'];
|
||||
|
||||
if (!isset($arr[$s1]['s'][$bum])) {
|
||||
$arr[$s1]['s'][$bum] = 0;
|
||||
}
|
||||
if (!isset($arr[$s2]['s'][$bum])) {
|
||||
$arr[$s2]['s'][$bum] = 0;
|
||||
}
|
||||
if (!isset($arr[$v1]['v'][$bum])) {
|
||||
$arr[$v1]['v'][$bum] = 0;
|
||||
}
|
||||
if (!isset($arr[$v2]['v'][$bum])) {
|
||||
$arr[$v2]['v'][$bum] = 0;
|
||||
}
|
||||
if (!isset($arr[$s1]['p'])) {
|
||||
$arr[$s1]['p'] = 0;
|
||||
}
|
||||
if (!isset($arr[$s2]['p'])) {
|
||||
$arr[$s2]['p'] = 0;
|
||||
}
|
||||
if (!isset($arr[$v1]['p'])) {
|
||||
$arr[$v1]['p'] = 0;
|
||||
}
|
||||
if (!isset($arr[$v2]['p'])) {
|
||||
$arr[$v2]['p'] = 0;
|
||||
}
|
||||
if (!isset($arr[$s1]['sg'])) {
|
||||
$arr[$s1]['sg'] = 0;
|
||||
}
|
||||
if (!isset($arr[$s2]['sg'])) {
|
||||
$arr[$s2]['sg'] = 0;
|
||||
}
|
||||
if (!isset($arr[$v1]['vg'])) {
|
||||
$arr[$v1]['vg'] = 0;
|
||||
}
|
||||
if (!isset($arr[$v2]['vg'])) {
|
||||
$arr[$v2]['vg'] = 0;
|
||||
}
|
||||
$arr[$s1]['s'][$bum]++;
|
||||
$arr[$s2]['s'][$bum]++;
|
||||
$arr[$v1]['v'][$bum]++;
|
||||
$arr[$v2]['v'][$bum]++;
|
||||
$arr[$s1]['p']++;
|
||||
$arr[$s2]['p']++;
|
||||
$arr[$v1]['p']++;
|
||||
$arr[$v2]['p']++;
|
||||
if ($ge) {
|
||||
$arr[$s1]['sg']++;
|
||||
$arr[$s2]['sg']++;
|
||||
$arr[$v1]['vg']++;
|
||||
$arr[$v2]['vg']++;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($arr as $userid => $value) {
|
||||
$punkte = 0;
|
||||
if (isset($value['s'][1])) {
|
||||
$punkte += $value['s'][1] * 1.1;
|
||||
}
|
||||
if (isset($value['s'][2])) {
|
||||
$punkte += $value['s'][2] * 2.1;
|
||||
}
|
||||
if (isset($value['s'][4])) {
|
||||
$punkte += $value['s'][4] * 4.1;
|
||||
}
|
||||
if (isset($value['v'][1])) {
|
||||
$punkte -= $value['v'][1];
|
||||
}
|
||||
if (isset($value['v'][2])) {
|
||||
$punkte -= $value['v'][2] * 2;
|
||||
}
|
||||
if (isset($value['v'][4])) {
|
||||
$punkte -= $value['v'][4] * 4;
|
||||
}
|
||||
$arr[$userid]['punkte'] = round($punkte, 2);
|
||||
$arr[$userid]['spiele'] = $value['p'];
|
||||
$arr[$userid]['name'] = $user[$userid];
|
||||
unset($arr[$userid]['p']);
|
||||
}
|
||||
|
||||
$punkte = array_column($arr, 'punkte');
|
||||
array_multisort($punkte, SORT_NUMERIC, SORT_DESC, $arr);
|
||||
|
||||
// $winner = $arr[0];
|
||||
// $looser = $arr[array_key_last($arr)];
|
||||
|
||||
foreach ($arr as $key => $value) {
|
||||
$arr[$key]['platz'] = $key + 1;
|
||||
$arr[$key]['s1'] = isset($value['s'][1]) ?? '';
|
||||
$arr[$key]['s1'] = isset($value['s'][1]) ? $value['s'][1] : '';
|
||||
$arr[$key]['s2'] = isset($value['s'][2]) ? $value['s'][2] : '';
|
||||
$arr[$key]['s4'] = isset($value['s'][4]) ? $value['s'][4] : '';
|
||||
$arr[$key]['sg'] = isset($value['sg']) && $value['sg'] != 0 ? $value['sg'] : '';
|
||||
unset($arr[$key]['s']);
|
||||
|
||||
$arr[$key]['v1'] = isset($value['v'][1]) ? $value['v'][1] : '';
|
||||
$arr[$key]['v2'] = isset($value['v'][2]) ? $value['v'][2] : '';
|
||||
$arr[$key]['v4'] = isset($value['v'][4]) ? $value['v'][4] : '';
|
||||
$arr[$key]['vg'] = isset($value['vg']) && $value['vg'] != 0 ? $value['vg'] : '';
|
||||
unset($arr[$key]['v']);
|
||||
}
|
||||
return $arr;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,146 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Domain\Repository;
|
||||
|
||||
use TYPO3\CMS\Extbase\Persistence\Repository;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use HermannTelser\Watten\Domain\Repository\ErgebnisseRepository;
|
||||
use stdClass;
|
||||
|
||||
class SpieltageRepository extends Repository
|
||||
{
|
||||
public static function loadSpieltage()
|
||||
{
|
||||
$activeTournament = GeneralUtility::_GP('tournament') ?? ErgebnisseRepository::getActiveTournament();
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_events')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid', 'datum', 'event', 'isactive')
|
||||
->from('tx_watten_domain_model_events')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('tournaments_id', (int) $activeTournament)
|
||||
)
|
||||
->addOrderBy('datum', 'DESC')
|
||||
->execute();
|
||||
|
||||
$spieltage = [];
|
||||
$tmp = new stdClass();
|
||||
$tmp->id = 0;
|
||||
$tmp->name = 'Spieltag';
|
||||
$spieltage[] = $tmp;
|
||||
foreach ($res as $key => $value) {
|
||||
$tmp = new stdClass();
|
||||
$tmp->id = (int) $value['uid'];
|
||||
// $tmp->selected = (int) $value['isactive'];
|
||||
$tmp->name = date("d. M. Y", $value['datum']);
|
||||
if ($value['event']) {
|
||||
$tmp->name .= ' - ' . $value['event'];
|
||||
}
|
||||
$spieltage[] = $tmp;
|
||||
}
|
||||
|
||||
return $spieltage;
|
||||
}
|
||||
|
||||
public static function loadSpieltag()
|
||||
{
|
||||
$event_id = (int) GeneralUtility::_GP('event_id');
|
||||
if (!$event_id) {
|
||||
exit;
|
||||
}
|
||||
|
||||
$return = [];
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_events')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('story')
|
||||
->from('tx_watten_domain_model_events')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('uid', (int) $event_id)
|
||||
)
|
||||
->execute();
|
||||
foreach ($res as $key => $value) {
|
||||
$return['story'] = $value['story'];
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_athleten')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid', 'name')
|
||||
->from('tx_watten_domain_model_athleten')
|
||||
->execute();
|
||||
$athleten = [];
|
||||
foreach ($res as $key => $value) {
|
||||
$athleten[$value['uid']] = $value['name'];
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_ergebnisse')->createQueryBuilder();
|
||||
$ergebnisse = $queryBuilder
|
||||
->select('uid', 'datum', 's1', 's2', 'v1', 'v2', 'bumid', 'gstrichen')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->where(
|
||||
$queryBuilder->expr()->eq('event_id', (int) $event_id)
|
||||
)
|
||||
->execute();
|
||||
|
||||
$data = [];
|
||||
foreach ($ergebnisse as $key => $value) {
|
||||
$tmp = [];
|
||||
$tmp['uid'] = (int) $value['uid'];
|
||||
$tmp['s1'] = $athleten[$value['s1']];
|
||||
$tmp['s2'] = $athleten[$value['s2']];
|
||||
$tmp['v1'] = $athleten[$value['v1']];
|
||||
$tmp['v2'] = $athleten[$value['v2']];
|
||||
$tmp['gs'] = $value['gstrichen'] ? '||' : '';
|
||||
$tmp['bumid'] = (int) $value['bumid'];
|
||||
$tmp['datum'] = (int) $value['datum'];
|
||||
$data[] = $tmp;
|
||||
}
|
||||
$return['data'] = $data;
|
||||
$return['punkte'] = self::punkte($data);
|
||||
return $return;
|
||||
}
|
||||
|
||||
private static function punkte(array $data)
|
||||
{
|
||||
$punkte = [];
|
||||
foreach ($data as $value) {
|
||||
$s1 = $value['s1'];
|
||||
$s2 = $value['s2'];
|
||||
$v1 = $value['v1'];
|
||||
$v2 = $value['v2'];
|
||||
if (!isset($punkte[$s1])) {
|
||||
$punkte[$s1] = $value['bumid'] + 0.1;
|
||||
} else {
|
||||
$punkte[$s1] = $punkte[$s1] + $value['bumid'] + 0.1;
|
||||
}
|
||||
if (!isset($punkte[$s2])) {
|
||||
$punkte[$s2] = $value['bumid'] + 0.1;
|
||||
} else {
|
||||
$punkte[$s2] = $punkte[$s2] + $value['bumid'] + 0.1;
|
||||
}
|
||||
if (!isset($punkte[$v1])) {
|
||||
$punkte[$v1] = - ($value['bumid']);
|
||||
} else {
|
||||
$punkte[$v1] = $punkte[$v1] - $value['bumid'];
|
||||
}
|
||||
if (!isset($punkte[$v2])) {
|
||||
$punkte[$v2] = - ($value['bumid']);
|
||||
} else {
|
||||
$punkte[$v2] = $punkte[$v2] - $value['bumid'];
|
||||
}
|
||||
}
|
||||
$return = [];
|
||||
arsort($punkte);
|
||||
$i = 1;
|
||||
foreach ($punkte as $name => $value) {
|
||||
$tmp = [];
|
||||
$tmp['rang'] = $i;
|
||||
$tmp['name'] = $name;
|
||||
$tmp['punkte'] = round($value, 1);
|
||||
$return[] = $tmp;
|
||||
$i++;
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,395 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Domain\Repository;
|
||||
|
||||
use TYPO3\CMS\Extbase\Persistence\Repository;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use stdClass;
|
||||
|
||||
class StatistikRepository extends Repository
|
||||
{
|
||||
public static function loadStatistikRangliste($activeTournament)
|
||||
{
|
||||
/*
|
||||
[punkte] => 5.9
|
||||
[spiele] => 13
|
||||
[name] => Gerhard
|
||||
[platz] => 1
|
||||
[s1] => 9
|
||||
[s2] =>
|
||||
[s4] =>
|
||||
[v1] => 4
|
||||
[v2] =>
|
||||
[v4] =>
|
||||
*/
|
||||
$arr = RanglisteRepository::loadRangliste($activeTournament);
|
||||
$return = [];
|
||||
$tmp = [];
|
||||
foreach ($arr as $key => $value) {
|
||||
$return['labels'][] = $value['name'] . " " . $value['platz'] . ". Platz";
|
||||
$tmp['s1']['label'] = "Gewonnen";
|
||||
$tmp['s1']['data'][] = $value['s1'] ? $value['s1'] : 0;
|
||||
$tmp['s2']['label'] = "Schneider";
|
||||
$tmp['s2']['data'][] = $value['s2'] ? $value['s2'] : 0;
|
||||
$tmp['s4']['label'] = "Retour Schneider";
|
||||
$tmp['s4']['data'][] = $value['s4'] ? $value['s4'] : 0;
|
||||
$tmp['v1']['label'] = "Verloren";
|
||||
$tmp['v1']['data'][] = $value['v1'] ? $value['v1'] * -1 : 0;
|
||||
$tmp['v2']['label'] = "Schneider Verloren";
|
||||
$tmp['v2']['data'][] = $value['v2'] ? $value['v2'] * -1 : 0;
|
||||
$tmp['v4']['label'] = "Retour Schneider Verloren";
|
||||
$tmp['v4']['data'][] = $value['v4'] ? $value['v4'] * -1 : 0;
|
||||
}
|
||||
$datasets = [];
|
||||
foreach ($tmp as $key => $value) {
|
||||
if (array_sum($value['data']) != false) {
|
||||
$value['borderWidth'] = 1;
|
||||
$datasets[] = $value;
|
||||
}
|
||||
}
|
||||
$return['datasets'] = $datasets;
|
||||
// print_r($return);
|
||||
return $return;
|
||||
}
|
||||
|
||||
|
||||
public static function loadStatistik($event_id)
|
||||
{
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_athleten')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid', 'name')
|
||||
->from('tx_watten_domain_model_athleten')
|
||||
->execute();
|
||||
$user = [];
|
||||
foreach ($res as $key => $value) {
|
||||
$user[$value['uid']] = $value['name'];
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_ergebnisse')->createQueryBuilder();
|
||||
$ergebnisse = $queryBuilder
|
||||
->select('uid', 's1', 's2', 'v1', 'v2', 'bumid')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->where($queryBuilder->expr()->eq('event_id', (int) $event_id))
|
||||
->execute();
|
||||
|
||||
$usr = [];
|
||||
$data = [];
|
||||
foreach ($ergebnisse as $value) {
|
||||
$usr[] = $value['s1'];
|
||||
$usr[] = $value['s2'];
|
||||
$usr[] = $value['v1'];
|
||||
$usr[] = $value['v2'];
|
||||
$data[] = $value;
|
||||
}
|
||||
$usr = array_unique($usr);
|
||||
|
||||
$arr = [];
|
||||
$datasets = [];
|
||||
foreach ($data as $value) {
|
||||
$arr['labels'][] = $value['uid'];
|
||||
$bum = $value['bumid'];
|
||||
$s1 = $value['s1'];
|
||||
$s2 = $value['s2'];
|
||||
$v1 = $value['v1'];
|
||||
$v2 = $value['v2'];
|
||||
|
||||
foreach ($usr as $key => $uid) {
|
||||
if (isset($datasets[$uid])) {
|
||||
$punkte = 0;
|
||||
if ($s1 == $uid or $s2 == $uid) {
|
||||
switch ($bum) {
|
||||
case 1:
|
||||
$punkte = 1.1;
|
||||
break;
|
||||
case 2:
|
||||
$punkte = 2.1;
|
||||
break;
|
||||
case 4:
|
||||
$punkte = 4.1;
|
||||
break;
|
||||
}
|
||||
} elseif ($v1 == $uid or $v2 == $uid) {
|
||||
switch ($bum) {
|
||||
case 1:
|
||||
$punkte = -1;
|
||||
break;
|
||||
case 2:
|
||||
$punkte = -2;
|
||||
break;
|
||||
case 4:
|
||||
$punkte = -4;
|
||||
break;
|
||||
}
|
||||
}
|
||||
$datasets[$uid]['stand'] = round($datasets[$uid]['stand'] + $punkte, 2);
|
||||
$datasets[$uid]['data'][] = $datasets[$uid]['stand'];
|
||||
} else {
|
||||
$datasets[$uid]['label'] = $user[$uid];
|
||||
|
||||
$punkte = 0;
|
||||
if ($s1 == $uid or $s2 == $uid) {
|
||||
switch ($bum) {
|
||||
case 1:
|
||||
$punkte = 1.1;
|
||||
break;
|
||||
case 2:
|
||||
$punkte = 2.1;
|
||||
break;
|
||||
case 4:
|
||||
$punkte = 4.1;
|
||||
break;
|
||||
}
|
||||
} elseif ($v1 == $uid or $v2 == $uid) {
|
||||
switch ($bum) {
|
||||
case 1:
|
||||
$punkte = -1;
|
||||
break;
|
||||
case 2:
|
||||
$punkte = -2;
|
||||
break;
|
||||
case 4:
|
||||
$punkte = -4;
|
||||
break;
|
||||
}
|
||||
}
|
||||
$datasets[$uid]['stand'] = $punkte;
|
||||
$datasets[$uid]['data'][] = $punkte;
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach ($datasets as $value) {
|
||||
unset($value['stand']);
|
||||
$value['pointRadius'] = 2;
|
||||
$value['tension'] = 0;
|
||||
$value['borderWidth'] = 0.5;
|
||||
$arr['datasets'][] = $value;
|
||||
}
|
||||
return $arr;
|
||||
}
|
||||
|
||||
public static function loadPaarlauf($activeTournament, $athlet_1)
|
||||
{
|
||||
$athlet_1 = (int) $athlet_1;
|
||||
$athlet_2 = 3;
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_athleten')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('uid', 'name')
|
||||
->from('tx_watten_domain_model_athleten')
|
||||
->execute();
|
||||
$user = [];
|
||||
foreach ($res as $key => $value) {
|
||||
$user[$value['uid']] = $value['name'];
|
||||
}
|
||||
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_ergebnisse')->createQueryBuilder();
|
||||
if ($activeTournament < 0) {
|
||||
$res = $queryBuilder
|
||||
->select('s1', 's2', 'v1', 'v2', 'bumid', 'gstrichen')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->execute();
|
||||
} else {
|
||||
$res = $queryBuilder
|
||||
->select('s1', 's2', 'v1', 'v2', 'bumid', 'gstrichen')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->where($queryBuilder->expr()->eq('tournaments_id', (int) $activeTournament))
|
||||
->execute();
|
||||
}
|
||||
|
||||
$_names = [
|
||||
'spiele' => 0,
|
||||
'siege' => 0,
|
||||
'verloren' => 0,
|
||||
'sn' => 0,
|
||||
'ss' => 0,
|
||||
'srs' => 0,
|
||||
'sg' => 0,
|
||||
'vn' => 0,
|
||||
'vs' => 0,
|
||||
'vrs' => 0,
|
||||
'vg' => 0,
|
||||
];
|
||||
$_data = [];
|
||||
foreach ($res as $row) {
|
||||
if ($row['s1'] == $athlet_1 or $row['s2'] == $athlet_1) {
|
||||
if ($row['s1'] == $athlet_1)
|
||||
$partner = (int) $row['s2'];
|
||||
else
|
||||
$partner = (int) $row['s1'];
|
||||
$gegner1 = (int) $row['v1'];
|
||||
$gegner2 = (int) $row['v2'];
|
||||
$bummalen = (int) $row['bumid'];
|
||||
$gstrichen = (int) $row['gstrichen'];
|
||||
|
||||
if (!isset($_data[$partner])) {
|
||||
$_data[$partner] = $_names;
|
||||
}
|
||||
$_data[$partner]['spiele']++;
|
||||
$_data[$partner]['siege']++;
|
||||
if ($bummalen == 1)
|
||||
$_data[$partner]['sn']++;
|
||||
else if ($bummalen == 2)
|
||||
$_data[$partner]['ss']++;
|
||||
else if ($bummalen == 4)
|
||||
$_data[$partner]['srs']++;
|
||||
if ($gstrichen == 1)
|
||||
$_data[$partner]['sg']++;
|
||||
|
||||
|
||||
if ($gegner1 < $gegner2) {
|
||||
$team = "$gegner1:$gegner2";
|
||||
} else {
|
||||
$team = "$gegner2:$gegner1";
|
||||
}
|
||||
if (!isset($_data[$partner]['gegner'][$team])) {
|
||||
$_data[$partner]['gegner'][$team] = $_names;
|
||||
}
|
||||
$_data[$partner]['gegner'][$team]['spiele']++;
|
||||
$_data[$partner]['gegner'][$team]['siege']++;
|
||||
|
||||
if ($bummalen == 1)
|
||||
$_data[$partner]['gegner'][$team]['sn']++;
|
||||
else if ($bummalen == 2)
|
||||
$_data[$partner]['gegner'][$team]['ss']++;
|
||||
else if ($bummalen == 4)
|
||||
$_data[$partner]['gegner'][$team]['srs']++;
|
||||
|
||||
if ($gstrichen == 1)
|
||||
$_data[$partner]['gegner'][$team]['sg']++;
|
||||
|
||||
} else if ($row['v1'] == $athlet_1 or $row['v2'] == $athlet_1) {
|
||||
if ($row['v1'] == $athlet_1)
|
||||
$partner = $row['v2'];
|
||||
else
|
||||
$partner = (int) $row['v1'];
|
||||
$gegner1 = (int) $row['s1'];
|
||||
$gegner2 = (int) $row['s2'];
|
||||
$bummalen = (int) $row['bumid'];
|
||||
$gstrichen = (int) $row['gstrichen'];
|
||||
|
||||
if (!isset($_data[$partner])) {
|
||||
$_data[$partner] = $_names;
|
||||
}
|
||||
$_data[$partner]['spiele']++;
|
||||
$_data[$partner]['verloren']++;
|
||||
if ($bummalen == 1)
|
||||
$_data[$partner]['vn']++;
|
||||
if ($bummalen == 2)
|
||||
$_data[$partner]['vs']++;
|
||||
if ($bummalen == 4)
|
||||
$_data[$partner]['vrs']++;
|
||||
if ($gstrichen == 1)
|
||||
$_data[$partner]['vg']++;
|
||||
|
||||
if ($gegner1 < $gegner2) {
|
||||
$team = "$gegner1:$gegner2";
|
||||
} else {
|
||||
$team = "$gegner2:$gegner1";
|
||||
}
|
||||
if (!isset($_data[$partner]['gegner'][$team])) {
|
||||
$_data[$partner]['gegner'][$team] = $_names;
|
||||
}
|
||||
$_data[$partner]['gegner'][$team]['spiele']++;
|
||||
$_data[$partner]['gegner'][$team]['verloren']++;
|
||||
if ($bummalen == 1)
|
||||
$_data[$partner]['gegner'][$team]['vn']++;
|
||||
if ($bummalen == 2)
|
||||
$_data[$partner]['gegner'][$team]['vs']++;
|
||||
if ($bummalen == 4)
|
||||
$_data[$partner]['gegner'][$team]['vrs']++;
|
||||
if ($gstrichen == 1)
|
||||
$_data[$partner]['gegner'][$team]['vg']++;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$return = [];
|
||||
if(isset($user[$athlet_1])){
|
||||
$athlet = $user[$athlet_1];
|
||||
foreach ($_data as $partnerid => $row) {
|
||||
$tmp = [];
|
||||
$partner = $user[$partnerid];
|
||||
$tmp['head'] = 1;
|
||||
$tmp['teams'] = $athlet . ' & ' . $partner . ' ';
|
||||
$tmp['spiele'] = $row['spiele'];
|
||||
$tmp['siege'] = $row['siege'];
|
||||
$tmp['verloren'] = $row['verloren'];
|
||||
$tmp['sn'] = $row['sn'];
|
||||
$tmp['ss'] = $row['ss'];
|
||||
$tmp['srs'] = $row['srs'];
|
||||
$tmp['sg'] = $row['sg'];
|
||||
$tmp['vn'] = $row['vn'];
|
||||
$tmp['vs'] = $row['vs'];
|
||||
$tmp['vrs'] = $row['vrs'];
|
||||
$tmp['vg'] = $row['vg'];
|
||||
$return[] = $tmp;
|
||||
|
||||
foreach ($row['gegner'] as $team => $value) {
|
||||
$tmp = [];
|
||||
$tmp['head'] = 0;
|
||||
$tmp['teams'] = $athlet . ' & ' . $partner . ' <img src="/typo3conf/ext/watten/Resources/Public/Icons/Degen.svg" class="iconsizesm"> ' . self::getnames($user, $team);
|
||||
$tmp['spiele'] = $value['spiele'];
|
||||
$tmp['siege'] = $value['siege'];
|
||||
$tmp['verloren'] = $value['verloren'];
|
||||
$tmp['sn'] = $value['sn'];
|
||||
$tmp['ss'] = $value['ss'];
|
||||
$tmp['srs'] = $value['srs'];
|
||||
$tmp['sg'] = $value['sg'];
|
||||
$tmp['vn'] = $value['vn'];
|
||||
$tmp['vs'] = $value['vs'];
|
||||
$tmp['vrs'] = $value['vrs'];
|
||||
$tmp['vg'] = $value['vg'];
|
||||
$return[] = $tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($return as $key1 => $row) {
|
||||
foreach ($row as $key2 => $value) {
|
||||
if ($key2 != 'teams' and $value == 0)
|
||||
$return[$key1][$key2] = '';
|
||||
}
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
public function getnames(&$user, $team)
|
||||
{
|
||||
$_gegner = explode(':', $team);
|
||||
$g1 = $_gegner[0];
|
||||
$g2 = $_gegner[1];
|
||||
return $user[$g1] . " & " . $user[$g2];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Array
|
||||
// (
|
||||
// [26] => Array
|
||||
// (
|
||||
// [spiele] => 11
|
||||
// [siege] => 6
|
||||
// [verloren] => 5
|
||||
// [sn] => 0
|
||||
// [ss] => 0
|
||||
// [srs] => 0
|
||||
// [gs] => 0
|
||||
// [vn] => 0
|
||||
// [vs] => 0
|
||||
// [vrs] => 0
|
||||
// [vg] => 0
|
||||
// [6:31] => Array
|
||||
// (
|
||||
// [spiele] => 1
|
||||
// [siege] => 1
|
||||
// [verloren] => 0
|
||||
// [sn] => 1
|
||||
// [ss] => 0
|
||||
// [srs] => 0
|
||||
// [gs] => 0
|
||||
// [vn] => 0
|
||||
// [vs] => 0
|
||||
// [vrs] => 0
|
||||
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
|
||||
namespace HermannTelser\Watten\Hooks;
|
||||
|
||||
/**
|
||||
* This file is part of the "news" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*/
|
||||
use TYPO3\CMS\Backend\Utility\BackendUtility as BackendUtilityCore;
|
||||
use TYPO3\CMS\Core\SingletonInterface;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Session\SessionManager;
|
||||
|
||||
/**
|
||||
* Hook into tcemain which is used to show preview of news item
|
||||
*/
|
||||
class DataHandler implements SingletonInterface
|
||||
{
|
||||
/**
|
||||
* Prevent saving of a news record if the editor doesn't have access to all categories of the news record
|
||||
*
|
||||
* @param array $fieldArray
|
||||
* @param string $table
|
||||
* @param int $id
|
||||
* @param $parentObject \TYPO3\CMS\Core\DataHandling\DataHandler
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function processDatamap_preProcessFieldArray(&$fieldArray, $table, $id, $parentObject): void
|
||||
{
|
||||
if ($table === 'tx_watten_domain_model_ergebnisse') {
|
||||
|
||||
// print_r($fieldArray);
|
||||
// print_r($table);
|
||||
// print_r($id);
|
||||
|
||||
$tmp = [];
|
||||
$tmp[] = $fieldArray['s1'];
|
||||
$tmp[] = $fieldArray['s2'];
|
||||
$tmp[] = $fieldArray['v1'];
|
||||
$tmp[] = $fieldArray['v2'];
|
||||
$tmp = array_unique($tmp);
|
||||
if (\array_sum($tmp) < 4) {
|
||||
$parentObject->log(
|
||||
$table,
|
||||
$id,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
"Sichern des Eintrags misslang. Grund: Athleten müssen vollständig ausgefüllt werden.",
|
||||
1,
|
||||
[$table]
|
||||
);
|
||||
// unset table to prevent saving
|
||||
$table = '';
|
||||
} elseif (\count($tmp) != 4) {
|
||||
$parentObject->log(
|
||||
$table,
|
||||
$id,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
"Sichern des Eintrags misslang. Grund: Athleten dürfen nicht doppelt vorkommen.",
|
||||
1,
|
||||
[$table]
|
||||
);
|
||||
// unset table to prevent saving
|
||||
$table = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace HermannTelser\Watten\Scheduler;
|
||||
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Scheduler\Task\AbstractTask;
|
||||
use HermannTelser\Watten\Daten\Berechnung;
|
||||
|
||||
class CronTask extends AbstractTask
|
||||
{
|
||||
public function execute()
|
||||
{
|
||||
$businessLogic = GeneralUtility::makeInstance(Berechnung::class);
|
||||
$businessLogic->run();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace HermannTelser\Watten\Tca;
|
||||
|
||||
use TYPO3\CMS\Core\Database\ConnectionPool;
|
||||
use TYPO3\CMS\Core\Database\Connection;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
class Configuration
|
||||
{
|
||||
/*
|
||||
* @param string $type
|
||||
* @return integer
|
||||
*/
|
||||
public static function eingabedatum(): int
|
||||
{
|
||||
// use last entry in ergebnisse as default
|
||||
$queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('tx_watten_domain_model_ergebnisse')->createQueryBuilder();
|
||||
$res = $queryBuilder
|
||||
->select('datum')
|
||||
->from('tx_watten_domain_model_ergebnisse')
|
||||
->addOrderBy('uid', 'DESC')
|
||||
->setMaxResults(1)
|
||||
->setFirstResult(0)
|
||||
->execute();
|
||||
$spieltag = 0;
|
||||
foreach ($res as $key => $value) {
|
||||
$spieltag = (int) $value['datum'];
|
||||
}
|
||||
return $spieltag;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace HermannTelser\Watten\Utilities;
|
||||
|
||||
/***
|
||||
*
|
||||
* This file is part of the "mindshape Cookie Consent" Extension for TYPO3 CMS.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* (c) 2021 Daniel Dorndorf <dorndorf@mindshape.de>, mindshape GmbH
|
||||
*
|
||||
***/
|
||||
|
||||
/**
|
||||
* @package HermannTelser\Watten\Utility
|
||||
*/
|
||||
class CookieUtility
|
||||
{
|
||||
public const DEFAULT_COOKIE_NAME = 'watten';
|
||||
|
||||
/**
|
||||
|
||||
* @param string $name
|
||||
* @return array|null
|
||||
*/
|
||||
public static function getCookieValue(string $name = self::DEFAULT_COOKIE_NAME): ?array
|
||||
{
|
||||
if (false === self::hasCookie($name)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return json_decode($_COOKIE[$name], true);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $named
|
||||
* @return bool
|
||||
*/
|
||||
public static function hasCookie(string $name = self::DEFAULT_COOKIE_NAME): bool
|
||||
{
|
||||
return true === array_key_exists($name, $_COOKIE);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
*/
|
||||
public static function deleteCookie(string $name = self::DEFAULT_COOKIE_NAME): void
|
||||
{
|
||||
unset($_COOKIE[$name]);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user