diff --git a/homepage/machs/achievementBuilder.php b/homepage/machs/achievementBuilder.php index 403da2d..33c686b 100644 --- a/homepage/machs/achievementBuilder.php +++ b/homepage/machs/achievementBuilder.php @@ -1,43 +1,23 @@ @@ -75,6 +55,9 @@ processPostData($dbConnection, $_POST); echo($g->htmlEditAchievementGroupForm()); $achievements = $g->getAchievements(); + if(empty($achievements)){ + echo("

Auto Add Achievements

".achievementGroup::htmlAutoAddAchievementsForm($g->getId())); + } foreach($achievements as $a){ echo("

".$a['name']."

"); echo(htmlUpdateAchievementBox( diff --git a/homepage/machs/config.php b/homepage/machs/config.php index 297fb01..d3b7012 100644 --- a/homepage/machs/config.php +++ b/homepage/machs/config.php @@ -1,7 +1,7 @@ @@ -63,9 +44,8 @@ processPostData($dbConnection, $_POST); "); echo( "

Eigene Achievements

" ); -# var_dump($achievementGroups); + echo( "
"); foreach($achievementGroups as $g){ echo($g->asHtmlCard($_SESSION['user']['userId'])); } @@ -78,7 +58,7 @@ processPostData($dbConnection, $_POST); foreach($usersKids as $k){ if( hasUserAttribute($dbConnection, $k['kidId'], "inTraining" ) ){ echo( "

".$k['vorname']." ".$k['name']."

" ); - echo( "
"); + echo( "
"); foreach($achievementGroups as $g){ echo($g->asHtmlCard($k['kidId'], ['noForm'=>false])); } diff --git a/homepage/machs/lib/api.php b/homepage/machs/lib/api.php index c3801ff..2b2f9ba 100644 --- a/homepage/machs/lib/api.php +++ b/homepage/machs/lib/api.php @@ -8,6 +8,13 @@ function processPostData($db, $post, $redirectLocation = "."){ $post['userId'], $post['achievementId'] ); + $u = getUserData($db, $post['userId']); + $a = getAchievement($db, $post['achievementId']); + sendEmail( + "cwsvjudo@arcor.de", + "kwT", + $u['vorname']." ".$u['name']." got achievement ".$a[0]['name'] + ); } if($post['action']=="addAchievement"){ addAchievement( @@ -31,6 +38,18 @@ function processPostData($db, $post, $redirectLocation = "."){ ); } + if($post['action']=="autoAddAchievements"){ + $g=new achievementGroup; + $g->setDbConnection($db); + $g->loadAchievementGroupFromDb($post['achievementGroupId']); + $g->autoAddAchievements( + $post['messageTemplate'], + $post['from'], + $post['to'], + $post['step'] + ); + } + if($post['action']=="updateAchievement"){ updateAchievement( $db, @@ -63,19 +82,21 @@ function processPostData($db, $post, $redirectLocation = "."){ ); } if($post['action']=="setRecord"){ -# $u = getUserData($db, $post['userId']); -# $ag = new achievementGroup; -# achievementGroup::setDbConnection($db); -# $ag->loadAchievementGroupFromDb($post['achievementGroupId']); -# $m = $u['vorname']." ".$u['name']." hat in ".$ag->getName()." ".$post['value']." geschafft!"; - $m = $post['userId']." hat in ".$post['achievementGroupId']." ".$post['value']." geschafft!"; - sendEmail("cwsvjudo@arcor.de", $m, "[machs] Rekord eingetragen"); -# setRecord( -# $db, -# $post['userId'], -# $post['achievementGroupId'], -# $post['value'] -# ); + $u = getUserData($db, $post['userId']); + $g = new achievementGroup; + $g->setDbConnection($db); + $g->loadAchievementGroupFromDb($post['achievementGroupId']); + sendEmail( + "cwsvjudo@arcor.de", + $u['vorname']." ".$u['name']." got ".$post['value']." in ".$g->getName(), + "[machs] Rekord eingetragen" + ); + //setRecord( + //$db, + //$post['userId'], + //$post['achievementGroupId'], + //$post['value'] + //); } if($post['action']=="reportRecord"){ # $u = getUserData($db, $post['userId']); diff --git a/homepage/machs/lib/db.php b/homepage/machs/lib/db.php index a6f65d1..059ce33 100644 --- a/homepage/machs/lib/db.php +++ b/homepage/machs/lib/db.php @@ -64,6 +64,8 @@ if( empty($someOptions['dontFetch' ]) ) $someOptions['dontFetch' ] = false; if(!$pdoResult){ echo("Error during dbQuery!\n"); echo("DB-Error:\n"); var_dump($aDbConnection->errorInfo()); +// var_dump($aQueryString); +// var_dump($aBindArray); // echo($pdoStatement.errorInfo()); } if($someOptions['dontFetch']){ @@ -245,8 +247,6 @@ INSERT INTO `cwsvjudo`.`achievements<=>user` (`userId`, `achievementId`) VALUE ( SQL; $params = [':userId'=>['value'=>$userId, 'data_type'=>PDO::PARAM_INT], 'achievementId'=>['value'=>$achievementId, 'data_type'=>PDO::PARAM_INT]]; dbQuery($db, $query, $params); - sendEmail("cwsvjudo@arcor.de", "kwT", "User ".$userId." got achievement ".$achievementId); -//var_dump($query, $params); return; } @@ -282,7 +282,18 @@ SQL; return dbQuery($db, $query); } +function getAchievement($db, $id){ + $query = <<['value'=>$id, 'data_type'=>PDO::PARAM_INT]]; +return dbQuery($db, $query, $params); +} + function addAchievement($db, $name, $rootId, $achievementGroupId, $level, $description, $imgUrl){ +// var_dump($db); if($rootId=="") $rootId=null; if($imgUrl=="") diff --git a/homepage/machs/lib/machs/achievementGroup.php b/homepage/machs/lib/machs/achievementGroup.php index 4eb2882..288194d 100644 --- a/homepage/machs/lib/machs/achievementGroup.php +++ b/homepage/machs/lib/machs/achievementGroup.php @@ -4,24 +4,34 @@ require_once('./lib/db.php'); // A series of achievements class achievementGroup{ +// data from the achievements group table + // id of the group private $id; + // name of the group private $name; + // Achievement, that unlocks the group private $unlockingAchievementId; + // an image for the group private $imageUrl; + // achievements, that belong to this group private $achievements; - + + // pointer to the db that shall be used for queries private static $db=null; + // name of the table // private static $tableName = "`cwsvjudo`.`machs_achievementGroups`"; - static function setDbConnection($dbConnection){ + // set the dbConnection (just setting, no establishing) + public static function setDbConnection($dbConnection){ if($dbConnection instanceof PDO) self::$db = $dbConnection; else self::$db = null; return; } - static function getDbConnection(){ + // get the db pointer + public static function getDbConnection(){ return self::$db; } @@ -46,7 +56,7 @@ SQL; return $groups; } - //getter functions for the member variables + //getter functions for the (primitive) member variables function getId(){return $this->id;} function getName(){return $this->name;} function getUnlockingAchievementId(){return $this->unlockingAchievementId;} @@ -69,13 +79,13 @@ SQL; return $this->achievements; } // end getAchievements - /// Load the achievementgroup $id from the db into the + /// Load the achievementgroup $id from the db (into this) function loadAchievementGroupFromDb($id){ $query = <<['value'=>$id, 'data_type'=>PDO::PARAM_INT]]; - $result = dbQuery(self::$db, $query, $param); + $result = dbQuery(self::$db, $query, $params); $this->setAchievementGroupData( $result[0]['id'], @@ -94,23 +104,6 @@ SQL; $this->imageUrl = $imageUrl; } - /// A simple representation of the group in html code - function html(){ - $html = ""; - $html .= "
"; - $html .= "
"; - $html .= "
Id:
".$this->id."
"; - $html .= "
name:
".$this->name."
"; - $html .= "
unlockingAchievementId:
".$this->unlockingAchievementId."
"; - $html .= "
Achievements:
    "; - foreach($this->achievements as $a) - $html .= "
  • ".$a['name']."
  • "; - $html .= "
"; - $html .= "
"; - $html .= "
"; - return $html; - } - /// gets all achievements of that user in that group reachedd function getUsersAchievements($userId, $options=[]){ $getAll = $options['getAll']??false; @@ -131,7 +124,7 @@ return $result; /// /// @param $uId id of the user the achievements should be function asHtmlCard($uId, $options=[]){ - $noForm = $options['noForm']??true; + $noForm = $options['noForm']??true; // for deactivating the give achievement form $retHtml = ""; $userData = record::getUserData($uId); $usersAchievements = $this->getUsersAchievements( $uId, ['getAll'=>true] ); @@ -139,6 +132,7 @@ return $result; foreach($usersAchievements as $a){ $usersAchievementIds[]=(int)$a['achievementId']; } + // If the user hasn't have the needed Achievement if(!in_array($this->getUnlockingAchievementId(), $usersAchievementIds)) return ""; $records = record::getGroupsRecords( @@ -149,15 +143,17 @@ return $result; $retHtml .= "
"; $retHtml .= "
"; - $retHtml .= "
"; + if($this->imageUrl != null){ $retHtml .= "
imageUrl."\">"; - } - $retHtml .= "".$this->name.""; - if($this->imageUrl != null){ + $retHtml .= "".$this->name.""; $retHtml .= "
"; } - $retHtml .= "
    "; + else + $retHtml .= "".$this->name.""; + + $retHtml .= "
    "; + $retHtml .= "
      "; foreach($achievements as $a){ if(in_array((int)$a['id'], $usersAchievementIds)){ $retHtml .= "
    • ✓ ".$a['name'].": ".$a['description']; @@ -165,34 +161,43 @@ return $result; } else{ $retHtml .= "
    • ".$a['name'].": ".$a['description']; - if(!$noForm){ - if( canUserGetAchievementToday( $this->getDbConnection(), $uId) or isUserAdmin($this->getDbConnection(), $_SESSION['user']['userId']) ){ - $retHtml .= "
      "; - $retHtml .= ""; - $retHtml .= ""; - $retHtml .= ""; - $retHtml .= ""; - $retHtml .= ""; - $retHtml .= "
      "; - } - } - if( $imgUrl != null ) - $retHtml .= "
      "; - $retHtml .= "
    • "; break; } } // show the current record + if( validateDate($userData[0]['gebDatum'])){ $retHtml.=record::arrayRecord2htmlCard($records[0], $userData[0], $this->getId(), "li"); } else{ $retHtml.="
      Rekorde können erst angezeigt werden, wenn das Geburtsdatum korrekt gesetzt wurde!
      "; } + $retHtml .= "
    "; + $retHtml .= "
    ";// end card-content + $retHtml .= "
    "; + if(!$noForm){ + if( canUserGetAchievementToday( $this->getDbConnection(), $uId) or isUserAdmin($this->getDbConnection(), $_SESSION['user']['userId']) ){ + $retHtml .= "
    "; + $retHtml .= ""; + $retHtml .= ""; + $retHtml .= ""; + $retHtml .= ""; + $retHtml .= ""; +// $retHtml .= ""; + $retHtml .= "
    "; + } + if( validateDate($userData[0]['gebDatum'])){ + $retHtml.=record::arrayRecord2htmlCardAction($records[0], $userData[0], $this->getId(), "li"); + } + else{ + $retHtml.="
    Rekorde können erst angezeigt werden, wenn das Geburtsdatum korrekt gesetzt wurde!
    "; + } + } $retHtml .= "
    "; - $retHtml .= "
"; - $retHtml .= "
"; + + $retHtml .= "
";// end card + $retHtml .= "
";// end col return $retHtml; }// end asHtmlCard @@ -228,5 +233,73 @@ return $result; return $html; } + static function htmlAutoAddAchievementsForm($achievementGroupId, $messageTemplate=null, $from=null, $to=null, $step=null){ + $html = ""; + $html .= "
"; + + $html .= ""; + $html .= ""; + $html .= ""; + + $html .= ""; + $html .= ""; + + $html .= ""; + $html .= ""; + $html .= ""; + $html .= ""; + $html .= ""; + $html .= ""; + + $html .= ""; + $html .= "
"; + return $html; + } + + /// auto generate the achievements for this group + /// @todo only for empty groups? + function autoAddAchievements($messageTemplate, $from, $to, $step){ + if(!empty($this->getAchievements())){ + echo("Won't auto-add Achievements to non-empty AchievementGroup!"); + return; + } + $level = 1; + for ($value = (int)$from; $value <= (int)$to; $value+=(int)$step) { + $name = $this->getName()." ".intToRomanRepresentation($level++); + $description = str_replace("%value%", (string)$value, $messageTemplate); + $this->addAchievement($name, $description, $level); + } + } + + // adds an achievement to the group (in the db!) + function addAchievement($name, $description, $level, $rootId=null){ + addAchievement( + $this->getDbConnection(), + $name, + $rootId, + $this->getId(), + $level, + $description, + null + ); + } +} + +/// convert an int number to roman representation +/// @param int $number +/// @return string +function intToRomanRepresentation($number){ + $map = array('M' => 1000, 'CM' => 900, 'D' => 500, 'CD' => 400, 'C' => 100, 'XC' => 90, 'L' => 50, 'XL' => 40, 'X' => 10, 'IX' => 9, 'V' => 5, 'IV' => 4, 'I' => 1); + $returnValue = ''; + while ($number > 0) { + foreach ($map as $roman => $int) { + if($number >= $int) { + $number -= $int; + $returnValue .= $roman; + break; + } + } + } + return $returnValue; } ?> diff --git a/homepage/machs/lib/machs/materializeInit.php b/homepage/machs/lib/machs/materializeInit.php index 10acf22..775f066 100644 --- a/homepage/machs/lib/machs/materializeInit.php +++ b/homepage/machs/lib/machs/materializeInit.php @@ -11,4 +11,8 @@ document.addEventListener('DOMContentLoaded', function() { var elems = document.querySelectorAll('.sidenav'); var instances = M.Sidenav.init(elems, options); }); +document.addEventListener('DOMContentLoaded', function() { + var elems = document.querySelectorAll('.collapsible'); + var instances = M.Collapsible.init(elems, options); +}); diff --git a/homepage/machs/lib/machs/sidenav.php b/homepage/machs/lib/machs/sidenav.php index 26a53ee..0e7c86d 100644 --- a/homepage/machs/lib/machs/sidenav.php +++ b/homepage/machs/lib/machs/sidenav.php @@ -2,6 +2,7 @@
"; - $retHtml.= "
"; - $retHtml.= "Rekord melden"; - $retHtml.= "
"; - $retHtml.= "
"; - $retHtml.= "Rekorde stellen in jeder Achievementgruppe und Altersklasse die Bestleistung unter allen Judoka dar. Rekorde können unabhänging vom eigenen, aktuellen Achievementstand aufgestellt werden."; - $retHtml.= "Die Rekorde der jüngeren gelten auch für die älteren, aber nicht umgekehrt. "; - $retHtml.= "Damit ein Rekord auch eingetragen wird, muss er mit einem Nachweis in Videoform gemeldet werden."; - $retHtml.= "

Rekord melden

"; - $retHtml.= "Um einen Rekord zu melden, lade ein Video des Rekordes hoch:"; - $retHtml.= htmlUsersUploadBox(self::$db, $u['id']); - $retHtml.= "Anschließend kannst Du den Rekord melden:"; - $retHtml.= "
"; - if(isUserAdmin(record::$db, $_SESSION['user']['userId'])){ - $retHtml.= ""; - } - else{ - $retHtml.= ""; - } - $retHtml.= ""; - $retHtml.= ""; - $retHtml.= $u['vorname']." ".$u['name']." hat geschafft."; - if(isUserAdmin(record::$db, $_SESSION['user']['userId'])){ - $retHtml.= ""; - } - else{ - $retHtml.= ""; - } - $retHtml.= "
"; - $retHtml.= "
"; - $retHtml.= "
"; - $retHtml.= "Zurück"; - $retHtml.= "
"; - $retHtml.= "
"; - $retHtml.= "
"; + $retHtml.= ""; return $retHtml; } + public static function birthday2ageClass($birthdateString){ $birthDate = DateTime::createFromFormat("Y-m-d", $birthdateString); $birthYear= (int)$birthDate->format("Y"); $thisYear = (int)date('Y'); return $thisYear - $birthYear + 1; } + + // get an ageClasses records including its holders + public static function getRecordsOfAgeClass($ageClass, $achievementGroup, $options=[]){ + $query = <<['value'=>$ageClass, 'data_type'=>PDO::PARAM_INT], + ':achievementGroupId'=>['value'=>$achievementGroupId, 'data_type'=>PDO::PARAM_INT], + ]; + $returns = query($this->getDbConnection(), $query, $params); + return $records; + } + + // returns all age classes with records + public static function getAgeClassesWithRecord($achievementGroupId=null){ + $params = null; + $query="SELECT DISTINCT `ageClass` FROM `cwsvjudo`.`machs_records` "; + if($achievementGroupId != null){ + $query.="WHERE `achievementGroupId` = :achievementGroupId "; + $params=[]; + $params[':achievementGroupId'] = ['value'=>$achievementGroupId, 'data_type'=>PDO::PARAM_INT]; + } + $query.="ORDER BY `ageClass`"; + $ageClasses = dbQuery(self::$db, $query, $params); + return $ageClasses; + } + + // load the achievement from the DB + public function loadFromDb($id){ + $query = "SELECT * from `cwsvjudo`.`machs_records` WHERE `id`=:id;"; + $params = [':id'=>['value'=>$id, 'data_type'=>PDO::PARAM_INT]]; + $achievements = query($this->getDbConnection(), $query, $params); + $this->setFromAssocArray($achievements[0]); + } + // set the members of the record via an associative array (like the ones, that are returned by dbquery) + public function setFromAssocArray($assocArray){ + $this->id = (int)$assocArray['id']; + $this->achievementGroupId = (int)$assocArray['achievementGroupId']; + $this->ageClass = (int)$assocArray['ageClass']; + $this->userId = (int)$assocArray['userId']; + $this->timestap = $assocArray['userId']; + $this->value = $assocArray['value']; + } + + static public function htmlRanking($recordList){ + if(empty($recordList)) + return ""; + $html = ""; + $html.= ""; + foreach($recordList as $record){ + $html.=""; + } + $html.= "
JudokaRekordVideo
".$record['vorname']." ".$record['name']."".$record['value']."Video
"; + return $html; + } } /// Als String gegebene Altersklassen als Jahrgangsintervalle diff --git a/homepage/machs/machs-config.php b/homepage/machs/machs-config.php new file mode 100644 index 0000000..2048a00 --- /dev/null +++ b/homepage/machs/machs-config.php @@ -0,0 +1,12 @@ + diff --git a/homepage/machs/machs.php b/homepage/machs/machs.php index 8d293fa..a7e9f04 100644 --- a/homepage/machs/machs.php +++ b/homepage/machs/machs.php @@ -1,203 +1,23 @@ user` (userId, achievementId) VALUES (:userId, :achievementId);", - array( - ':userId' => array('value'=>$anUserId, 'data_type'=>PDO::PARAM_INT), - ':achievementId'=> array('value'=>$anAchievementId, 'data_type'=>PDO::PARAM_INT) - ) - ); - } - catch(PDOException $db_error){ - print "Error!: " . $db_error->getMessage() . "
queryString: ".$queryString."
"; var_dump($bindArray); - } -return; -} +/// This file includes all other files needed by the achievementsystem -/// einem User ein Achievement entziehen -function withdrawUsersAchievement($aDbConnection, $anUserId, $anAchievementId, $limit = NULL){ - try{ -// Variablen für das Binden an die Query vorbereiten -// inklusive Validierung der Werte - $bindArray = array(); - if( is_positive_integer( $anUserId ) ){ - $bindArray[':userId'] = array('value'=>$anUserId, 'data_type'=>PDO::PARAM_INT); - } - else{ - throw new InvalidArgumentException("withdrawUsersAchievement: userId must be positive integer!"); - } - if( is_positive_integer($anAchievementId) ){ - $bindArray[':achievementId'] = array('value'=>$anAchievementId, 'data_type'=>PDO::PARAM_INT); - } - else{ - throw new InvalidArgumentException("withdrawUsersAchievement: anAchievementId must be positive integer"); - } - if( is_positive_integer( $limit ) ){ - $bindArray[':limit'] = array('value' => $limit, 'data_type' => PDO::PARAM_INT); - } +require_once('machs-config.php'); -// Zusammenstellen der Query - $queryString = - "DELETE FROM `achievements<=>user` ". - "WHERE `userId`=:userId ". - "AND `achievementId`=:achievementId". - (is_positive_integer( $limit )?" LIMIT :limit":""). - ";"; + require_once("./lib/db.php"); + require_once("./lib/achievementsLib.php"); + require_once("./lib/api.php"); + require_once("./lib/record.php"); + require_once("./lib/machs/achievementGroup.php"); - echo("queryString: ".$queryString."
"); var_dump($bindArray); - dbQuery( - $aDbConnection, - $queryString, - $bindArray - ); - } - catch(PDOException $db_error){ - print "Error!: " . $db_error->getMessage() . "
queryString: ".$queryString."
"; var_dump($bindArray); - } -return; -}// Ende withdrawUsersAchievement - -var_dump($_GET); - -$actions = ["giveUserAnAchievement", "withdrawUsersAchievement"]; - - -$dbConn = getCwsvJudoDbConn(); -$dbConn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); - -if(isset($_GET['action'])){ - switch($_GET['action']){ - case "giveUserAnAchievement": - try{ - giveUserAnAchievment($dbConn, intval($_GET['userId']), intval($_GET['achievementId'])); - } - catch(Exception $e){ - print("UPS: ".$e->getMessage()); - } - break; - case "withdrawUsersAchievement": - try{ - withdrawUsersAchievement($dbConn, intval($_GET['userId']), intval($_GET['achievementId'])); - } - catch(Exception $e){ - print("UPS: ".$e->getMessage()); - } - break; - default: - echo("Ungültige Aktion (".$_GET['action'].") erwünscht!"); - break; - } -} - -$users = - dbQuery( - $dbConn, - "SELECT * FROM cwsvjudo.wkParticipo_Users;" - ); - -$userAchievements = - dbQuery( - $dbConn, - "SELECT * FROM cwsvjudo.achievements;" - ); + require_once("./auth.php"); +// externel libraries, that can't be included by relative path +/// @todo Do it better: how can we include external libraries without a +/// config variable + require_once($config['basePath']."/config/cwsvJudo.config.php"); + require_once($config['basePath']."/config/phpcount.config.php"); + require_once($config['basePath']."/ressourcen/phpLib/phpcount/phpcount.php"); ?> - - - - -
- - - - -
-

Attribute

- - ".$userAchievement["name"].""); - // get the users with the attribute by a cross join - // remark: there are two id-columns, from which one gets lost (the one from the user) in the phpArray. - // so we (have to) use the userId from the attribute - // in short attributed => userId, unattributed => id (is the id of the user) - $achievedUsers = - dbQuery( - $dbConn, - "SELECT * FROM wkParticipo_Users, `achievements<=>user` WHERE wkParticipo_Users.id = `achievements<=>user`.userId AND `achievements<=>user`.achievementId = :achievementId;", - array(":achievementId"=>array('value'=>$userAchievement['id'], 'data_type'=>PDO::PARAM_INT)) - ); - // Add a withthraw link entry - foreach($achievedUsers as $index => $user){ - $achievedUsers[$index] += ["withdrawLink" => "withdraw ".$userAchievement["name"].""]; - } - echo( "

have it

".arrayKeyed2htmlTableString($achievedUsers, ["userId", "name", "vorname", "withdrawLink"]) ); - $achievedKeyList = []; - foreach($achievedUsers as $user){ - $achievedKeyList[] = $user["userId"]; - } - $unachievedUsers = array(); - foreach($users as $user){ - if(!in_array($user["id"], $achievedKeyList)){ - $unachievedUsers[] = $user; - } - } - // Add a giveAttribute link entry to every user - foreach($unachievedUsers as $index => $user){ - $unachievedUsers[$index] += ["giveAchievementLink" => "give Attribute ".$userAchievement["name"].""]; - } - echo( "

give it

".arrayKeyed2htmlTableString($unachievedUsers, ["id", "name", "vorname", "giveAchievementLink"]) ); - } - ?> - -

User

- - - diff --git a/homepage/machs/readMe.md b/homepage/machs/readMe.md new file mode 100644 index 0000000..0dfef94 --- /dev/null +++ b/homepage/machs/readMe.md @@ -0,0 +1,11 @@ +Animated gif erstellen: + +``` +convert \ + -delay 100 \ + -loop 5 \ + -resize 256x \ + -fuzz 10% \ + -layers optimize \ + frame-* wechselLiegeUnterarmstuetz.gif +``` diff --git a/homepage/machs/records.php b/homepage/machs/records.php new file mode 100644 index 0000000..f25e162 --- /dev/null +++ b/homepage/machs/records.php @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + Achievements + + + + + + + + + + +Rekorde"); +foreach($achievementGroups as $group){ + $ageClasses = record::getAgeClassesWithRecord($group->getId()); + if(empty($ageClasses)) + continue; + echo("

".$group->getName()."

"); + foreach($ageClasses as $ageClass){ + $ageClass = $ageClass['ageClass']; + echo("

Altersklasse U".$ageClass."

"); + $records = record::getGroupsRecords($group->getId(), $ageClass); + echo(record::htmlRanking($records)); + } +} +?> + + + diff --git a/homepage/mams/lib/api.php b/homepage/mams/lib/api.php index ff7a13f..3b54862 100644 --- a/homepage/mams/lib/api.php +++ b/homepage/mams/lib/api.php @@ -30,8 +30,6 @@ return; } function sendEmail($toEmail, $emailText){ -//var_dump($toEmail); -//var_dump($emailText); try{ $date=new DateTime(); mail( diff --git a/homepage/mams/lib/db.php b/homepage/mams/lib/db.php index 493fa49..9200ae9 100644 --- a/homepage/mams/lib/db.php +++ b/homepage/mams/lib/db.php @@ -55,7 +55,11 @@ if( empty($someOptions['dontFetch' ]) ) $someOptions['dontFetch' ] = false; ); } $pdoResult = $pdoStatement->execute(); - + if(!$pdoResult){ + echo("Error during dbQuery!\n"); + echo($aDbConnection->errorInfo(); + echo(PDOStatement::errorInfo(); + } if($someOptions['dontFetch']){ $ret = NULL; }