mirror of
https://github.com/Deutscher-Tischfussballbund/com_sportsmanager.git
synced 2026-06-10 06:27:52 +00:00
Merge pull request #60 from Deutscher-Tischfussballbund/birthdate_validation
Birthdate validation
This commit is contained in:
@@ -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
@@ -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
|
||||
|
||||
+18
-33
@@ -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 © 2006 – 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'); ?> – 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"
|
||||
|
||||
@@ -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,"
|
||||
|
||||
Reference in New Issue
Block a user