Merge branch 'master' into DieJudoGürtelprüfung

This commit is contained in:
marko
2021-10-31 11:01:19 +01:00
146 changed files with 1292 additions and 109 deletions

6
.gitmodules vendored
View File

@@ -1,3 +1,9 @@
[submodule "homepage/materialize"]
path = submodules/materialize
url = https://github.com/materializecss/materialize.git
[submodule "homepage/redesign2018/markdownExperiment/zopfli"]
path = submodules/zopfli
url = https://github.com/google/zopfli.git
[submodule "submodules/parsedown"]
path = submodules/parsedown
url = https://github.com/erusev/parsedown

View File

@@ -0,0 +1,27 @@
---
title: Newsletter 2021-09-26
---
# Neue Trainingszeiten und Herbstkrümelrandori
Hallo liebe Eltern,
hallo liebe Judoka!
## Neue Trainingszeiten
Da in letzter Zeit erfreulich viele Anfänger zu uns gestoßen sind, können wir unsere Traningszeiten am Freitag wieder auftrennen:
- Freitag (Kinder/Anfänger)
- 16:0017:45 Uhr
- Zielgruppe: Anfänger und Kinder unter 9 Jahren
- Freitag (Jugend/Fortgeschrittene)
- 17:3019:00 Uhr
- Zielgruppe: Wer die Grundlagen des Judo beherrscht
## Herbstkrümelrandori
Noch nicht offiziell angekündigt, aber nach Interese gefragt wurde für das Herbstkrümelrandori. Stattfinden soll es am Buß- und Bettag, dem 17. November für die Jahrgänge 2006-2010.
## Wettkampfplaner
Derzeit gibt es im Wettkampflaner offenbar Probleme beim Zustellen der Einschreibungs-Email. In mehreren Fällen habe ich trotz erfolgter Einschreibung keine Bestätigungsmail erhalten. Dadurch war ich teilweise nicht auf dem atuellen Stand der eingeschriebenen Starter. Sorry dafür.

View File

@@ -0,0 +1,29 @@
---
title: Newsletter 2021-10-30
---
Hallo liebe Eltern,
Hallo liebe Judoka!
## Schwimmtraining
Da einige von uns für das Sportabzeichen noch ihren Schwimmnachweis benötigten, waren einige von uns diese Woche in der Schwimmhalle. Dabei ist mir in Erinnerung gerufen worden, was für ein gutes Ergänzungstraining Schwimmen für den Judoka doch ist. Deshalb wollte ich ich eine zusätzliche Trainingseinheit in der Schwimmhalle vorschlagen. Zur besseren Terminfindung, habe ich mal eine [Umfrage gestartet][1]. Die bevorzugten Termine bitte mit grünem Haken, wo es grundsätzlich geht mit gelben Haken und wo es gar nicht geht mit rotem Kreuz markieren.
Von der Terminfindung hängt dann auch die Schwimmhalle ab, da nicht alle [Schwimmhallen täglich geöffnet][2] sind. Mein persönlicher Favorit ist das [Stadtbad][3] wegen seiner 50 m Bahn.
Da das Schwimmen als zusätzliches Training dienen soll und nicht als Badeausflug, sind gute Schwimmfähigkeiten eine zwingende Voraussetzung.
## Trainingshilfen Kyu
In unserem [Wiki][4] gibt es bereits [Übersichten][5] über das Kyu-Prüfungsprogramm. Seit kurzem gibt es eine [weitere Version][6] mit Videoerklärungen und für mobile Endgräte ausgelegt als Lernhilfe für die Judoka. Das ganze ist noch in laufender Entwicklung, die ersten paar Gürtel sind aber schon verfügbar.
Mit sportlichen Grüßen
marko
[1]: https://framadate.org/1tyFG1lGd4bezLyg
[2]: https://chemnitz.de/chemnitz/de/leben-in-chemnitz/freizeit/hallenbaeder/index.html
[3]: https://chemnitz.de/chemnitz/de/leben-in-chemnitz/freizeit/hallenbaeder/stadtbad/index.html
[4]: http://cwsvjudo.bplaced.net/JudoWiki
[5]: http://cwsvjudo.bplaced.net/JudoWiki/Kyu/Kyu
[6]: http://cwsvjudo.bplaced.net/participo/kyu.php

View File

@@ -1,11 +1,16 @@
churicnate@yahoo.com
alled82@gmx.de
j.felke@gmx.net
akf21182@aol.com
norman.haeuberer@gmail.com
julia.haeuberer@gmx.de
alled82@gmx.de
churicnate@yahoo.com
dani17184@web.de
j.felke@gmx.net
julia.haeuberer@gmx.de
mail@blankfuchs.de
manja.bunzel@gmx.de
meier.andrej@web.de
mohamad.zahra1986@gmail.com
nick.weidensager@web.de
norman.haeuberer@gmail.com
oks.dietrich@gmail.com
post@was7.de
stephanie.brittnacher@gmail.com
nick.weidensager@web.de

View File

@@ -1,7 +1,13 @@
<?php
require_once('machs.php');
setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
require_once("config.php");
require_once("./local/dbConf.php");
require_once("./local/achievementsConf.php");
PHPCount::AddHit("Achievementsystem (".htmlspecialchars($_SESSION['user']['username']).")");
require_once("./lib/db.php");
require_once("./lib/achievementsLib.php");
require_once("./lib/api.php");
$dbConnection = getPdoDbConnection(
$cwsvJudoConfig["db"]["host"],
@@ -9,12 +15,26 @@ $dbConnection = getPdoDbConnection(
$cwsvJudoConfig["db"]["user"],
$cwsvJudoConfig["db"]["password"]
);
require_once("./auth.php");
record::setDbConnection($dbConnection);
achievementGroup::setDbConnection($dbConnection);
$achievementGroups = achievementGroup::getAllAchievementGroups();
$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/cwsvJudo/miscAssis.php");
// $dbConnection = getCwsvJudoDbConn();
$dbConnection = getPdoDbConnection(
$cwsvJudoConfig["db"]["host"],
$cwsvJudoConfig["db"]["name"],
$cwsvJudoConfig["db"]["user"],
$cwsvJudoConfig["db"]["password"]
);
$achievementGroups = getAchievementGroups($dbConnection);
processPostData($dbConnection, $_POST);
?>
<!DOCTYPE html>
<html>
@@ -38,34 +58,56 @@ processPostData($dbConnection, $_POST);
</head>
<body>
<!-- sidenav -->
<?php include("lib/machs/sidenav.php");?>
<!-- end sidenav -->
<?php // show own achievements, if oneself is inTraining
<?php echo $login_status; ?>
<?php
if( hasUserAttribute($dbConnection, $_SESSION['user']['userId'], "inTraining" ) ){
echo( "<h2>Eigene Achievements</h2>" );
echo( "<div style=\"display:flex; flex-wrap:wrap; align-items:stretch;\" class=\"row\">");
foreach($achievementGroups as $g){
echo($g->asHtmlCard($_SESSION['user']['userId']));
}
echo("</div>" );
echo( htmlUsersUploadBox($dbConnection, $_SESSION['user']['userId']) );
echo(htmlAchievementListForUser(
$dbConnection,
$achievementGroups,
$_SESSION['user']['userId'],
getUsersAchievements($dbConnection, $_SESSION['user']['userId'])
));
}
?>
<?php // show the achievements of each kid
$usersKids = getUsersKids($dbConnection, $_SESSION['user']['userId']);
foreach($usersKids as $k){
if( hasUserAttribute($dbConnection, $k['kidId'], "inTraining" ) ){
echo( "<h2>".$k['vorname']." ".$k['name']."</h2>" );
echo( "<div style=\"display:flex; flex-wrap:wrap; align-items:stretch;\" class=\"row\">");
foreach($achievementGroups as $g){
echo($g->asHtmlCard($k['kidId'], ['noForm'=>false]));
<?php
$usersKids = getUsersKids($dbConnection, $_SESSION['user']['userId']);
foreach($usersKids as $k){
if( hasUserAttribute($dbConnection, $k['kidId'], "inTraining" ) and ($k['kidId']!=$_SESSION['user']['userId']) ){
echo( "<h2>".$k['vorname']." ".$k['name']."</h2>" );
echo( htmlUsersUploadBox($dbConnection, $k['kidId']) );
echo(htmlAchievementListForUser(
$dbConnection,
$achievementGroups,
$k['id'],
getUsersAchievements($dbConnection, $k['id'])
));
}
echo("</div>" );
}
}
?>
</body>
<?php
if(isUserAdmin($dbConnection, $_SESSION['user']['userId'])){
echo("<h2 id=\"addAchievementBox\">Add Achievements</h2>");
echo(htmlAddAchievementBox());
echo("<h2>Update Achievements</h2>");
$achievements = getAchievements($dbConnection);
foreach($achievements as $a){
echo( htmlUpdateAchievementBox(
$a['id'],
$a['name'],
$a['description'],
$a['rootId'],
$a['level']
));
echo("<hr />");
}
}
?>
<span id="endOfUpdateAchievementBoxes" style="display:none;" ></span>
</body>
</html>

View File

@@ -1,51 +1,50 @@
<?php
require_once("./local/cwsvJudo.config.php");
require_once("./lib/db.php");
require_once("./lib/api.php");
require_once("./local/cwsvJudo.config.php");
require_once("./lib/db.php");
require_once("./lib/api.php");
$dbConnection = getPdoDbConnection(
$cwsvJudoConfig["db"]["host"],
$cwsvJudoConfig["db"]["name"],
$cwsvJudoConfig["db"]["user"],
$cwsvJudoConfig["db"]["password"]
);
$dbConnection = getPdoDbConnection(
$cwsvJudoConfig["db"]["host"],
$cwsvJudoConfig["db"]["name"],
$cwsvJudoConfig["db"]["user"],
$cwsvJudoConfig["db"]["password"]
);
processPostData($dbConnection, $_POST);
processPostData($dbConnection, $_POST);
$judokas = getUsersWithAttribute($dbConnection, "inTraining");
$judokas = getUsersWithAttribute($dbConnection, "inTraining");
$lastAttendances = getLastAttendances($dbConnection);
$lastAttendancesAssocArray = array();
foreach($lastAttendances as $a){
if(!array_key_exists( $a['date'], $lastAttendancesAssocArray)){
$lastAttendancesAssocArray[$a['date']] = array();
$lastAttendances = getLastAttendances($dbConnection);
$lastAttendancesAssocArray = array();
foreach($lastAttendances as $a){
if(!array_key_exists( $a['date'], $lastAttendancesAssocArray)){
$lastAttendancesAssocArray[$a['date']] = array();
}
array_push( $lastAttendancesAssocArray[ $a['date'] ], $a );
}
array_push( $lastAttendancesAssocArray[ $a['date'] ], $a );
}
$dateLastWendsday = new DateTime("last wednesday");
$dateLastFriday = new DateTime("last friday");
$lastTrainingDay = max($dateLastWendsday, $dateLastFriday);
$dateLastWendsday = new DateTime("tomorrow last wednesday");
$dateLastFriday = new DateTime("tomorrow last friday");
$lastTrainingDay = max($dateLastWendsday, $dateLastFriday);
?>
<html>
<header>
<!-- Compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<!-- Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var elems = document.querySelectorAll('select');
var instances = M.FormSelect.init(elems);
});
</script>
<!--Let browser know website is optimized for mobile-->
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
</header>
<!-- Compiled and minified CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@materializecss/materialize@1.1.0-alpha/dist/css/materialize.min.css">
<!-- Compiled and minified JavaScript -->
<script src="https://cdn.jsdelivr.net/npm/@materializecss/materialize@1.1.0-alpha/dist/js/materialize.min.js"></script>
<!-- Inits for materializecss-->
<?php include_once("lib/mams/materializeInit.php");?>
<!--Let browser know website is optimized for mobile-->
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Corona-Anwesenheitsliste der Judoka des Chemnitzer WSV</title>
</header>
<body>
<h1>Corona-Anwesenheitsliste der Judoka des Chemnitzer WSV</h1>
<h2>Anwesenheiten hinzufügen</h2>
<!-- sidenav for mams-->
<?php include_once("lib/mams/sidenav.php");?>
<h2 id="addAttendences">Anwesenheiten hinzufügen</h2>
<form action="./index.php" method="POST">
<div class="input-field">
<input id="giveAttendanceAction" name="action" value="giveAttendance" type="hidden" />
@@ -56,7 +55,28 @@ $lastTrainingDay = max($dateLastWendsday, $dateLastFriday);
<input type="submit" value="Submit">
</div>
</form>
<h2>Anwesenheiten</h2>
<h2 id="addCoronaUser">Corona-Trainee hinzufügen</h2>
<?php
if( array_key_exists('addCoronaUserSuccess', $_GET) ){
if($_GET['addCoronaUserSuccess'] == "true"){
echo("<div>Added user.</div>");
}else{
echo("<div>ERROR</div>");
}
}
?>
<form action="." method="POST">
<input name="action" value="addCoronaUser" type="hidden" />
<input placeholder="Name" name="name" type="text" />
<input placeholder="Vorname" name="vorname" type="text" />
<input placeholder="PLZ" name="corona_PLZ" type ="text" />
<input placeholder="Telefon" name="corona_telephon" type="tel" />
<input placeholder="eMail" name="corona_eMail" type="text" />
<input type="submit" value="Neuen Corona-User eintragen" />
</form>
<h2 id="showAttendences">Anwesenheiten</h2>
<h3>Sende Anwesenheitsliste an eMail</h3>
<form method="POST" action="." >
<input name="toEmail" type="text" placeholder="toEmail" />
@@ -86,15 +106,5 @@ $lastTrainingDay = max($dateLastWendsday, $dateLastFriday);
echo("</table>");
}
?>
<h2>Trainee hinzufügen</h2>
<form action="." method="POST">
<input name="action" value="addCoronaUser" type="hidden" />
<input placeholder="Name" name="name" type="text" />
<input placeholder="Vorname" name="vorname" type="text" />
<input placeholder="PLZ" name="corona_PLZ" type ="text" />
<input placeholder="Telefon" name="corona_telephon" type="text" />
<input placeholder="eMail" name="corona_eMail" type="text" />
<input type="submit" value="Neuen Corona-User eintragen" />
</form>
</body>
</html>

View File

@@ -9,14 +9,31 @@ function processPostData($db, $post, $redirectLocation = "."){
updateCoronaData($db, $post['userId'], $post['columnName'], $post['columnValue']);
}
if($post['action'] == "addCoronaUser"){
addCoronaUser(
$db,
$post['name'],
$post['vorname'],
$post['corona_PLZ'],
$post['corona_telephon'],
$post['corona_eMail']
);
if(
array_keys_exist(
$post,
['name', 'vorname', 'corona_PLZ', 'corona_telephon', 'corona_eMail']
)
&& isValid($post['corona_PLZ'], "plz")
&& isValid($post['corona_telephon'], "phonenumber")
&& isValid($post['corona_eMail'], "email")
// && isValid($post['name'], "name")
// && isValid($post['vorname'], "name")
){
addCoronaUser(
$db,
$post['name'],
$post['vorname'],
$post['corona_PLZ'],
$post['corona_telephon'],
$post['corona_eMail']
);
$redirectLocation .= "?addCoronaUserSuccess=true";
}
else{
$redirectLocation .= "?addCoronaUserSuccess=false";
}
$redirectLocation .= "#addCoronaUser";
}
if($post['action'] == "sendAttandeesPerEmail"){
sendEmail(
@@ -78,4 +95,60 @@ function attendancesAssocArray2mdList($attendancesAssocArray, $date=null){
}
return $ret;
}
/// Validaing a phone number
/// true if it validates, false if not
function validate_phone_number($phone)
{
// Allow +, - and . in phone number
$filtered_phone_number = filter_var($phone, FILTER_SANITIZE_NUMBER_INT);
// Remove "-" from number
$phone_to_check = str_replace("-", "", $filtered_phone_number);
// Check the lenght of number
// This can be customized if you want phone number from a specific country
if (strlen($phone_to_check) < 10 || strlen($phone_to_check) > 14) {
return false;
} else {
return true;
}
}
/// validate different types of input
function isValid($toValidate, $type){
// for now we disable the name validation: what do i know how people can be called!
// $regexName="/^[A-Z][a-zA-Z]*$/";
$regexPlz ="/^[0-9]{5}$/";
switch( $type ){
case "plz":
return preg_match($regexPlz, $toValidate) > 0;
case "phonenumber":
return validate_phone_number($toValidate);
case "email":
return filter_var($toValidate, FILTER_VALIDATE_EMAIL);
default:
return false;
}
return false;
}
//! Checks if multiple keys exist in an array
//!
//! @param array $array array to check for key
//! @param array|string $keys keys to check for
//!
//! @return bool true, if *all* keys are set in the array
function array_keys_exist( array $array, $keys ) {
if ( ! is_array( $keys ) ) {
$keys = func_get_args();
array_shift( $keys );
}
$count = 0;
foreach ( $keys as $key ) {
if ( isset( $array[$key] ) || array_key_exists( $key, $array ) ) {
$count++;
}
}
return count( $keys ) === $count;
}
?>

View File

@@ -57,8 +57,8 @@ if( empty($someOptions['dontFetch' ]) ) $someOptions['dontFetch' ] = false;
$pdoResult = $pdoStatement->execute();
if(!$pdoResult){
echo("Error during dbQuery!\n");
echo($aDbConnection->errorInfo();
echo(PDOStatement::errorInfo();
echo($aDbConnection->errorInfo());
echo(PDOStatement::errorInfo());
}
if($someOptions['dontFetch']){
$ret = NULL;
@@ -83,9 +83,6 @@ if( empty($someOptions['dontFetch' ]) ) $someOptions['dontFetch' ] = false;
);
}
}
//var_dump($ret);
//var_dump($aQueryString);
//var_dump($aBindArray);
return $ret;
}

View File

@@ -0,0 +1,11 @@
<script>
options={};
document.addEventListener('DOMContentLoaded', function() {
var elems = document.querySelectorAll('select');
var instances = M.FormSelect.init(elems);
});
document.addEventListener('DOMContentLoaded', function() {
var sideNavElems = document.querySelectorAll('.sidenav');
var sideNavInstances = M.Sidenav.init(sideNavElems, options);
});
</script>

View File

@@ -0,0 +1,6 @@
<ul id="slide-out" class="sidenav">
<li><a href="#addAttendences" class="sidenav-close">Anwesenheiten hinzufügen</a></li>
<li><a href="#addCoronaUser" class="sidenav-close">Trainee hinzufügen</a></li>
<li><a href="#showAttendences" class="sidenav-close">Anwesenheiten anzeigen</a></li>
</ul>
<a href="#" data-target="slide-out" class="sidenav-trigger" style="font-size: 2em;">&#9776; mams</a>

View File

@@ -7,8 +7,8 @@ return (is_numeric($str) && $str > 0 && $str == round($str));
function getPdoDbConnection($hostname, $dbName, $user, $password){
try{
$dbConnection = new PDO(
'mysql:host='.$hostname.';dbname='.$dbName,
$user,
'mysql:host='.$hostname.';dbname='.$dbName,
$user,
$password
);
}
@@ -23,8 +23,8 @@ global $cwsvJudoConfig;
// Datenbankverbindung bereit stellen
try{
$db_connection = new PDO(
'mysql:host='.$cwsvJudoConfig["db"]["host"].';dbname='.$cwsvJudoConfig["db"]["name"],//.';charset=utf8',
$cwsvJudoConfig["db"]["user"],
'mysql:host='.$cwsvJudoConfig["db"]["host"].';dbname='.$cwsvJudoConfig["db"]["name"],//.';charset=utf8',
$cwsvJudoConfig["db"]["user"],
$cwsvJudoConfig["db"]["password"]
);
}
@@ -47,7 +47,7 @@ if (is_array($somePossibleEmptyStuff) || $somePossibleEmptyStuff instanceof Trav
return null;
}
/// Eine als String gegebene Liste kommagetrennter key=value Paare in
/// Eine als String gegebene Liste kommagetrennter key=value Paare in
/// ein assoziatives Array überführen
function getKeyValueArray($aKeyValueStringList){
$retKeyValueArray = array();
@@ -87,7 +87,7 @@ if( empty($optionsArray['outCharset']) ) $optionsArray['outCharset'] = "UTF-8";
);
$pdoStatementForQuerryingZitat->execute();
$retZitat = $pdoStatementForQuerryingZitat->fetchAll(PDO::FETCH_ASSOC);
// Zeichensatzkonvertierung
foreach($retZitat as &$entry){
array_walk(
@@ -127,8 +127,8 @@ if( !file_exists($aJsonFileName) ) return null;
if( !(is_array( $someLinkNames ) || is_object( $someLinkNames )) ) return null;
return arrayKeyFilter(
json_decode(
file_get_contents($aJsonFileName),
json_decode(
file_get_contents($aJsonFileName),
true
),
$someLinkNames
@@ -162,14 +162,14 @@ function toAscii($str, $replace=array(), $delimiter='-') {
return $clean;
}
/// Wrapper function for a query to the
/// $aDbConnection connection to a db
function dbQuery($aDbConnection, $aQueryString, $aBindArray = array(), $someOptions = array( "dbCharset" => "ISO-8859-1", "outCharset" => "UTF-8" ) ){
//echo("Doing ".$aQueryString);
var_dump($aBindArray);
if( empty($someOptions['dbCharset']) ) $someOptions['dbCharset'] = "ISO-8859-1";
if( empty($someOptions['outCharset']) ) $someOptions['outCharset'] = "UTF-8";
/// @toDo: Bisher wird nur die Rückgabe konvertiert. Eigentlich muss
/// doch auch die Eingabe konvertiert werden. Aber das jetzt
/// umzustellen wird schwer! Die User m Wettkampfplaner sind ja z.B.
/// @toDo: Bisher wird nur die Rückgabe konvertiert. Eigentlich muss
/// doch auch die Eingabe konvertiert werden. Aber das jetzt
/// umzustellen wird schwer! Die User m Wettkampfplaner sind ja z.B.
/// als UTF8 in latin1(?) gespeichert.
try{
$pdoStatement = $aDbConnection->prepare( $aQueryString );
@@ -187,7 +187,7 @@ if( empty($someOptions['outCharset']) ) $someOptions['outCharset'] = "UTF-8";
print "Error!: " . $db_error->getMessage() . "<br/>";
return null;
}
//var_dump($ret);
// Zeichensatzkonvertierung
if( is_array($ret) ){
foreach($ret as &$entry){

View File

@@ -0,0 +1,46 @@
<?php
// CREATE TABLE `cwsvjudo`.`achievements` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'id/primary key' , `name` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT 'name/caption of the Achivement' , `previousId` INT NOT NULL COMMENT 'id of the previous achievement' , `description` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'full descriptiopn in markdown' , PRIMARY KEY (`id`)) ENGINE = InnoDB CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT = 'eine Liste mit Achievements'; require_once('./local/db.php.inc');
setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
require_once('./local/wkParticipoConf.php.inc');
require_once('./auth.php');
require_once('./local/db.php.inc');
require_once('./lib/wkParticipoLib.inc.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/cwsvJudo/miscAssis.php");
$dbConnection = getCwsvJudoDbConn();
try{
$results = dbQuery(
$dbConnection,
//"INSERT INTO `wkParticipo_user<=>userAttributes` (userId, attributeId) VALUES (:userId, :attributeId);",
"SELECT * FROM cwsvjudo.achievements;"
//array(
// ':userId' => array('value'=>$anUserId, 'data_type'=>PDO::PARAM_INT),
// ':attributeId'=> array('value'=>$anAttributeId, 'data_type'=>PDO::PARAM_INT)
//)
);
}
catch(PDOException $db_error){
print "Error!: " . $db_error->getMessage() . "<br/>queryString: ".$queryString."<br />"; var_dump($bindArray);
}
// $query = "WITH SortedList (id, previousId, name, Level) AS ( SELECT Id, ParentId, SomeData, 0 as Level FROM cwsvjudo.achievements WHERE `id` IS 1 UNION ALL SELECT ll.id, ll.previousId, ll.name, Level+1 as Level FROM cwsvjudo.achievements ll INNER JOIN SortedList as s ON ll.previousId = s.Id ); SELECT id, previousId, name FROM SortedList ORDER BY Level ";
// $query = "SELECT (id, name, rootId, level) FROM cwsvjudo.achievements WHERE `id` = 1 ORDER BY `level`;";
// $query = "SELECT * FROM cwsvjudo.achievements;";
// $results = $mysqlConn->query($query);
// var_dump($results);
?>
<html>
<body>
<?php echo( arrayKeyed2htmlTableString($results, ["id", "name", "rootId", "level", "description"], $withCaption = true) );?>
</body>
</html>

View File

@@ -18,6 +18,31 @@ setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
if ($mysqlConn->connect_error) {
$sqlMessage['error'] .= 'Datenbankverbindung fehlgeschlagen: ' . $mysqlConn->connect_error;
}
// var_dump($_SESSION);
/// Stellt den cssCode mit den Variablendefinitionen bereit
/*
function colorThemeCss($colorArray = array('backgroundColor'=>"#FFAE00", 'highlightColor'=>"#FF8100", 'buttonColor'=>"#291670")){
//$colorTypes = ["backgroundColor", "highlightColor", "buttonColor"];
$defaultColors =['backgroundColor'=> "#FFAE00", 'highlightColor'=>"#FF8100", 'buttonColor'=>"#291670"];
//echo("DBG: colorArray:"); var_dump($colorArray);
// Inputdatenvalidierung
foreach($defaultColors as $key=>$value){
if( !preg_match("/^#(?:[0-9a-fA-F]{3}){1,2}$/", $colorArray[$key]) ){
$colorArray[$key] = $defaultColors[$key];
}
}
$ret = ":root{";
foreach($colorArray as $key=>$value){
$ret .= "--".$key.": ".$value."; ";
}
$ret .= "}";
return $ret;
}*/
?>
<!DOCTYPE html>
<html>
@@ -47,6 +72,7 @@ setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
<nav class="navBar">
<ul>
<li><a href="/machs">Achievementsystem</a></li>
<li><a href="./infoZettel.php">Infozettel</a></li>
<li>
<a href ="./eventKalender.php">alle geplanten Wettkämpfe als Liste</a>

View File

@@ -2,6 +2,11 @@
require_once('./local/db.php.inc');
require_once('./local/wkParticipoConf.php.inc');
require_once('./lib/wkParticipoLib.inc.php');
$basePath = "/users/cwsvjudo/www";
require_once($basePath."/config/phpcount.config.php");
require_once($basePath."/ressourcen/phpLib/phpcount/phpcount.php");
if (isset($_SESSION['login'])) {
header('Location: http://' . $_SERVER['HTTP_HOST'] . '/index.php');
} else {
@@ -36,7 +41,7 @@ if (isset($_SESSION['login'])) {
),
);
$message['success'] = 'Anmeldung erfolgreich, <a href="index.php">weiter zum Inhalt.';
// PHPCount::AddHit("wkParticipo-Login ".$_POST['f']['username']);
PHPCount::AddHit("wkParticipo-Login ".$_POST['f']['username']);
header('Location: http://' . $_SERVER['HTTP_HOST'] . '/pages/desktop/wkParticipo/index.php?user=' . $_POST['f']['username']);
} else {
sleep(1);

2
infoZettelOrg/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
uploadTouch/*

View File

@@ -0,0 +1,18 @@
# Kyuprüfung 2019
Der Termin für die diesjährige Gürtelprüfung steht:
- Freitag, d. 29.03.2019
- 16:00 Uhr Beginn der Prüfungen
- Wer sich in Ruhe erwärmen möchte, sollte also früh genug kommen.
- mitbringen:
- Pass mit Kyumarke (sofern nicht schon mir)
- 1 € für den Prüfer
Falls jemand noch eine Extratrainingseinheit haben möchte, kann sich -
am besten gleich zusammen mit seinem Uke - mit mir kurzschließen.
- Datum: Mit mir und Uke abzustimmen!
- Uhrzeit: Mit mir und Uke abzustimmen!
- Ort: unser Dojo Str. Usti nad Labem 42
- Nicht die Abstimmung mit dem Prüfungsuke vergessen!

View File

@@ -0,0 +1,37 @@
# The Little-Otto-Goshi-Liga 2019-3
## Wettkampfdaten
- Altersklassen: U9/U12
- Datum: 24.08.2019
- Ort: Sporthalle (hintere) BBS III, 06120 Halle, Grasnelkenweg 16
- Wiegen: 9:30--10:15 Uhr
- Wettkampfbeginn: ca. 10:30 Uhr
## Treffpunkt
- Ort: P+R Parkplatz Südring/Stollberger Straße
- Abfahrt: 7:30 Uhr
- *Kindersitz nicht vergessen!*
## Nicht vergessen
- Judopass
- Judogi (d. h. Jacke, Hose und Gürtel)
- *Hallenschuhe*
- Essen/Trinken
- Warme Socken und Pullover
Das Betreten der Sportstätten in Straßenschuhen ist (auch den Fans)
nicht gestattet. Bitte Ersatzschuhe (Badelatschen/Hallenschuhe)
mitbringen. Sonst muss in Socken gegangen werden!
## Mitfahrgelegenheiten
Es werden für die nächsten Wettkämpfe noch Mitfahrgelegenheiten
gesucht. Bitte mal überprüfen, ob/wer/wann jemand mitfahren kann.
MsG marko

View File

@@ -0,0 +1,32 @@
# Bezirkseinzelmeisterschaften U11
## Wettkampfdaten
- Altersklassen: U11
- Datum: 16.11.2019
- Ort: Dojo des CPSC BUDO e.V., Sportforum 09125 Chemnitz, Einfahrt
Südring
- Wiegen: 8:30--9:15 Uhr
- Wettkampfbeginn: ca. 10:30 Uhr
## Treffpunkt
- Ort: direkt am Wettkampfort (Selbstranreise)
- Zeit: 8:15 Uhr
## Nicht vergessen
- Judopass
- Judogi (d. h. Jacke, Hose und Gürtel)
- *Hallenschuhe*
- Essen/Trinken
- Warme Socken und Pullover
Das Betreten der Sportstätten in Straßenschuhen ist (auch den Fans)
nicht gestattet. Bitte Ersatzschuhe (Badelatschen/Hallenschuhe)
mitbringen. Sonst muss in Socken gegangen werden!
MsG marko

View File

@@ -0,0 +1,37 @@
# Wanderung
## Daten
- Datum:17.10.2020
- Abfahrt: 8:48 Uhr Haltestelle Dr. Salvador Allende Str. mit der 43
Richtung Tierpark
- Rückkehr: geplant ist wieder 15:00 Uhr zurück an der Haltestelle Dr.
Salvador Allende Str. zu sein
- Da diese Veranstaltung eine Prämiere für mich ist, weiß ich noch
nicht, ob diese Zeit eingehalten werden kann. Falls nicht, würde
ich Bescheid geben, deshalb bitte eine Telefonnummer mit angeben.
- meine Telefonnummer für Rückfragen: 01590 163 1103
## Infos für den Übungsleiter
Name des Kindes:
Kind darf mitwandern: ja/nein
Telefonnummer am Wandertag:
Unterschrift :
\pagebreak
## Benötigt werden
- wetterfeste Kleidung
- bequeme Wanderschuhe
- Verpflegung
- Wanderlaune
MsG marko

View File

@@ -0,0 +1,32 @@
# Offene Landeseinzelmeisterschaften U13/U15 2021
## Wettkampfdaten
- Altersklassen: U13, U15
- Datum:
- U13: 02.10.2021
- U15: 03.10.2021
- Ort: Sport- und Freizeitzentrum Demitz-Thumitz, Kiefernbuschweg 4, 01877 Demitz-Thumitz
- Erwärmung möglich ab: 9:00 Uhr
- Wettkampferöffnung: ca. 9:30 Uhr
## Treffpunkt
- Ort: P+R Parkplatz Südring/Stollberger Straße
- Abfahrt: 7:15 Nach Vereinbarung!Uhr
- Kindersitz (falls nötig) nicht vergessen!
## Nicht vergessen
- Judopass
- Judogi (d. h. Jacke, Hose und Gürtel)
- *Hallenschuhe* (Auch die Fans!)
- Essen/Trinken
- Warme Socken und Pullover
Das Betreten der Sportstätten in Straßenschuhen ist (auch den Fans)
nicht gestattet. Bitte Ersatzschuhe (Badelatschen/Hallenschuhe)
mitbringen. Sonst muss in Socken gegangen werden!
MsG marko

Some files were not shown because too many files have changed in this diff Show More