diff --git a/homepage/machs/achievementBuilder.php b/homepage/machs/achievementBuilder.php new file mode 100644 index 0000000..403da2d --- /dev/null +++ b/homepage/machs/achievementBuilder.php @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + machs + + + + + + + + + + + +

AchievementBuilder

+Add AchievementGroup"); + echo(achievementGroup::htmlAddAchievementGroupForm()); + + echo("

Update Achievements

"); + foreach($achievementGroups as $g){ + echo("

".$g->getName()."

"); + echo($g->htmlEditAchievementGroupForm()); + + $achievements = $g->getAchievements(); + foreach($achievements as $a){ + echo("

".$a['name']."

"); + echo(htmlUpdateAchievementBox( + $a['id'], + $a['name'], + $a['rootId'], + $a['achievementGroupId'], + $a['level'], + $a['description'], + $a['imgUrl'] + )); + } + echo("

Add achievement

"); + echo(htmlAddAchievementBox()); + } +?> + + + diff --git a/homepage/machs/images.d/wechselLiegeUnterarmstuetz.gif b/homepage/machs/images.d/wechselLiegeUnterarmstuetz.gif new file mode 100644 index 0000000..c3feeff Binary files /dev/null and b/homepage/machs/images.d/wechselLiegeUnterarmstuetz.gif differ diff --git a/homepage/machs/index.php b/homepage/machs/index.php index 5cd55f3..cf7d7eb 100644 --- a/homepage/machs/index.php +++ b/homepage/machs/index.php @@ -8,13 +8,16 @@ setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge'); 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"); require_once("./auth.php"); $basePath = "/users/cwsvjudo/www"; require_once($basePath."/config/cwsvJudo.config.php"); require_once($basePath."/config/phpcount.config.php"); -// require_once($basePath."/ressourcen/phpLib/phpcount/phpcount.php"); + require_once($basePath."/ressourcen/phpLib/phpcount/phpcount.php"); + PHPCount::AddHit("Achievementsystem (".htmlspecialchars($_SESSION['user']['username']).")"); // require_once($basePath."/ressourcen/phpLib/cwsvJudo/miscAssis.php"); // $dbConnection = getCwsvJudoDbConn(); @@ -25,7 +28,9 @@ setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge'); $cwsvJudoConfig["db"]["password"] ); -$achievementGroups = getAchievementGroups($dbConnection); +record::setDbConnection($dbConnection); +achievementGroup::setDbConnection($dbConnection); +$achievementGroups = achievementGroup::getAllAchievementGroups(); processPostData($dbConnection, $_POST); @@ -40,6 +45,8 @@ processPostData($dbConnection, $_POST); + + Achievements @@ -49,58 +56,36 @@ processPostData($dbConnection, $_POST); - - - + + + + "); echo( "

Eigene Achievements

" ); - echo( htmlUsersUploadBox($dbConnection, $_SESSION['user']['userId']) ); - echo(htmlAchievementListForUser( - $dbConnection, - $achievementGroups, - $_SESSION['user']['userId'], - getUsersAchievements($dbConnection, $_SESSION['user']['userId']) - )); - } - ?> - - ".$k['vorname']." ".$k['name']."" ); - echo( htmlUsersUploadBox($dbConnection, $k['kidId']) ); - echo(htmlAchievementListForUser( - $dbConnection, - $achievementGroups, - $k['kidId'], - getUsersAchievements($dbConnection, $k['kidId']) - )); - } +# var_dump($achievementGroups); + foreach($achievementGroups as $g){ + echo($g->asHtmlCard($_SESSION['user']['userId'])); } + echo("" ); + } ?> -Add Achievements"); - echo(htmlAddAchievementBox()); - - echo("

Update Achievements

"); - $achievements = getAchievements($dbConnection); - foreach($achievements as $a){ - echo( htmlUpdateAchievementBox( - $a['id'], - $a['name'], - $a['description'], - $a['rootId'], - $a['level'] - )); - echo("
"); + ".$k['vorname']." ".$k['name']."" ); + echo( "
"); + foreach($achievementGroups as $g){ + echo($g->asHtmlCard($k['kidId'], ['noForm'=>false])); + } + echo("
" ); + } } - } - ?> - - + ?> + diff --git a/homepage/machs/lib/achievementsLib.php b/homepage/machs/lib/achievementsLib.php index 9a63773..e1183a1 100644 --- a/homepage/machs/lib/achievementsLib.php +++ b/homepage/machs/lib/achievementsLib.php @@ -1,4 +1,6 @@ Heute wurde schon ein Achievement erreicht!"; } $retHtml .= "
"; foreach($achievementGroups as $g){ +// var_dump($userData); +// $records = record::getGroupsRecords($g->getId(), $userData[0]['gebDatum ']); +// var_dump($userData); + $records = record::getGroupsRecords($g->getId(), record::birthday2ageClass($userData[0]['gebDatum'])); $retHtml .= "
"; $retHtml .= ""; $retHtml .= "
"; } @@ -185,42 +204,61 @@ $retHtml = ""; return $retHtml; } +function getRecords($db, $groupId){ + $query = <<['value'=>$groupId, 'data_type'=>PDO::PARAM_INT]]; +return dbQuery($db, $query, $params); +} + +function setUserDataBox($userId){ +$html = ""; + $html .= "
"; + $html .= ""; + $html .= ""; + $html .= ""; + $html .= ""; + $html .= ""; + $html .= "
"; +return $html; +} + function htmlAddAchievementBox(){ $html = ""; $html .= "
"; $html .= ""; - $html .= ""; + $html .= ""; $html .= ""; + $html .= ""; + $html .= ""; + $html .= ""; $html .= ""; + $html .= ""; $html .= ""; $html .= "
"; return $html; } -function htmlUpdateAchievementBox($achievementId, $name, $description, $rootId, $level){ +function htmlUpdateAchievementBox($achievementId, $name, $rootId, $achievementGroupId, $level, $description, $imgUrl){ $html = ""; $html .= "
"; $html .= ""; - $html .= ""; + $html .= ""; $html .= "
achievementId: ".$achievementId; $html .= ""; - $html .= "
"; - $html .= "
"; + $html .= "
"; $html .= ""; $html .= ""; - $html .= "
"; - $html .= "
"; - $html .= ""; - $html .= ""; - $html .= "
"; - $html .= "
"; $html .= ""; $html .= ""; - $html .= "
"; - $html .= "
"; + $html .= ""; + $html .= ""; $html .= ""; $html .= ""; - $html .= "
"; + $html .= ""; + $html .= ""; $html .= ""; $html .= ""; return $html; diff --git a/homepage/machs/lib/api.php b/homepage/machs/lib/api.php index 370ea7a..c3801ff 100644 --- a/homepage/machs/lib/api.php +++ b/homepage/machs/lib/api.php @@ -13,19 +13,79 @@ function processPostData($db, $post, $redirectLocation = "."){ addAchievement( $db, $post['name'], - $post['description'] + $post['rootId'], + $post['achievementGroupId'], + $post['level'], + $post['description'], + $post['imgUrl'] ); } + + if($post['action']=="addAchievementGroup"){ + addAchievementGroup( + $db, + $post['name'], + $post['rootId'], + $post['unlockingAchievementId'], + $post['imgUrl'] + ); + } + if($post['action']=="updateAchievement"){ updateAchievement( $db, $post['achievementId'], - $post['name'], + $post['name'], + $post['rootId'], + $post['achievementGroupId'], + $post['level'], $post['description'], - $post['rootId'], - $post['level'] + $post['imgUrl'] ); } + + if($post['action']=="updateAchievementGroup"){ + updateAchievement( + $db, + $post['achievementGroupId'], + $post['name'], + $post['rootId'], + $post['unlockingAchievementId'], + $post['imgUrl'] + ); + } + + if($post['action']=="setBday"){ + setBday( + $db, + $post['userId'], + $post['bday'] + ); + } + 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'] +# ); + } + if($post['action']=="reportRecord"){ +# $u = getUserData($db, $post['userId']); +# $ag = new achievementGroup; +# achievementGroup::setDbConnection($db); +# $ag->loadAchievementGroupFromDb($post['achievementGroupId']); + $m = $post['userId']." hat in ".$post['achievementGroupId']." ".$post['value']." geschafft!"; +# $m = $u['vorname']." ".$u['name']." hat in ".$ag->getName()." ".$post['value']." geschafft!"; + sendEmail("cwsvjudo@arcor.de", $m, "[machs] Rekordmeldung"); + } if($post['redirectLocation']) $redirectLocation = $post['redirectLocation']; header("Location: ".$redirectLocation); diff --git a/homepage/machs/lib/db.php b/homepage/machs/lib/db.php index 52c4a31..a6f65d1 100644 --- a/homepage/machs/lib/db.php +++ b/homepage/machs/lib/db.php @@ -246,6 +246,7 @@ 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; } @@ -281,41 +282,126 @@ SQL; return dbQuery($db, $query); } -function addAchievement($db, $name, $description){ +function addAchievement($db, $name, $rootId, $achievementGroupId, $level, $description, $imgUrl){ + if($rootId=="") + $rootId=null; + if($imgUrl=="") + $imgUrl=null; $query = << ['value'=>$name, 'data_type'=>PDO::PARAM_STR], + ':rootId' => ['value'=>$rootId, 'data_type'=>PDO::PARAM_INT], + ':achievementGroupId' => ['value'=>$achievementGroupId, 'data_type'=>PDO::PARAM_INT], + ':level' => ['value'=>$level, 'data_type'=>PDO::PARAM_INT], ':description' => ['value'=>$description, 'data_type'=>PDO::PARAM_STR], + ':imgUrl' => ['value'=>$imgUrl, 'data_type'=>PDO::PARAM_STR], ]; dbQuery($db, $query, $params, ['dontFetch'=>true]); return; } -function updateAchievement($db, $achievementId, $name, $description, $rootId, $level){ +function addAchievementGroup($db, $name, $unlockingAchievementId, $imgUrl){ + if($unlockingAchievementId=="") + $unlockingAchievementId=null; + if($imgUrl=="") + $imgUrl=null; + $query = << ['value'=>$name, 'data_type'=>PDO::PARAM_STR], + ':unlockingAchievementId' => ['value'=>$unlockingAchievementId, 'data_type'=>PDO::PARAM_INT], + ':imgUrl' => ['value'=>$imgUrl, 'data_type'=>PDO::PARAM_STR], + ]; + dbQuery($db, $query, $params, ['dontFetch'=>true]); +return; +} + +function updateAchievement($db, $achievementId, $name, $rootId, $achievementGroupId, $level, $description, $imgUrl){ + if($rootId=="") + $rootId=null; + if($imgUrl=="") + $imgUrl=null; $query = << ['value'=>$name, 'data_type'=>PDO::PARAM_STR], - ':description' => ['value'=>$description, 'data_type'=>PDO::PARAM_STR], + ':achievementGroupId' => ['value'=>$achievementGroupId, 'data_type'=>PDO::PARAM_INT], ':rootId' => ['value'=>$rootId, 'data_type'=>PDO::PARAM_INT], ':level' => ['value'=>$level, 'data_type'=>PDO::PARAM_INT], + ':description' => ['value'=>$description, 'data_type'=>PDO::PARAM_STR], + ':imgUrl' => ['value'=>$imgUrl, 'data_type'=>PDO::PARAM_STR], ':achievementId' => ['value'=>$achievementId, 'data_type'=>PDO::PARAM_INT], ]; dbQuery($db, $query, $params, ['dontFetch'=>true]); return; } +function updateAchievementGroup($db, $achievementGroupId, $name, $unlockingAchievementId, $imgUrl){ + if($unlockingAchievementId=="") + $unlockingAchievementId=null; + if($imgUrl=="") + $imgUrl=null; + $query = << ['value'=>$achievementGroupId, 'data_type'=>PDO::PARAM_INT], + ':name' => ['value'=>$name, 'data_type'=>PDO::PARAM_STR], + ':unlockingAchievementId' => ['value'=>$unlockingAchievementId, 'data_type'=>PDO::PARAM_INT], + ':imgUrl' => ['value'=>$imgUrl, 'data_type'=>PDO::PARAM_STR], + ]; + dbQuery($db, $query, $params, ['dontFetch'=>true]); +return; +} + +function setBday($db, $userId, $bday){ + $query = << ['value'=>$bday, 'data_type'=>PDO::PARAM_STR], + ':userId' => ['value'=>$userId, 'data_type'=>PDO::PARAM_INT] + ]; + dbQuery($db, $query, $params, ['dontFetch'=>true]); +return; +} + +function setRecord($db, $userId, $achievementGroupId, $value){ +$u = getUserData($db, $userId); + $query = << ['value'=>$achievementGroupId, 'data_type'=>PDO::PARAM_INT], + ':ageClass' => ['value'=>record::birthday2ageClass($u['gebDatum']), 'data_type'=>PDO::PARAM_INT], + ':userId' => ['value'=>$userId, 'data_type'=>PDO::PARAM_INT], + ':value' => ['value'=>$value, 'data_type'=>PDO::PARAM_INT], + ]; + dbQuery($db, $query, $params, ['dontFetch'=>true]); +//var_dump($userId, $achievementGroupId, $value); +//var_dump($query, $params); +return; +} + function canUserGetAchievementToday($db, $userId){ $achievements = getUsersAchievements($db, $userId); foreach($achievements as $a){ - if( date('Ymd') == date('Ymd', strtotime($a['timestamp'])) ) + if( date('Ymd') == date('Ymd', strtotime($a['timestamp'])) ){ return false; + } } return true; } diff --git a/homepage/machs/lib/machs/achievementGroup.php b/homepage/machs/lib/machs/achievementGroup.php new file mode 100644 index 0000000..4eb2882 --- /dev/null +++ b/homepage/machs/lib/machs/achievementGroup.php @@ -0,0 +1,232 @@ +setAchievementGroupData( + $r['id'], + $r['name'], + $r['unlockingAchievementId'], + $r['imageUrl'] + ); + $groups[$gid]->getAchievements(['force'=>true]); + } + return $groups; + } + + //getter functions for the member variables + function getId(){return $this->id;} + function getName(){return $this->name;} + function getUnlockingAchievementId(){return $this->unlockingAchievementId;} + function getImageUrl(){return $this->imageUrl;} + + /// returns list of achievements + /// - returns the previously loaded achievements + /// - reloads them if null or forced + function getAchievements($options=[]){ + // standards for Options: + $force = $options['force']??false; // load the achievements from the db even if ther already are some in the group->achievements member + if(($this->achievements == null) or ($force)){ + $query = <<['value'=>$this->id, 'data_type'=>PDO::PARAM_INT]]; + $this->achievements = dbQuery(self::$db, $query, $params); + } + return $this->achievements; + } // end getAchievements + + /// Load the achievementgroup $id from the db into the + function loadAchievementGroupFromDb($id){ + $query = <<['value'=>$id, 'data_type'=>PDO::PARAM_INT]]; + $result = dbQuery(self::$db, $query, $param); + + $this->setAchievementGroupData( + $result[0]['id'], + $result[0]['name'], + $result[0]['unlockingAchievementId'], + $result[0]['imageUrl'] + ); + $this->getAchievements(['force'=>true]); + } + + /// Set the member data of the group + function setAchievementGroupData($id, $name, $unlockingAchievementId=null, $imageUrl=null){ + $this->id = (int)$id; + $this->name = $name; + $this->unlockingAchievementId = ($unlockingAchievementId == null ? null : (int)$unlockingAchievementId); + $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; + $query = ""; + $query.= "SELECT * FROM `cwsvjudo`.`achievements<=>user` "; + $query.= "WHERE `userId` = :userId"; + if(!$getAll) + $query.=" AND `achievementId` = :achievementId"; + $query.= ";"; + $params[':userId'] = array('value'=>$userId, 'data_type'=>PDO::PARAM_INT); + if(!$getAll) + $params[':achievementId'] = array('value'=>$this->getId(), 'data_type'=>PDO::PARAM_INT); + $result = dbQuery($this->getDbConnection(), $query, $params); +return $result; +} + + /// returns the materialize card html code of the Achievementgroup + /// + /// @param $uId id of the user the achievements should be + function asHtmlCard($uId, $options=[]){ + $noForm = $options['noForm']??true; + $retHtml = ""; + $userData = record::getUserData($uId); + $usersAchievements = $this->getUsersAchievements( $uId, ['getAll'=>true] ); + $usersAchievementIds=[null]; + foreach($usersAchievements as $a){ + $usersAchievementIds[]=(int)$a['achievementId']; + } + if(!in_array($this->getUnlockingAchievementId(), $usersAchievementIds)) + return ""; + $records = record::getGroupsRecords( + $this->getId(), + record::birthday2ageClass($userData[0]['gebDatum']) + ); + $achievements = $this->getAchievements(); + + $retHtml .= "
"; + $retHtml .= "
"; + $retHtml .= "
"; + if($this->imageUrl != null){ + $retHtml .= "
imageUrl."\">"; + } + $retHtml .= "".$this->name.""; + if($this->imageUrl != null){ + $retHtml .= "
"; + } + $retHtml .= "
    "; + foreach($achievements as $a){ + if(in_array((int)$a['id'], $usersAchievementIds)){ + $retHtml .= "
  • ✓ ".$a['name'].": ".$a['description']; + $retHtml .= "
  • "; + } + 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 .= "
"; + $retHtml .= "
"; + $retHtml .= "
"; + return $retHtml; + }// end asHtmlCard + + /// create html code for a for to add an achievementGroup + static function htmlAddAchievementGroupForm(){ + $html = ""; + $html .= "
"; + $html .= ""; + $html .= ""; + $html .= ""; + $html .= ""; + $html .= ""; + $html .= ""; + $html .= "
"; + return $html; + } + /// create html code for a for to edit an achievementGroup + function htmlEditAchievementGroupForm(){ + $html = ""; + $html .= "Edit ".$this->getName(); + $html .= "
"; + $html .= ""; + $html .= ""; + $html .= "getId()."\"/>"; + $html .= ""; + $html .= "getName()."\"/>"; + $html .= ""; + $html .= "getUnlockingAchievementId()."\"/>"; + $html .= ""; + $html .= "getImageUrl()."\"/>"; + $html .= ""; + $html .= "
"; + return $html; + } + +} +?> diff --git a/homepage/machs/lib/machs/materializeInit.php b/homepage/machs/lib/machs/materializeInit.php new file mode 100644 index 0000000..10acf22 --- /dev/null +++ b/homepage/machs/lib/machs/materializeInit.php @@ -0,0 +1,14 @@ + + diff --git a/homepage/machs/lib/machs/sidenav.php b/homepage/machs/lib/machs/sidenav.php new file mode 100644 index 0000000..26a53ee --- /dev/null +++ b/homepage/machs/lib/machs/sidenav.php @@ -0,0 +1,13 @@ + + +☰ MeinACHievementSystem + diff --git a/homepage/machs/lib/record.php b/homepage/machs/lib/record.php new file mode 100644 index 0000000..3ebf88c --- /dev/null +++ b/homepage/machs/lib/record.php @@ -0,0 +1,221 @@ +['value'=>$userId, 'data_type'=>PDO::PARAM_INT]]); + } + // request the records of a group together with its holder + // @param $groupId id of the group of achievements where the records are wanted + // @param $ageClass the age class (as int only) for which the record is holding + // + // a record of an achievement group consists of: + // - a value + // - an age class + public static function getGroupsRecords($groupId, $ageClass=null){ +// var_dump($groupId, $ageClass); + //$ageClass = null; // DEBUG + $query = "SELECT * FROM `cwsvjudo`.`machs_records` "; + $query.= "JOIN `cwsvjudo`.`wkParticipo_Users` "; + $query.= " ON `cwsvjudo`.`machs_records`.`userId` = `cwsvjudo`.`wkParticipo_Users`.`id` "; + $query.= "WHERE `cwsvjudo`.`machs_records`.`achievementGroupId` = :groupId "; + $params =[ + 'groupId'=>[ 'value'=>$groupId, 'data_type'=>PDO::PARAM_INT ] + ]; + if($ageClass != null){ + $query.= " AND `cwsvjudo`.`machs_records`.`ageClass` <= :ageClass "; + $params['ageClass'] = [ 'value'=>$ageClass, 'data_type'=>PDO::PARAM_INT ]; + } + $query.= "ORDER BY `cwsvjudo`.`machs_records`.`value`;"; + //var_dump($query, $params); + return dbQuery(self::$db, $query, $params); + } + /// @param $r record as associative array + public static function arrayRecord2htmlDl($r){ + $retHtml = "
"; + foreach(self::$colNames as $i) + $retHtml.= "
".$i."
".$r[$i]."
"; + $retHtml.= "
"; + return $retHtml; + } + /// @param $r record joined with it's holder as associative error + /// @param $u user for whom the record is shown + public static function arrayRecord2htmlCard($r, $u, $gid, $frameTag="div"){ + $retHtml = "<".$frameTag." class=\"card\">"; + $retHtml.= "
"; + $retHtml.= "Zu schlagender Rekord"; + if(empty($r)){ + $retHtml.= "Noch kein Rekord für die Altersklasse U".record::birthday2ageClass($u['gebDatum']); + } + else{ + $retHtml.= $r['vorname']." ".$r['name']." mit ".$r['value']." in der U".$r['ageClass']; + } + $retHtml.= "
"; + $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; + } +} + +/// Als String gegebene Altersklassen als Jahrgangsintervalle +/// ausdrücken +function akListString2jgArray($akListString, $year = NULL ){ +$ret = array(); + if($year==NULL) + $year=date("Y"); + else{ + if( !((int)$year == $year && (int)$year >= 0) ) + $year=date("Y"); + } + + $year = (int)$year; + + foreach(explode(" ", $akListString) as $ak) + array_push( + $ret, + akString2jgIntervall($ak, $year) + ); +return $ret; +} + +/// Aus einer als String gegebenen Altersklasse ein Jahrgangsintervall +/// machen +function akString2jgIntervall($akString, $year=null){ +if($year==NULL) + $year=date("Y"); +else{ + if( !((int)$year == $year && (int)$year >= 0) ) + $year=date("Y"); +} + +$ret= array(NULL, NULL); + + // Speziell für die Ux-Altersklassen + // Es fehlt noch das <=U + $akUmatchString = "/(.*)U(.*)/"; + $matches = array(); + preg_match($akUmatchString, $akString, $matches); + // Wenn wir nicht den gesamten akString Matchen ist etwas schief + // gelaufen + if($matches[0]==$akString){ + // Das ausgelesene Alter der Ux sollte eine positive Integer sein, + // sonst ist was schiefgelaufen + $ageLimit = (int)$matches[2]; + if( ($ageLimit == $matches[2] && $ageLimit > 0) ){ + $ret[0] = $year-$ageLimit+1; + + if($matches[1] == "") + $ret[1] = $year-$ageLimit+2; + else{ + if($matches[1] == "-") + $ret[1] = $year-$ageLimit+3; + else{ + if($matches[1] == "--") + $ret[1] = $year-$ageLimit+4; + } + } + } + return $ret; + } + + // Speziell Altersklassen der Form Jg.x-y + $akUmatchString = "/Jg\.(.*)\-(.*)/"; + $matches = array(); + preg_match($akUmatchString, $akString, $matches); + // Wenn wir nicht den gesamten akString Matchen ist etwas schief + // gelaufen + if($matches[0]==$akString){ + $ret[0]=(int)$matches[1]; + $ret[1]=(int)$matches[2]; + + return $ret; + } +return $ret; +} + +function validateDate($date, $format = 'Y-m-d') +{ + $d = DateTime::createFromFormat($format, $date); + // The Y ( 4 digits year ) returns TRUE for any integer with any number of digits so changing the comparison from == to === fixes the issue. + return $d && $d->format($format) === $date; +} +?> diff --git a/homepage/machs/login.php b/homepage/machs/login.php index c8c20bf..2c8cc71 100644 --- a/homepage/machs/login.php +++ b/homepage/machs/login.php @@ -8,6 +8,11 @@ setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge'); require_once("./lib/achievementsLib.php"); + $basePath = "/users/cwsvjudo/www"; + require_once($basePath."/config/phpcount.config.php"); + require_once($basePath."/ressourcen/phpLib/phpcount/phpcount.php"); + + function checkCredentials($username, $password, $db_server, $db_user, $db_password, $db_name){ $mysqli = @new mysqli($db_server, $db_user, $db_password, $db_name); if ($mysqli->connect_error) { @@ -30,6 +35,7 @@ function checkCredentials($username, $password, $db_server, $db_user, $db_passwo ), ); $message['success'] = 'Anmeldung erfolgreich, weiter zum Inhalt.'; + PHPCount::AddHit("machs-Login ".$_POST['f']['username']); header('Location: http://' . $_SERVER['HTTP_HOST'] . '/machs?user=' . $_POST['f']['username']); } else { sleep(1); @@ -59,21 +65,27 @@ else{ } } } + ?> - Wettkampfplanung - Login + + + + + + + + Login des Achievementsystemes der Judoka des Chemnitzer WSV - - - +

Achievementsystem der Judoka des Chemnitzer WSV

-
+
Benutzerdaten
@@ -91,9 +103,9 @@ else{
Hinweise -
    -
  • Logindaten sind über den Übungsleiter zu beantragen.
  • -
  • Dieses Projekt ist in mehr oder weniger aktiven Entwicklung. Sollte mal was nicht funktionieren, kann es sein, dass ich gerade daran herumschreibe. Also ruhig zu einem späteren Zeitpunkt noch einmal probieren.
  • +
      +
    • Logindaten sind über den Übungsleiter zu beantragen.
    • +
    • Dieses Projekt ist in mehr oder weniger aktiven Entwicklung. Sollte mal was nicht funktionieren, kann es sein, dass ich gerade daran herumschreibe. Also ruhig zu einem späteren Zeitpunkt noch einmal probieren.
diff --git a/homepage/machs/setUserData.php b/homepage/machs/setUserData.php new file mode 100644 index 0000000..5ac43cd --- /dev/null +++ b/homepage/machs/setUserData.php @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + Benutzerdaten ändern + + + + + + + + + + + + +

Benutzerdaten ändern

+ ".$k['vorname']." ".$k['name']."" ); + echo( htmlUsersUploadBox($dbConnection, $_SESSION['user']['userId']) ); + echo( setUserDataBox($k['kidId']) ); + } + } + ?> + + +