Merge pull request #60 from Deutscher-Tischfussballbund/birthdate_validation

Birthdate validation
This commit is contained in:
MarvinF
2025-04-21 18:05:07 +02:00
committed by GitHub
11 changed files with 1105 additions and 1259 deletions
+1
View File
@@ -16,6 +16,7 @@ services:
JOOMLA_ADMIN_EMAIL: joomla@example.com
volumes:
- './data/joomla_data:/var/www/html'
- './docker/php.ini:/usr/local/etc/php/php.ini'
networks:
- joomla_network
+71 -133
View File
@@ -9,15 +9,15 @@
; PHP attempts to find and load this configuration from a number of locations.
; The following is a summary of its search order:
; 1. SAPI module specific location.
; 2. The PHPRC environment variable. (As of PHP 5.2.0)
; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0)
; 2. The PHPRC environment variable.
; 3. A number of predefined registry keys on Windows
; 4. Current working directory (except CLI)
; 5. The web server's directory (for SAPI modules), or directory of PHP
; (otherwise in Windows)
; 6. The directory from the --with-config-file-path compile time option, or the
; Windows directory (usually C:\windows)
; See the PHP docs for more specific information.
; http://php.net/configuration.file
; https://php.net/configuration.file
; The syntax of the file is extremely simple. Whitespace and lines
; beginning with a semicolon are silently ignored (as you probably guessed).
@@ -31,7 +31,7 @@
; special sections cannot be overridden by user-defined INI files or
; at runtime. Currently, [PATH=] and [HOST=] sections only work under
; CGI/FastCGI.
; http://php.net/ini.sections
; https://php.net/ini.sections
; Directives are specified using the following syntax:
; directive = value
@@ -75,7 +75,7 @@
; php.ini-production contains settings which hold security, performance and
; best practices at its core. But please be aware, these settings may break
; compatibility with older or less security conscience applications. We
; compatibility with older or less security-conscious applications. We
; recommending using the production ini in production and testing environments.
; php.ini-development is very similar to its production variant, except it is
@@ -756,7 +756,7 @@ user_dir =
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
extension_dir = /opt/bitnami/php/lib/php/extensions
;extension_dir = /usr/local/lib/php/extensions
; On windows:
;extension_dir = "ext"
@@ -839,7 +839,7 @@ file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
upload_tmp_dir = /opt/bitnami/php/tmp
upload_tmp_dir = /tmp
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
@@ -1318,7 +1318,7 @@ session.save_handler = files
;
; The path can be defined as:
;
session.save_path = /opt/bitnami/php/var/run/session
session.save_path = /tmp/session
;
; where N is an integer. Instead of storing all the session files in
; /path, what this will do is use subdirectories N-levels deep, and
@@ -1334,12 +1334,10 @@ session.save_path = /opt/bitnami/php/var/run/session
; The file storage module creates files using mode 600 by default.
; You can change that by using
;
session.save_path = /opt/bitnami/php/var/run/session
;
; where MODE is the octal representation of the mode. Note that this
; does not overwrite the process's umask.
; http://php.net/session.save-path
session.save_path = /opt/bitnami/php/var/run/session
; Whether to use strict session mode.
; Strict session mode does not accept an uninitialized session ID, and
@@ -1539,18 +1537,18 @@ session.sid_bits_per_character = 5
; Default Value: "1%"
; Development Value: "1%"
; Production Value: "1%"
; http://php.net/session.upload-progress.freq
; https://php.net/session.upload-progress.freq
;session.upload_progress.freq = "1%"
; The minimum delay between updates, in seconds
; Default Value: 1
; Development Value: 1
; Production Value: 1
; http://php.net/session.upload-progress.min-freq
; https://php.net/session.upload-progress.min-freq
;session.upload_progress.min_freq = "1"
; Only write session data when session data is changed. Enabled by default.
; http://php.net/session.lazy-write
; https://php.net/session.lazy-write
;session.lazy_write = On
[Assertion]
@@ -1558,67 +1556,47 @@ session.sid_bits_per_character = 5
; -1: Do not compile at all
; 0: Jump over assertion at run-time
; 1: Execute assertions
; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1)
; Changing from or to a negative value is only possible in php.ini!
; (For turning assertions on and off at run-time, toggle zend.assertions between the values 1 and 0)
; Default Value: 1
; Development Value: 1
; Production Value: -1
; http://php.net/zend.assertions
; https://php.net/zend.assertions
zend.assertions = -1
; Assert(expr); active by default.
; http://php.net/assert.active
;assert.active = On
; Throw an AssertionError on failed assertions
; http://php.net/assert.exception
;assert.exception = On
; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active)
; http://php.net/assert.warning
;assert.warning = On
; Don't bail out by default.
; http://php.net/assert.bail
;assert.bail = Off
; User-function to be called if an assertion fails.
; http://php.net/assert.callback
;assert.callback = 0
; Eval the expression with current error_reporting(). Set to true if you want
; error_reporting(0) around the eval().
; http://php.net/assert.quiet-eval
;assert.quiet_eval = 0
[COM]
; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs
; http://php.net/com.typelib-file
; https://php.net/com.typelib-file
;com.typelib_file =
; allow Distributed-COM calls
; http://php.net/com.allow-dcom
; https://php.net/com.allow-dcom
;com.allow_dcom = true
; autoregister constants of a component's typlib on com_load()
; http://php.net/com.autoregister-typelib
; autoregister constants of a component's typelib on com_load()
; https://php.net/com.autoregister-typelib
;com.autoregister_typelib = true
; register constants casesensitive
; http://php.net/com.autoregister-casesensitive
; https://php.net/com.autoregister-casesensitive
;com.autoregister_casesensitive = false
; show warnings on duplicate constant registrations
; http://php.net/com.autoregister-verbose
; https://php.net/com.autoregister-verbose
;com.autoregister_verbose = true
; The default character set code-page to use when passing strings to and from COM objects.
; Default: system ANSI code page
;com.code_page=
; The version of the .NET framework to use. The value of the setting are the first three parts
; of the framework's version number, separated by dots, and prefixed with "v", e.g. "v4.0.30319".
;com.dotnet_version=
[mbstring]
; language for internal character representation.
; This affects mb_send_mail() and mbstring.detect_order.
; http://php.net/mbstring.language
; https://php.net/mbstring.language
;mbstring.language = Japanese
; Use of this INI entry is deprecated, use global internal_encoding instead.
@@ -1633,7 +1611,7 @@ zend.assertions = -1
; mbstring.encoding_translation = On is needed to use this setting.
; If empty, default_charset or input_encoding or mbstring.input is used.
; The precedence is: default_charset < input_encoding < mbstring.http_input
; http://php.net/mbstring.http-input
; https://php.net/mbstring.http-input
;mbstring.http_input =
; Use of this INI entry is deprecated, use global output_encoding instead.
@@ -1643,7 +1621,7 @@ zend.assertions = -1
; The precedence is: default_charset < output_encoding < mbstring.http_output
; To use an output encoding conversion, mbstring's output handler must be set
; otherwise output encoding conversion cannot be performed.
; http://php.net/mbstring.http-output
; https://php.net/mbstring.http-output
;mbstring.http_output =
; enable automatic encoding translation according to
@@ -1651,54 +1629,40 @@ zend.assertions = -1
; converted to internal encoding by setting this to On.
; Note: Do _not_ use automatic encoding translation for
; portable libs/applications.
; http://php.net/mbstring.encoding-translation
; https://php.net/mbstring.encoding-translation
;mbstring.encoding_translation = Off
; automatic encoding detection order.
; "auto" detect order is changed according to mbstring.language
; http://php.net/mbstring.detect-order
; https://php.net/mbstring.detect-order
;mbstring.detect_order = auto
; substitute_character used when character cannot be converted
; one from another
; http://php.net/mbstring.substitute-character
; https://php.net/mbstring.substitute-character
;mbstring.substitute_character = none
; overload(replace) single byte functions by mbstring functions.
; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
; etc. Possible values are 0,1,2,4 or combination of them.
; For example, 7 for overload everything.
; 0: No overload
; 1: Overload mail() function
; 2: Overload str*() functions
; 4: Overload ereg*() functions
; http://php.net/mbstring.func-overload
;mbstring.func_overload = 0
; enable strict encoding detection.
; Default: Off
;mbstring.strict_detection = On
; Enable strict encoding detection.
;mbstring.strict_detection = Off
; This directive specifies the regex pattern of content types for which mb_output_handler()
; is activated.
; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml)
;mbstring.http_output_conv_mimetype=
; Default: mbstring.http_output_conv_mimetypes=^(text/|application/xhtml\+xml)
;mbstring.http_output_conv_mimetypes=
; This directive specifies maximum stack depth for mbstring regular expressions. It is similar
; to the pcre.recursion_limit for PCRE.
; Default: 100000
;mbstring.regex_stack_limit=100000
; This directive specifies maximum retry count for mbstring regular expressions. It is similar
; to the pcre.backtrack_limit for PCRE.
; Default: 1000000
;mbstring.regex_retry_limit=1000000
[gd]
; Tell the jpeg decode to ignore warnings and try to create
; a gd image. The warning will then be displayed as notices
; disabled by default
; http://php.net/gd.jpeg-ignore-warning
; https://php.net/gd.jpeg-ignore-warning
;gd.jpeg_ignore_warning = 1
[exif]
@@ -1706,48 +1670,48 @@ zend.assertions = -1
; With mbstring support this will automatically be converted into the encoding
; given by corresponding encode setting. When empty mbstring.internal_encoding
; is used. For the decode settings you can distinguish between motorola and
; intel byte order. A decode setting cannot be empty.
; http://php.net/exif.encode-unicode
; intel byte order. A decode setting must not be empty.
; https://php.net/exif.encode-unicode
;exif.encode_unicode = ISO-8859-15
; http://php.net/exif.decode-unicode-motorola
; https://php.net/exif.decode-unicode-motorola
;exif.decode_unicode_motorola = UCS-2BE
; http://php.net/exif.decode-unicode-intel
; https://php.net/exif.decode-unicode-intel
;exif.decode_unicode_intel = UCS-2LE
; http://php.net/exif.encode-jis
; https://php.net/exif.encode-jis
;exif.encode_jis =
; http://php.net/exif.decode-jis-motorola
; https://php.net/exif.decode-jis-motorola
;exif.decode_jis_motorola = JIS
; http://php.net/exif.decode-jis-intel
; https://php.net/exif.decode-jis-intel
;exif.decode_jis_intel = JIS
[Tidy]
; The path to a default tidy configuration file to use when using tidy
; http://php.net/tidy.default-config
; https://php.net/tidy.default-config
;tidy.default_config = /usr/local/lib/php/default.tcfg
; Should tidy clean and repair output automatically?
; WARNING: Do not use this option if you are generating non-html content
; such as dynamic images
; http://php.net/tidy.clean-output
; https://php.net/tidy.clean-output
tidy.clean_output = Off
[soap]
; Enables or disables WSDL caching feature.
; http://php.net/soap.wsdl-cache-enabled
; https://php.net/soap.wsdl-cache-enabled
soap.wsdl_cache_enabled=1
; Sets the directory name where SOAP extension will put cache files.
; http://php.net/soap.wsdl-cache-dir
; https://php.net/soap.wsdl-cache-dir
soap.wsdl_cache_dir="/tmp"
; (time to live) Sets the number of second while cached file will be used
; instead of original one.
; http://php.net/soap.wsdl-cache-ttl
; https://php.net/soap.wsdl-cache-ttl
soap.wsdl_cache_ttl=86400
; Sets the size of the cache limit. (Max. number of WSDL files to cache)
@@ -1806,6 +1770,11 @@ opcache.revalidate_freq = 60
; size of the optimized code.
;opcache.save_comments=1
; If enabled, compilation warnings (including notices and deprecations) will
; be recorded and replayed each time a file is included. Otherwise, compilation
; warnings will only be emitted when the file is first cached.
;opcache.record_warnings=0
; Allow file existence override (file_exists, etc.) performance feature.
;opcache.enable_file_override=0
@@ -1827,10 +1796,6 @@ opcache.revalidate_freq = 60
; are cached.
;opcache.max_file_size=0
; Check the cache checksum each N requests.
; The default value of "0" means that the checks are disabled.
;opcache.consistency_checks=0
; How long to wait (in seconds) for a scheduled restart to begin if the cache
; is not being accessed.
;opcache.force_restart_timeout=180
@@ -1868,7 +1833,16 @@ opcache.revalidate_freq = 60
; Enables and sets the second level cache directory.
; It should improve performance when SHM memory is full, at server restart or
; SHM reset. The default "" disables file based caching.
opcache.file_cache = /opt/bitnami/php/var/run/opcache_file
opcache.file_cache = /tmp/opcache_file
; Enables or disables read-only mode for the second level cache directory.
; It should improve performance for read-only containers,
; when the cache is pre-warmed and packaged alongside the application.
; Best used with `opcache.validate_timestamps=0`, `opcache.enable_file_override=1`
; and `opcache.file_cache_consistency_checks=0`.
; Note: A cache generated with a different build of PHP, a different file path,
; or different settings (including which extensions are loaded), may be ignored.
;opcache.file_cache_read_only=0
; Enables or disables opcode caching in shared memory.
;opcache.file_cache_only=0
@@ -1882,8 +1856,13 @@ opcache.file_cache = /opt/bitnami/php/var/run/opcache_file
;opcache.file_cache_fallback=1
; Enables or disables copying of PHP code (text segment) into HUGE PAGES.
; This should improve performance, but requires appropriate OS configuration.
;opcache.huge_code_pages=1
; Under certain circumstances (if only a single global PHP process is
; started from which all others fork), this can increase performance
; by a tiny amount because TLB misses are reduced. On the other hand, this
; delays PHP startup, increases memory usage and degrades performance
; under memory pressure - use with care.
; Requires appropriate OS configuration.
;opcache.huge_code_pages=0
; Validate cached file permissions.
;opcache.validate_permission=0
@@ -1897,12 +1876,12 @@ opcache.file_cache = /opt/bitnami/php/var/run/opcache_file
; Specifies a PHP script that is going to be compiled and executed at server
; start-up.
; http://php.net/opcache.preload
; https://php.net/opcache.preload
;opcache.preload=
; Preloading code as root is not allowed for security reasons. This directive
; facilitates to let the preloading to be run as another user.
; http://php.net/opcache.preload_user
; https://php.net/opcache.preload_user
;opcache.preload_user=
; Prevents caching files that are less than this number of seconds old. It
@@ -1945,44 +1924,3 @@ opcache.file_cache = /opt/bitnami/php/var/run/opcache_file
; List of headers files to preload, wildcard patterns allowed.
;ffi.preload=
zend_extension = opcache
opcache.fast_shutdown = 1
;extension = pdo_dblib
;extension = apcu
;extension = mcrypt
;extension = imagick
;extension = memcached
;extension = maxminddb
;extension = mongodb
;[XDebug]
zend_extension = xdebug
xdebug.mode = debug
;xdebug.client_host = 127.0.0.1
;xdebug.client_port = 9000
;xdebug.output_dir = /tmp
;xdebug.remote_handler = dbgp
;xdebug.remote_port=9000
;xdebug.remote_host=10.254.254.254
;xdebug.remote_autostart=1
;xdebug.remote_enable=1
;xdebug.default_enable=0
;xdebug.remote_host=host.docker.internal
;xdebug.remote_port=9000
;xdebug.remote_connect_back=0
;xdebug.profiler_enable=0
;xdebug.remote_log="/tmp/xdebug.log"
xdebug.mode=debug
xdebug.client_port=9000
xdebug.client_host=host.docker.internal
xdebug.remote_handler=dbgp
;xdebug.remote_host=host.docker.internal
;xdebug.remote_port=9000
xdebug.start_with_request=yes
xdebug.discover_client_host=0
xdebug.idekey=PHPSTORM
xdebug.show_error_trace = 1
xdebug.max_nesting_level=250
xdebug.var_display_max_depth=10
;xdebug.log=/tmp/xdebug.log
@@ -2,48 +2,33 @@
/*
* Sports Manager (C) 2006-2020, Sven Nickel
*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
// import Joomla view library
jimport('joomla.application.component.view');
/**
* SportsManager View
*/
class SportsManagerViewSportsManager extends JViewLegacy
{
/**
* SportsManager view display method
* @return void
*/
function display($tpl = null)
{
JToolbarHelper::title(JText::_('COM_SPORTSMANAGER'));
?>
<h2><?php echo JText::_('COM_SPORTSMANAGER'); ?> Copyright &copy; 2006 &#8211; 2014 Sven Nickel</h2>
<?php
/*
// Get data from the model
$items = $this->get('Items');
$pagination = $this->get('Pagination');
// Check for errors.
if (count($errors = $this->get('Errors')))
{
JError::raiseError(500, implode('<br />', $errors));
return false;
}
// Assign data to the view
$this->items = $items;
$this->pagination = $pagination;
*/
// Display the template
parent::display($tpl);
}
/**
* SportsManager view display method
* @return void
*/
function display($tpl = null)
{
JToolbarHelper::title(JText::_('COM_SPORTSMANAGER'));
?>
<h3><?php echo JText::_('COM_SPORTSMANAGER'); ?> &#8211; Created by Sven Nickel | Maintained by DTFB</h3>
<?php
// Display the template
parent::display($tpl);
}
}
File diff suppressed because it is too large Load Diff
@@ -5172,7 +5172,6 @@ function updateDatabase()
}
}
if ($datenbank_version < 102) {
$query = "ALTER TABLE #__sportsmanager_rangliste ADD lizenzen varchar(30) DEFAULT NULL AFTER streichergebnisse";
$db->setQuery($query);
@@ -5195,6 +5194,22 @@ function updateDatabase()
}
}
if ($datenbank_version < 103) {
$query = "ALTER TABLE #__sportsmanager_spieler DROP geburtsdatum";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "UPDATE #__sportsmanager_einstellungen"
. "\n SET wert = '103'"
. "\n WHERE name = 'datenbank_version'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
if ($termin_aktionen_email_setzen) {
$query = "SELECT aktion_user_id, termin_aktion_id"
. "\n FROM #__sportsmanager_termin_aktion";
@@ -5,7 +5,7 @@
// kein direkter Zugriff
defined('_JEXEC') or die('Restricted access');
define("SPORTS_MANAGER_VERSION", "2.0.0");
const SPORTS_MANAGER_VERSION = "2.0.0";
//ini_set('display_errors', '1');
@@ -28,25 +28,24 @@ function laufzeitAusgeben($zwischenstand = NULL) {
$laufzeit_delta_zwischenstand = $laufzeit_aktuell - $laufzeit_zwischenstand;
$laufzeit_delta_zwischenstand = $laufzeit_aktuell - (empty($zwischenstand) ? $laufzeit_beginn : $laufzeit_zwischenstand);
$laufzeit_zwischenstand = $laufzeit_aktuell;
echo("" . (!empty($zwischenstand) ? htmlentities_utf8($zwischenstand) : "Seitenaufbau in") . ": " . sprintf('%f', $laufzeit_delta) . " Sekunden" . (empty($zwischenstand) ? "" : (sprintf(' (+%f)', $laufzeit_delta_zwischenstand))) . ".<br />");
echo(!empty($zwischenstand) ? htmlentities_utf8($zwischenstand) : "Seitenaufbau in" . ": " . sprintf('%f', $laufzeit_delta) . " Sekunden" . (empty($zwischenstand) ? "" : (sprintf(' (+%f)', $laufzeit_delta_zwischenstand))) . ".<br />");
}
laufzeitInit();
require_once (JPATH_COMPONENT . DIRECTORY_SEPARATOR . 'tools.php');
require_once (JPATH_ROOT . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_sportsmanager' . DIRECTORY_SEPARATOR . 'tools.php');
setMinMemoryLimit('64M');
require_once (JPATH_COMPONENT . DIRECTORY_SEPARATOR . 'api.php');
require_once (JPATH_COMPONENT . DIRECTORY_SEPARATOR . 'admin.php');
require_once (JPATH_COMPONENT . DIRECTORY_SEPARATOR . 'controller.php');
require_once (JPATH_COMPONENT . DIRECTORY_SEPARATOR . 'database.php');
require_once (JPATH_COMPONENT . DIRECTORY_SEPARATOR . 'mathparser.php');
require_once (JPATH_COMPONENT . DIRECTORY_SEPARATOR . 'views/sportsmanager/view.html.php');
require_once (JPATH_COMPONENT . DIRECTORY_SEPARATOR . 'views/sportsmanager/view.json.php');
require_once (JPATH_COMPONENT . DIRECTORY_SEPARATOR . 'views/sportsmanager/view_admin.php');
require_once (JPATH_COMPONENT . DIRECTORY_SEPARATOR . 'views/sportsmanager/view_ticker.php');
require_once (JPATH_ROOT . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_sportsmanager' . DIRECTORY_SEPARATOR . 'api.php');
require_once (JPATH_ROOT . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_sportsmanager' . DIRECTORY_SEPARATOR . 'admin.php');
require_once (JPATH_ROOT . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_sportsmanager' . DIRECTORY_SEPARATOR . 'controller.php');
require_once (JPATH_ROOT . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_sportsmanager' . DIRECTORY_SEPARATOR . 'database.php');
require_once (JPATH_ROOT . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_sportsmanager' . DIRECTORY_SEPARATOR . 'mathparser.php');
require_once (JPATH_ROOT . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_sportsmanager' . DIRECTORY_SEPARATOR . 'views/sportsmanager/view.html.php');
require_once (JPATH_ROOT . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_sportsmanager' . DIRECTORY_SEPARATOR . 'views/sportsmanager/view.json.php');
require_once (JPATH_ROOT . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_sportsmanager' . DIRECTORY_SEPARATOR . 'views/sportsmanager/view_admin.php');
require_once (JPATH_ROOT . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_sportsmanager' . DIRECTORY_SEPARATOR . 'views/sportsmanager/view_ticker.php');
jimport('joomla.filesystem.file');
@@ -79,7 +78,7 @@ if ($task == "spielerbild") {
terminDokument();
} else if ($task == "spieler_details") {
spielerDetails();
} else if (substr($task, 0, 6) == "admin_") {
} else if (str_starts_with($task, "admin_")) {
switch ($task) {
case 'admin_einstellungen':
adminEinstellungen();
@@ -1067,7 +1066,6 @@ function redirectSportsManagerURL($weitereParameter = NULL, $nachricht = '') {
}
$app->redirect(SportsManagerURL($weitereParameter), 200);
exit;
return;
}
function redirectCurrentURL() {
@@ -1109,7 +1107,7 @@ function berechnungen() {
. "\n WHERE " . (empty($session_id) ? ("session_id < SUBTIME(NOW(), '00:10:00')") : ("session_id = '" . $session_id . "'"))
. "\n ), 1, 0)";
$db->setQuery($query);
if (!$result = $db->execute()) {
if (!$db->execute()) {
die($db->stderr(true));
}
$berechnungen = $db->loadResult();
@@ -1155,7 +1153,7 @@ function benutzerModerator() {
. "\n FROM #__sportsmanager_moderator"
. "\n WHERE moderator_user_id = $user_id";
$db->setQuery($query);
if (!$result = $db->execute()) {
if (!$db->execute()) {
die($db->stderr(true));
}
$gefunden = $db->loadResult();
@@ -4040,62 +4038,6 @@ function teamSpielplanXML() {
die();
}
function bildKopierenAngepasst($quelle, $ziel, $ziel_breite, $ziel_hoehe, $zuschneiden) {
$len = strlen($ziel);
if ($len < 4 || $ziel[$len - 4] != ".")
return false;
$ext = strtolower(substr($ziel, $len - 3));
if ($ext != "jpg" && $ext != "png")
return false;
$quelle_image = $ext == "png" ? imagecreatefrompng($quelle) : imagecreatefromjpeg($quelle);
if ($quelle_image === false)
return false;
$quelle_breite = imagesx($quelle_image);
$quelle_hoehe = imagesy($quelle_image);
if ($quelle_breite == $ziel_breite && $quelle_hoehe == $ziel_hoehe)
return JFile::copy($quelle, $ziel);
$ziel_image = imagecreatetruecolor($ziel_breite, $ziel_hoehe);
$hintergrund = $ext == "png" ? imagecolorallocatealpha($ziel_image, 0, 0, 0, 127) : imagecolorallocate($ziel_image, 64, 64, 64);
imagefill($ziel_image, 0, 0, $hintergrund);
$quelle_proportionen = $quelle_breite / $quelle_hoehe;
$ziel_proportionen = $ziel_breite / $ziel_hoehe;
if ($zuschneiden) {
if ($ziel_proportionen >= $quelle_proportionen) {
$quelle_teilhoehe = round($quelle_breite / $ziel_proportionen);
if (!imagecopyresampled($ziel_image, $quelle_image, 0, 0, 0, round(($quelle_hoehe - $quelle_teilhoehe) / 2), $ziel_breite, $ziel_hoehe, $quelle_breite, $quelle_teilhoehe))
return false;
} else {
$quelle_teilbreite = round($quelle_hoehe * $ziel_proportionen);
if (!imagecopyresampled($ziel_image, $quelle_image, 0, 0, round(($quelle_breite - $quelle_teilbreite) / 2), 0, $ziel_breite, $ziel_hoehe, $quelle_teilbreite, $quelle_hoehe))
return false;
}
} else {
if ($ziel_proportionen >= $quelle_proportionen) {
$ziel_teilbreite = round($ziel_hoehe * $quelle_proportionen);
if (!imagecopyresampled($ziel_image, $quelle_image, round(($ziel_breite - $ziel_teilbreite) / 2), 0, 0, 0, $ziel_teilbreite, $ziel_hoehe, $quelle_breite, $quelle_hoehe))
return false;
} else {
$ziel_teilhoehe = round($ziel_breite / $quelle_proportionen);
if (!imagecopyresampled($ziel_image, $quelle_image, 0, round(($ziel_hoehe - $ziel_teilhoehe) / 2), 0, 0, $ziel_breite, $ziel_teilhoehe, $quelle_breite, $quelle_hoehe))
return false;
}
}
ob_start();
if ($ext == "png") {
imagesavealpha($ziel_image, true);
if (!imagepng($ziel_image))
return false;
} else {
if (!imagejpeg($ziel_image))
return false;
}
$output = ob_get_contents();
ob_end_clean();
JFile::write($ziel, $output);
return true;
}
function bildAnpassen($typ, $id = 0) {
global $sportsmanager_joomla_path;
$jinput = JFactory::getApplication()->input;
@@ -2654,9 +2654,9 @@ global $params;
echo "<br /><small>" . htmlentities_utf8($row->spielernr) . "</small>";
echo "</td></tr>";
if ($team_moderator) {
if (!empty($row->geburtsdatum)) {
if (!empty($row->geburtsjahr)) {
echo "<tr><td align=\"center\">";
echo "<small>" . htmlentities_utf8(FormatiertesDatum($row->geburtsdatum, false)) . "</small>";
echo "<small>" . htmlentities_utf8($row->geburtsjahr) . "</small>";
echo "</td></tr>";
}
if (!empty($row->strasse) ||
@@ -3603,9 +3603,9 @@ global $params;
echo "<br /><small>" . htmlentities_utf8($row->spielernr) . "</small>";
echo "</td></tr>";
if ($vereins_moderator) {
if (!empty($row->geburtsdatum)) {
if (!empty($row->geburtsjahr)) {
echo "<tr><td align=\"center\">";
echo "<small>" . htmlentities_utf8(FormatiertesDatum($row->geburtsdatum, false)) . "</small>";
echo "<small>" . htmlentities_utf8($row->geburtsjahr) . "</small>";
echo "</td></tr>";
}
if (!empty($row->strasse) ||
@@ -6,7 +6,7 @@
// kein direkter Zugriff
defined('_JEXEC') or die('Restricted access');
require_once(JPATH_COMPONENT . DIRECTORY_SEPARATOR . 'views/sportsmanager/view_tools.php');
require_once(JPATH_ROOT . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_sportsmanager' . DIRECTORY_SEPARATOR . 'views/sportsmanager/view_tools.php');
class HTML_sportsmanager_admin
{
@@ -1186,7 +1186,7 @@ class HTML_sportsmanager_admin
}
}
static function adminEditSpieler($row, $naechste_spielernr, $filter, $vereine, $vereinsmitgliedschaften, $beschraenkter_zugriff, $ansprechpartner_spielerdaten)
static function adminEditSpieler($row, $naechste_spielernr, $filter, $vereine, $vereinsmitgliedschaften, $beschraenkter_zugriff, $ansprechpartner_spielerdaten)
{
global $params;
?>
@@ -1194,21 +1194,21 @@ class HTML_sportsmanager_admin
: <?php echo($row != null ? JText::_('COM_SPORTSMANAGER_CHANGING') : JText::_('COM_SPORTSMANAGER_ADD')); ?></div>
<form action="<?php echo SportsManagerURL($row != null ? ('#id' . $row->spieler_id) : ''); ?>" method="post"
name="adminForm" id="adminForm" enctype="multipart/form-data">
name="adminForm" id="adminForm" enctype="multipart/form-data" onsubmit="return validate()">
<div class="uk-overflow-auto"><table class="uk-table" width="100%">
<tr>
<td nowrap width="60%" valign="top">
<div class="uk-overflow-auto"><table class="uk-table" width="100%">
<tr>
<td nowrap width="20%" align="right">
<?php echo JText::_('COM_SPORTSMANAGER_LAST_NAME') ?>:
<?php echo JText::_('COM_SPORTSMANAGER_LAST_NAME') ?>*:
</td>
<td nowrap>
<?php
if (!$beschraenkter_zugriff)
{
?>
<input class="inputbox" type="text" name="nachname" size="50" maxlength="30"
<input class="inputbox" type="text" name="nachname" size="50" maxlength="30" required
value="<?php if ($row != null) if ($row->nachname != null) echo htmlentities_utf8($row->nachname); ?>"/>
<?php
}
@@ -1220,14 +1220,14 @@ class HTML_sportsmanager_admin
</tr>
<tr>
<td nowrap width="20%" align="right">
<?php echo JText::_('COM_SPORTSMANAGER_FIRST_NAME') ?>:
<?php echo JText::_('COM_SPORTSMANAGER_FIRST_NAME') ?>*:
</td>
<td nowrap>
<?php
if (!$beschraenkter_zugriff)
{
?>
<input class="inputbox" type="text" name="vorname" size="50" maxlength="30"
<input class="inputbox" type="text" name="vorname" size="50" maxlength="30" required
value="<?php if ($row != null) echo htmlentities_utf8($row->vorname); ?>"/>
<?php
}
@@ -1277,57 +1277,33 @@ class HTML_sportsmanager_admin
</td>
</tr>
<tr>
<td nowrap width="20%" align="right">
<?php echo JText::_('COM_SPORTSMANAGER_BIRTHDATE') ?>:
<td nowrap width="20%" align="right" id="birthDateLabel">
<?php echo JText::_('COM_SPORTSMANAGER_BIRTHYEAR') . '*' ?>:
</td>
<td nowrap>
<?php
if (!$beschraenkter_zugriff)
{
?>
<select class="uk-select uk-form-width-medium" name="datum_tag" size="1">
<select id="birthYear" class="uk-select uk-form-width-medium" name="datum_jahr" size="1" required>
<?php
$datum = "0000-00-00";
if ($row != null)
{
if ($row->geburtsdatum != null)
$datum = $row->geburtsdatum;
else if ($row->geburtsjahr != null)
$datum = sprintf("%04d-00-00", $row->geburtsjahr);
}
$datum_tag = substr($datum, 8, 2);
echo "<option value=\"0\"></option>";
for ($i = 1; $i <= 31; $i++)
{
echo "<option value=\"" . $i . "\" " . ($datum_tag == $i ? "selected" : "") . ">" . $i . "</option>";
}
?>
</select>
<select class="uk-select uk-form-width-medium" name="datum_monat" size="1">
<?php
$datum_monat = substr($datum, 5, 2);
echo "<option value=\"0\"></option>";
$monate = array(JText::_('COM_SPORTSMANAGER_JANUARY'), JText::_('COM_SPORTSMANAGER_FEBRUARY'), JText::_('COM_SPORTSMANAGER_MARCH'), JText::_('COM_SPORTSMANAGER_APRIL'), JText::_('COM_SPORTSMANAGER_MAY'), JText::_('COM_SPORTSMANAGER_JUNE'), JText::_('COM_SPORTSMANAGER_JULY'), JText::_('COM_SPORTSMANAGER_AUGUST'), JText::_('COM_SPORTSMANAGER_SEPTEMBER'), JText::_('COM_SPORTSMANAGER_OCTOBER'), JText::_('COM_SPORTSMANAGER_NOVEMBER'), JText::_('COM_SPORTSMANAGER_DECEMBER'));
for ($i = 1; $i <= 12; $i++)
{
echo "<option value=\"" . $i . "\" " . ($datum_monat == $i ? "selected" : "") . ">" . htmlentities_utf8($monate[$i - 1]) . "</option>";
}
?>
</select>
<select class="uk-select uk-form-width-medium" name="datum_jahr" size="1">
<?php
$datum_jahr = substr($datum, 0, 4);
echo "<option value=\"0\"></option>";
$date_year = '0000';
if ($row != null)
{
if ($row->geburtsjahr != null)
$date_year = sprintf("%04d", $row->geburtsjahr);
}
echo "<option selected disabled value=''></option>";
for ($i = Date("Y"); $i >= 1930; $i--)
{
echo "<option value=\"" . $i . "\" " . ($datum_jahr == $i ? "selected" : "") . ">" . $i . "</option>";
echo "<option value=\"" . $i . "\" " . ($date_year == $i ? "selected" : "") . ">" . $i . "</option>";
}
?>
</select>
<?php
}
else if ($row != null && $row->geburtsdatum != null)
echo htmlentities_utf8(FormatiertesDatum($row->geburtsdatum, false, true));
else if ($row != null && $row->geburtsjahr != null)
echo htmlentities_utf8(sprintf("%04d", $row->geburtsjahr));
?>
</td>
</tr>
@@ -366,7 +366,7 @@ COM_SPORTSMANAGER_BIRTHYEAR="Geburtsjahr"
COM_SPORTSMANAGER_NAT="Nat. #"
COM_SPORTSMANAGER_INT="Intern. #"
COM_SPORTSMANAGER_REMOVE_MESSAGE="Willst du den Spieler wirklich entfernen?"
COM_SPORTSMANAGER_BIRTHDATE="Geburtstag"
COM_SPORTSMANAGER_BIRTHDATE = "Geburtstag"
COM_SPORTSMANAGER_PLACE_SHORTCUT="PLZ / Ort"
COM_SPORTSMANAGER_PHONE="Telefon"
COM_SPORTSMANAGER_MOBILE="Mobil"
@@ -362,7 +362,7 @@ COM_SPORTSMANAGER_IDENTICAL_NAME="Identical name"
COM_SPORTSMANAGER_IDENTICAL_NAME_BIRTHYEAR="Identical name and birth year"
COM_SPORTSMANAGER_NO_PLAYERS="No player number"
COM_SPORTSMANAGER_LAST_FIRST_NAME="Last name, first name"
COM_SPORTSMANAGER_BIRTHYEAR="birthyear"
COM_SPORTSMANAGER_BIRTHYEAR="Birthyear"
COM_SPORTSMANAGER_NAT="Nat. #"
COM_SPORTSMANAGER_INT="Intern. #"
COM_SPORTSMANAGER_REMOVE_MESSAGE="Do you really want to remove the player?"
@@ -921,3 +921,4 @@ COM_SPORTSMANAGER_NON_SMOKING_PROTECTION_MARK_NO=" (Kein Nichtraucherschutz)"
COM_SPORTSMANAGER_POINTS_TABLE="Points table"
COM_SPORTSMANAGER_EVALUATION="Auswertung"
COM_SPORTSMANAGER_FUNCTION_DESCRIPTION="Variables: n = number of participants, p = place, m = multiplier of rating and in doubles possibly additionally reduced rating<br />Functions: +, -, *, /, round(x), pow(x), if(a > b, x, y), min(x, y), max(x, y), log(x), ln(x), logn(b, x)<br />VerteilungR(r, p, n, m) := max(round((((m * r - 1) * (-log(p / n) * (1 - (p / n)))) / (-log(1 / n) * (1 - (1 / n)))) + 1), 1)<br />Verteilung(r, p, n, m) := max(round(m * round((((r - 1) * (-log(p / n) * (1 - (p / n)))) / (-log(1 / n) * (1 - (1 / n)))) + 1)), 1)<br /><br />The functions VerteilungR() and Verteilung() distribute points for place 1 (r) descending to the individual places (p) of the number of participants (n).<br />VerteilungR() applies the multiplier (m) to the points for 1st place and then distributes down to 1 point for the last place.<br />Verteilung() applies the multiplier (m) to the points after the calculation, i.e. the last place receives 1 * m points."
COM_SPORTSMANAGER_LIZENZ="License"
-1
View File
@@ -575,7 +575,6 @@ class com_sportsmanagerInstallerScript
. "\n `nachname` varchar(30) DEFAULT NULL,"
. "\n `vorname` varchar(30) NOT NULL DEFAULT '',"
. "\n `geschlecht` char(1) DEFAULT NULL,"
. "\n `geburtsdatum` date DEFAULT NULL,"
. "\n `geburtsjahr` smallint(5) unsigned DEFAULT NULL,"
. "\n `strasse` varchar(30) DEFAULT NULL,"
. "\n `plz` varchar(6) DEFAULT NULL,"