* text=auto !eol
-stelzi/Doxyfile -text
-stelzi/application/.htaccess -text
-stelzi/application/admin/.htaccess -text
-stelzi/application/admin/admin/.htaccess -text
-stelzi/application/admin/class_ApplicationHelper.php -text svneol=unset#text/plain
-stelzi/application/admin/config.php -text svneol=unset#text/plain
-stelzi/application/admin/data.php -text svneol=unset#text/plain
-stelzi/application/admin/debug.php -text svneol=unset#text/plain
-stelzi/application/admin/exceptions.php -text svneol=unset#text/plain
-stelzi/application/admin/exceptions/.htaccess -text
-stelzi/application/admin/init.php -text svneol=unset#text/plain
-stelzi/application/admin/interfaces/.htaccess -text
-stelzi/application/admin/loader.php -text svneol=unset#text/plain
-stelzi/application/admin/main/.htaccess -text
-stelzi/application/admin/main/actions/.htaccess -text
-stelzi/application/admin/main/actions/web/.htaccess -text
-stelzi/application/admin/main/actions/web/class_WebAdminLoginWelcomeAction.php -text svneol=unset#text/plain
-stelzi/application/admin/main/class_ -text svneol=unset#text/plain
-stelzi/application/admin/main/commands/.htaccess -text
-stelzi/application/admin/main/commands/web/.htaccess -text
-stelzi/application/admin/main/commands/web/class_WebAdminUserLoginCommand.php -text svneol=unset#text/plain
-stelzi/application/admin/main/login/.htaccess -text
-stelzi/application/admin/main/login/class_AdminUserLogin.php -text svneol=unset#text/plain
-stelzi/application/admin/main/login/helper/.htaccess -text
-stelzi/application/admin/main/login/helper/class_AdminLoginHelper.php -text svneol=unset#text/plain
-stelzi/application/admin/starter.php -text svneol=unset#text/plain
-stelzi/application/admin/templates/.htaccess -text
-stelzi/application/admin/templates/de/.htaccess -text
-stelzi/application/admin/templates/de/code/action_admin_login_logout.ctp -text
-stelzi/application/admin/templates/de/code/action_admin_login_profile.ctp -text
-stelzi/application/admin/templates/de/code/action_admin_login_status_problem.ctp -text
-stelzi/application/admin/templates/de/code/action_admin_login_welcome.ctp -text
-stelzi/application/admin/templates/de/code/action_admin_status_problem.ctp -text
-stelzi/application/admin/templates/de/code/admin_main.ctp -text
-stelzi/application/admin/templates/de/code/block_persona_data.ctp -text
-stelzi/application/admin/templates/de/code/captch_graphic_code.ctp -text
-stelzi/application/admin/templates/de/code/footer.ctp -text
-stelzi/application/admin/templates/de/code/header.ctp -text
-stelzi/application/admin/templates/de/code/home.ctp -text
-stelzi/application/admin/templates/de/code/login_failed.ctp -text
-stelzi/application/admin/templates/de/code/login_form.ctp -text
-stelzi/application/admin/templates/de/code/login_main.ctp -text
-stelzi/application/admin/templates/de/code/logout_done.ctp -text
-stelzi/application/admin/templates/de/code/mail_debug.ctp -text
-stelzi/application/admin/templates/de/code/register_form.ctp -text
-stelzi/application/admin/templates/de/emails/.htaccess -text
-stelzi/application/admin/templates/de/emails/text_resend_link.tpl -text svneol=unset#text/plain
-stelzi/application/admin/templates/de/html/.htaccess -text
-stelzi/application/admin/templates/de/html/nav_advert.tpl -text svneol=unset#text/plain
-stelzi/application/admin/templates/de/html/selector_admin.tpl -text svneol=unset#text/plain
-stelzi/application/admin/templates/images/.htaccess -text
-stelzi/application/admin/templates/images/_cache/.htaccess -text
-stelzi/application/admin/templates/images/de/.htaccess -text
-stelzi/application/admin/templates/images/de/image/.htaccess -text
-stelzi/application/admin/templates/images/de/image/base_code.itp -text
-stelzi/application/admin/templates/images/de/image/code_captcha.itp -text
-stelzi/clear-cache.sh -text
-stelzi/db/.htaccess -text
-stelzi/db/company/.htaccess -text
-stelzi/db/company_user/.htaccess -text
-stelzi/db/gov_user/.htaccess -text
-stelzi/db/news/.htaccess -text
-stelzi/db/payments/.htaccess -text
-stelzi/db/user/.htaccess -text
-stelzi/db/user_points/.htaccess -text
-stelzi/docs/COPYING -text
-stelzi/docs/COPYING.documents -text
-stelzi/docs/COPYING.software -text
-stelzi/docs/NEWS -text
-stelzi/docs/README -text
-stelzi/docs/THANKS -text
-stelzi/docs/TODO -text
-stelzi/index.php -text svneol=unset#text/plain
-stelzi/package.sh -text
-stelzi/pdepend.sh -text
-stelzi/rebuild_doc.sh -text
+++ /dev/null
-# Doxyfile 1.5.4
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-# TAG = value [value, ...]
-# For lists items can also be appended using:
-# TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# This tag specifies the encoding used for all characters in the config file that
-# follow. The default is UTF-8 which is also the encoding used for all text before
-# the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into
-# libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of
-# possible encodings.
-
-DOXYFILE_ENCODING = UTF-8
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
-# by quotes) that should identify the project.
-
-PROJECT_NAME = Unknown application
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
-
-PROJECT_NUMBER = ?.?
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY = /var/www/htdocs/???/docs/
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 4096 sub-directories (in 2 levels) under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of
-# source files, where putting all generated files in the same directory would
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
-# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian,
-# Italian, Japanese, Japanese-en (Japanese with English messages), Korean,
-# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian,
-# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
-
-OUTPUT_LANGUAGE = English
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF = "The $name class " \
- "The $name widget " \
- "The $name file " \
- is \
- provides \
- specifies \
- contains \
- represents \
- a \
- an \
- the
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
-# description.
-
-ALWAYS_DETAILED_SEC = YES
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB = YES
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES = YES
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user-defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
-
-STRIP_FROM_PATH = /var/www/htdocs/
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful is your file systems
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like regular Qt-style comments
-# (thus requiring an explicit @brief command for a brief description.)
-
-JAVADOC_AUTOBRIEF = YES
-
-# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
-# interpret the first line (until the first dot) of a Qt-style
-# comment as the brief description. If set to NO, the comments
-# will behave just like regular Qt-style comments (thus requiring
-# an explicit \brief command for a brief description.)
-
-QT_AUTOBRIEF = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen
-# will output the detailed description near the top, like JavaDoc.
-# If set to NO, the detailed description appears after the member
-# documentation.
-
-DETAILS_AT_TOP = YES
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
-
-INHERIT_DOCS = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
-# a new page for each member. If set to NO, the documentation of a member will
-# be part of the file/class/namespace that contains it.
-
-SEPARATE_MEMBER_PAGES = YES
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE = 8
-
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user-defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
-# sources only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C = NO
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
-# sources only. Doxygen will then generate output that is more tailored for Java.
-# For instance, namespaces will be presented as packages, qualified scopes
-# will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA = YES
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to
-# include (a tag file for) the STL sources as input, then you should
-# set this tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
-# func(std::string) {}). This also make the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-
-BUILTIN_STL_SUPPORT = NO
-
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-
-CPP_CLI_SUPPORT = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
-# Doxygen will parse them like normal C++ but will assume all classes use public
-# instead of private inheritance when no explicit protection keyword is present.
-
-SIP_SUPPORT = NO
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC = YES
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
-
-SUBGROUPING = YES
-
-# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct (or union) is
-# documented as struct with the name of the typedef. So
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-# with name TypeT. When disabled the typedef will appear as a member of a file,
-# namespace, or class. And the struct will be named TypeS. This can typically
-# be useful for C code where the coding convention is that all structs are
-# typedef'ed and only the typedef is referenced never the struct's name.
-
-TYPEDEF_HIDES_STRUCT = NO
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-EXTRACT_PRIVATE = YES
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-EXTRACT_STATIC = YES
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES = YES
-
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS = YES
-
-# If this flag is set to YES, the members of anonymous namespaces will be extracted
-# and appear in the documentation as a namespace called 'anonymous_namespace{file}',
-# where file will be replaced with the base name of the file that contains the anonymous
-# namespace. By default anonymous namespace are hidden.
-
-EXTRACT_ANON_NSPACES = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS = NO
-
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES = YES
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
-
-SORT_MEMBER_DOCS = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
-
-SORT_BRIEF_DOCS = YES
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME = YES
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
-
-GENERATE_TODOLIST = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
-
-GENERATE_TESTLIST = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
-
-GENERATE_BUGLIST = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or define consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and defines in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES = YES
-
-# If the sources in your project are distributed over multiple directories
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
-# in the documentation. The default is NO.
-
-SHOW_DIRECTORIES = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from the
-# version control system). Doxygen will invoke the program by executing (via
-# popen()) the command <command> <input-file>, where <command> is the value of
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
-# provided by doxygen. Whatever the program writes to standard output
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
-WARNINGS = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED = YES
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR = YES
-
-# This WARN_NO_PARAMDOC option can be abled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
-
-WARN_NO_PARAMDOC = YES
-
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text. Optionally the format may contain
-# $version, which will be replaced by the version of the file (if it could
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT = "$file:$line: $text "
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
-
-WARN_LOGFILE = /var/www/htdocs/ship-simu/docs/warn.log
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
-
-INPUT = /var/www/htdocs/ship-simu/
-
-# This tag can be used to specify the character encoding of the source files that
-# doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default
-# input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding.
-# See http://www.gnu.org/software/libiconv for the list of possible encodings.
-
-INPUT_ENCODING = UTF-8
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
-
-FILE_PATTERNS = *.php
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
-
-RECURSIVE = YES
-
-# The EXCLUDE tag can be used to specify files and/or directories that should
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE =
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
-# directories that are symbolic links (a Unix filesystem feature) are excluded
-# from the input.
-
-EXCLUDE_SYMLINKS = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories. Note that the wildcards are matched
-# against the file with absolute path, so to exclude all test directories
-# for example use the pattern */test/*
-
-EXCLUDE_PATTERNS = */docs/* \
- */ship-simu.org/*
-
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the output.
-# The symbol name can be a fully qualified name, a word, or if the wildcard * is used,
-# a substring. Examples: ANamespace, AClass, AClass::ANamespace, ANamespace::*Test
-
-EXCLUDE_SYMBOLS =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
-
-EXAMPLE_PATH =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-EXAMPLE_PATTERNS = *
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
-
-IMAGE_PATH =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output. If FILTER_PATTERNS is specified, this tag will be
-# ignored.
-
-INPUT_FILTER =
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis. Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match. The filters are a list of the form:
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
-# is applied to all files.
-
-FILTER_PATTERNS =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO. If you have enabled CALL_GRAPH or CALLER_GRAPH
-# then you must also enable this option. If you don't then doxygen will produce
-# a warning and turn it on anyway
-
-SOURCE_BROWSER = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES = YES
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES (the default)
-# then for each documented function all documented
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = YES
-
-# If the REFERENCES_RELATION tag is set to YES (the default)
-# then for each documented function all documented entities
-# called/used by that function will be listed.
-
-REFERENCES_RELATION = YES
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code. Otherwise they will link to the documentstion.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code
-# will point to the HTML generated by the htags(1) tool instead of doxygen
-# built-in source browser. The htags tool is part of GNU's global source
-# tagging system (see http://www.gnu.org/software/global/global.html). You
-# will need version 4.8.6 or higher.
-
-USE_HTAGS = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX = YES
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX = 3
-
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
-
-GENERATE_HTML = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header.
-
-HTML_HEADER =
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-HTML_FOOTER =
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET =
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
-# files or namespaces will be aligned in HTML using tables. If set to
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP = YES
-
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded. For this to work a browser that supports
-# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
-# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
-
-HTML_DYNAMIC_SECTIONS = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
-# written to the html output directory.
-
-CHM_FILE =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC = YES
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND = YES
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
-# top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it.
-
-DISABLE_INDEX = NO
-
-# This tag can be used to set the number of enum values (range [1..20])
-# that doxygen will group on one line in the generated HTML documentation.
-
-ENUM_VALUES_PER_LINE = 4
-
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
-# probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW = NO
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
-
-TREEVIEW_WIDTH = 250
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
-GENERATE_LATEX = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
-
-LATEX_CMD_NAME = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
-
-MAKEINDEX_CMD_NAME = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, a4wide, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS = NO
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX = NO
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
-
-LATEX_HIDE_INDICES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE =
-
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT = man
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation.
-
-GENERATE_XML = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_SCHEMA =
-
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_DTD =
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
-# dump the program listings (including syntax highlighting
-# and cross-referencing information) to the XML output. Note that
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
-# generate a Perl module file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
-
-GENERATE_PERLMOD = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader. This is useful
-# if you want to understand what is going on. On the other hand, if this
-# tag is set to NO the size of the Perl module output will be much smaller
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY = YES
-
-# The names of the make variables in the generated doxyrules.make file
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
-# This is useful so different doxyrules.make files included by the same
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION = YES
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_DEFINED tags.
-
-EXPAND_ONLY_PREDEF = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
-
-SEARCH_INCLUDES = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
-
-PREDEFINED =
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition.
-
-EXPAND_AS_DEFINED =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all function-like macros that are alone
-# on a line, have an all uppercase name, and do not end with a semicolon. Such
-# function macros are typically used for boiler-plate code, and will confuse
-# the parser if not removed.
-
-SKIP_FUNCTION_MACROS = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles.
-# Optionally an initial location of the external documentation
-# can be added for each tagfile. The format of a tag file without
-# this location is as follows:
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths or
-# URLs. If a location is present for each tag, the installdox tool
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE =
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
-
-EXTERNAL_GROUPS = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
-# or super classes. Setting the tag to NO turns the diagrams off. Note that
-# this option is superseded by the HAVE_DOT option below. This is only a
-# fallback. It is recommended to install and use dot, since it yields more
-# powerful graphs.
-
-CLASS_DIAGRAMS = YES
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see http://www.mcternan.me.uk/mscgen/) to
-# produce the chart and insert it in the documentation. The MSCGEN_PATH tag allows you to
-# specify the directory where the mscgen tool resides. If left empty the tool is assumed to
-# be found in the default search path.
-
-MSCGEN_PATH =
-
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS = NO
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT = YES
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH = YES
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-
-UML_LOOK = YES
-
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
-
-INCLUDE_GRAPH = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH = YES
-
-# If the CALL_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will
-# generate a call dependency graph for every global function or class method.
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable call graphs for selected
-# functions only using the \callgraph command.
-
-CALL_GRAPH = YES
-
-# If the CALLER_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will
-# generate a caller dependency graph for every global function or class method.
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable caller graphs for selected
-# functions only using the \callergraph command.
-
-CALLER_GRAPH = YES
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY = YES
-
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are png, jpg, or gif
-# If left blank png will be used.
-
-DOT_IMAGE_FORMAT = png
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
-
-DOTFILE_DIRS =
-
-# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
-# nodes that will be shown in the graph. If the number of nodes in a graph
-# becomes larger than this value, doxygen will truncate the graph, which is
-# visualized by representing a node as a red box. Note that doxygen if the number
-# of direct children of the root node in a graph is already larger than
-# MAX_DOT_GRAPH_NOTES then the graph will not be shown at all. Also note
-# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-
-DOT_GRAPH_MAX_NODES = 50
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
-# graphs generated by dot. A depth value of 3 means that only nodes reachable
-# from the root by following a path via at most 3 edges will be shown. Nodes
-# that lay further from the root node will be omitted. Note that setting this
-# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that the size of a graph can be further restricted by
-# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-
-MAX_DOT_GRAPH_DEPTH = 1000
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, which results in a white background.
-# Warning: Depending on the platform used, enabling this option may lead to
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
-# read).
-
-DOT_TRANSPARENT = YES
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS = NO
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE = YES
+++ /dev/null
-Deny from all
+++ /dev/null
-Deny from all
+++ /dev/null
-Deny from all
+++ /dev/null
-<?php
-/**
- * A class holding general data about the application and some methods for
- * the management including the entry point.
- *
- * E.g.:
- *
- * index.php?app=my_app
- *
- * You need to create a folder in the folder "application" named "my_app"
- * (without the quotes) and create a include file called
- * class_ApplicationHelper.php. You have to write the same class for your
- * application and implement the same interface called ManageableApplication
- * because this class include file will be searched for.
- *
- * It is good when you avoid more GET parameters to keep URLs short and sweet.
- * But sometimes you need some GET paramerers e.g. for your imprint or info page
- * or other linked pages which you have to create and state some informations.
- *
- * Please remember that this include file is being loaded *before* the class
- * loader is loading classes from "exceptions", "interfaces" and "main"!
- *
- * @author Roland Haeder <webmaster@ship-simu.org>
- * @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software
- * @license GNU GPL 3.0 or any newer version
- * @link http://www.ship-simu.org
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-class ApplicationHelper extends BaseApplication implements ManageableApplication, Registerable {
- /**
- * The version number of this application
- */
- private $appVersion = "";
-
- /**
- * The human-readable name for this application
- */
- private $appName = "";
-
- /**
- * The short uni*-like name for this application
- */
- private $shortName = "";
-
- /**
- * An instance of a controller
- */
- private $controllerInstance = null;
-
- /**
- * An instance of this class
- */
- private static $thisInstance = null;
-
- /**
- * Protected constructor
- *
- * @return void
- */
- protected function __construct () {
- // Call parent constructor
- parent::__construct(__CLASS__);
- }
-
- /**
- * Getter for an instance of this class
- *
- * @return $thisInstance An instance of this class
- */
- public final static function getInstance () {
- // Is the instance there?
- if (is_null(self::$thisInstance)) {
- self::$thisInstance = new ApplicationHelper();
- }
-
- // Return the instance
- return self::$thisInstance;
- }
-
- /**
- * Getter for the version number
- *
- * @return $appVersion The application's version number
- */
- public final function getAppVersion () {
- return $this->appVersion;
- }
-
- /**
- * Setter for the version number
- *
- * @param $appVersion The application's version number
- * @return void
- */
- public final function setAppVersion ($appVersion) {
- // Cast and set it
- $appVersion = (string) $appVersion;
- $this->appVersion = $appVersion;
- }
-
- /**
- * Getter for human-readable name
- *
- * @return $appName The application's human-readable name
- */
- public final function getAppName () {
- return $this->appName;
- }
-
- /**
- * Setter for human-readable name
- *
- * @param $appName The application's human-readable name
- * @return void
- */
- public final function setAppName ($appName) {
- // Cast and set it
- $appName = (string) $appName;
- $this->appName = $appName;
- }
-
- /**
- * Getter for short uni*-like name
- *
- * @return $shortName The application's short uni*-like name
- */
- public final function getAppShortName () {
- return $this->shortName;
- }
-
- /**
- * Setter for short uni*-like name
- *
- * @param $shortName The application's short uni*-like name
- * @return void
- */
- public final function setAppShortName ($shortName) {
- // Cast and set it
- $shortName = (string) $shortName;
- $this->shortName = $shortName;
- }
-
- /**
- * Builds the master template's name
- *
- * @return $masterTemplateName Name of the master template
- */
- public function buildMasterTemplateName () {
- // Get short name and add suffix
- $masterTemplateName = str_replace("-", "", $this->getAppShortName()) . "_main";
-
- // Return it
- return $masterTemplateName;
- }
-
- /**
- * Launches the admin area
- *
- * @return void
- */
- public final function entryPoint () {
- // Create a new request object
- $requestInstance = ObjectFactory::createObjectByName('HttpRequest');
-
- // Default response is HTTP (HTML page) and type is "Web"
- $response = "http";
- $responseType = "web";
-
- // Do we have another response?
- if ($requestInstance->isRequestElementSet('request')) {
- // Then use it
- $response = strtolower($requestInstance->getRequestElement('request'));
- $responseType = $response;
- } // END - if
-
- // ... and a new response object
- $responseClass = sprintf("%sResponse", $this->convertToClassName($response));
- $responseInstance = ObjectFactory::createObjectByName($responseClass, array($this));
-
- // Remember both in this application
- $this->setRequestInstance($requestInstance);
- $this->setResponseInstance($responseInstance);
-
- // Get the parameter from the request
- $commandName = $requestInstance->getRequestElement('page');
-
- // If it is null then get default command
- if (is_null($commandName)) {
- $commandName = $responseInstance->getDefaultCommand();
- } // END - if
-
- // Get a resolver
- $resolverClass = sprintf("%sControllerResolver", $this->convertToClassName($responseType));
- $resolverInstance = ObjectFactory::createObjectByName($resolverClass, array($commandName, $this));
-
- // Get a controller instance as well
- $this->controllerInstance = $resolverInstance->resolveController();
-
- // Handle the request
- $this->controllerInstance->handleRequest($requestInstance, $responseInstance);
- }
-
- /**
- * Handle the indexed array of fatal messages and puts them out in an
- * acceptable fasion
- *
- * @param $messageList An array of fatal messages
- * @return void
- */
- public function handleFatalMessages (array $messageList) {
- // Walk through all messages
- foreach ($messageList as $message) {
- print("MSG:".$message."<br />\n");
- } // END - if
- }
-
- /**
- * Assigns application-depending data
- *
- * @param $templateInstance An instance of a template engine
- * @return void
- */
- public function assignExtraTemplateData (CompileableTemplate $templateInstance) {
- // Assign charset
- $templateInstance->assignConfigVariable('header_charset');
- }
-}
-
-// [EOF]
-?>
+++ /dev/null
-<?php
-/**
- * Additional/overwritten configuration parts
- *
- * @author Roland Haeder <webmaster@ship-simu.org>
- * @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software
- * @license GNU GPL 3.0 or any newer version
- * @link http://www.ship-simu.org
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-// Get a configuration instance for shorter lines
-$cfg = FrameworkConfiguration::getInstance();
-
-// CFG: HEADER-CHARSET
-$cfg->setConfigEntry('header_charset', "utf-8");
-
-// CFG: DEFAULT-WEB-COMMAND
-$cfg->setConfigEntry('default_web_command', "home");
-
-// CFG: DEFAULT-IMAGE-COMMAND
-$cfg->setConfigEntry('default_image_command', "build");
-
-// CFG: PAGE-WITH-NEWS
-$cfg->setConfigEntry('page_with_news', "home");
-
-// CFG: FORM-ACTION
-$cfg->setConfigEntry('form_action', "index.php?app={?app_short_name?}&page=do_form");
-
-// CFG: FORM-METHOD
-$cfg->setConfigEntry('form_method', "post");
-
-// CFG: FORM-TARGET
-$cfg->setConfigEntry('form_target', "_self");
-
-// CFG: REGISTER-REQUIRES-EMAIL
-$cfg->setConfigEntry('register_requires_email', "Y");
-
-// CFG: REGISTER-INCLUDES-PROFILE
-$cfg->setConfigEntry('register_includes_profile', "Y");
-
-// CFG: REGISTER-PERSONAL-DATA
-$cfg->setConfigEntry('register_personal_data', "Y");
-
-// CFG: REGISTER-EMAIL-UNIQUE
-$cfg->setConfigEntry('register_email_unique', "Y");
-
-// CFG: CHAT-ENABLED-ICQ
-$cfg->setConfigEntry('chat_enabled_icq', "Y");
-
-// CFG: CHAT-ENABLED-JABBER
-$cfg->setConfigEntry('chat_enabled_jabber', "Y");
-
-// CFG: CHAT-ENABLED-YAHOO
-$cfg->setConfigEntry('chat_enabled_yahoo', "Y");
-
-// CFG: CHAT-ENABLED-AOL
-$cfg->setConfigEntry('chat_enabled_aol', "Y");
-
-// CFG: CHAT-ENABLED-MSN
-$cfg->setConfigEntry('chat_enabled_msn', "Y");
-
-// CFG: USER-REGISTRATION
-$cfg->setConfigEntry('user_registration_class', "AdminRegistration");
-
-// CFG: USER-LOGIN-CLASS
-$cfg->setConfigEntry('user_login_class', "AdminUserLogin");
-
-// CFG: GUEST-LOGIN-CLASS
-$cfg->setConfigEntry('guest_login_class', "AdminGuestLogin");
-
-// CFG: USER-STATUS-REGISTER
-$cfg->setConfigEntry('user_status_unconfirmed', "UNCONFIRMED");
-
-// CFG: USER-STATUS-GUEST
-$cfg->setConfigEntry('user_status_guest', "GUEST");
-
-// CFG: USER-STATUS-CONFIRMED
-$cfg->setConfigEntry('user_status_confirmed', "CONFIRMED");
-
-// CFG: LOGIN-HELPER-CLASS
-$cfg->setConfigEntry('login_helper_class', "AdminLoginHelper");
-
-// CFG: AUTH-METHOD-CLASS
-$cfg->setConfigEntry('auth_method_class', "CookieAuth");
-
-// CFG: APP-LOGIN-URL
-$cfg->setConfigEntry('app_login_url', "index.php?app={?app_short_name?}&page=login_area");
-
-// CFG: LOGIN-FAILED-URL
-$cfg->setConfigEntry('login_failed_url', "index.php?app={?app_short_name?}&page=login_failed");
-
-// CFG: LOGOUT-DONE-URL
-$cfg->setConfigEntry('logout_done_url', "index.php?app={?app_short_name?}&page=logout_done");
-
-// CFG: LOGIN-USER-STATUS-URL
-$cfg->setConfigEntry('login_user_status_url', "index.php?app={?app_short_name?}&page=login_area&action=status_problem");
-
-// CFG: USER-NOT-UNCONFIRMED-URL
-$cfg->setConfigEntry('user_not_unconfirmed_url', "index.php?app={?app_short_name?}&page=status&status=unconfirmed_problem");
-
-// CFG: USER-UNCONFIRMED-EMAIL-MISSING-URL
-$cfg->setConfigEntry('user_unconfirmed_email_missing_url', "index.php?app={?app_short_name?}&page=status&status=unconfirmed_email_missing");
-
-// CFG: CONFIRM-CODE-INVALID-URL
-$cfg->setConfigEntry('confirm_code_invalid_url', "index.php?app={?app_short_name?}&page=status&status=confirm_code_invalid");
-
-// CFG: USER-NOT-FOUND-URL
-$cfg->setConfigEntry('user_not_found_url', "index.php?app={?app_short_name?}&page=status&status=user_not_found");
-
-// CFG: LOGIN-DEFAULT-ACTION
-$cfg->setConfigEntry('login_default_action', "welcome");
-
-// CFG: NEWS-READER-CLASS
-$cfg->setConfigEntry('news_reader_class', "DefaultNewsReader");
-
-// CFG: NEWS-DOWNLOAD-FILTER
-$cfg->setConfigEntry('news_download_filter', "NewsDownloadFilter");
-
-// CFG: NEWS-PROCESS-FILTER
-$cfg->setConfigEntry('news_process_filter', "NewsProcessFilter");
-
-// CFG: USER-AUTH-FILTER
-$cfg->setConfigEntry('user_auth_filter', "UserAuthFilter");
-
-// CFG: USER-UPDATE-FILTER
-$cfg->setConfigEntry('user_update_filter', "UserUpdateFilter");
-
-// CFG: USER-STATUS-CONFIRMED-FILTER
-$cfg->setConfigEntry('user_status_confirmed_filter', "UserStatusConfimedUpdateFilter");
-
-// CFG: CAPTCHA-ENCRYPT-VALIDATOR-FILTER
-$cfg->setConfigEntry('captcha_encrypt_validator_filter', "CaptchaEncryptFilter");
-
-// CFG: CAPTCHA-GUEST-VERIFIER-FILTER
-$cfg->setConfigEntry('captcha_guest_verifier_filter', "GraphicalCodeCaptchaVerifierFilter");
-
-// CFG: CAPTCHA-USER-VERIFIER-FILTER
-$cfg->setConfigEntry('captcha_user_verifier_filter', "GraphicalCodeCaptchaVerifierFilter");
-
-// CFG: CAPTCHA-REGISTER-VERIFIER-FILTER
-$cfg->setConfigEntry('captcha_register_verifier_filter', "GraphicalCodeCaptchaVerifierFilter");
-
-// CFG: CONFIRM-CODE-VALIDATOR-FILTER
-$cfg->setConfigEntry('confirm_code_verifier_filter', "ConfirmCodeVerifierFilter");
-
-// CFG: NEWS-HOME-LIMIT
-$cfg->setConfigEntry('news_home_limit', 10);
-
-// CFG: NEWS-LOGIN-AREA-LIMIT
-$cfg->setConfigEntry('news_login_area_limit', 15);
-
-// CFG: LOGIN-ENABLED
-$cfg->setConfigEntry('login_enabled', "Y");
-
-// CFG: CONFIRM-EMAIL-ENABLED
-$cfg->setConfigEntry('confirm_email_enabled', "Y");
-
-// CFG: LOGIN-DISABLED-REASON
-$cfg->setConfigEntry('login_disabled_reason', "Loginbereich befindet sich noch im Aufbau.");
-
-// CFG: LOGIN-TYPE
-$cfg->setConfigEntry('login_type', "username"); // username, email, both
-
-// CFG: EMAIL-CHANGE-ALLOWED
-$cfg->setConfigEntry('email_change_allowed', "N");
-
-// CFG: EMAIL-CHANGE-CONFIRMATION
-$cfg->setConfigEntry('email_change_confirmation', "Y");
-
-// CFG: GUEST-LOGIN-ALLOWED
-$cfg->setConfigEntry('guest_login_allowed', "N");
-
-// CFG: GUEST-LOGIN-USERNAME
-$cfg->setConfigEntry('guest_login_user', "guest");
-
-// CFG: GUEST-LOGIN-PASS
-$cfg->setConfigEntry('guest_login_passwd', "guest");
-
-// CFG: LOGIN-WELCOME-ACTION-CLASS
-$cfg->setConfigEntry('login_welcome_action_class', "AdminLoginAction");
-
-// CFG: LOGIN-LOGOUT-ACTION-CLASS
-$cfg->setConfigEntry('login_logout_action_class', "AdminLogoutAction");
-
-// CFG: LOGIN-PROFILE-ACTION-CLASS
-$cfg->setConfigEntry('login_profile_action_class', "AdminProfileAction");
-
-// CFG: ADMIN-REGISTER-CAPTCHA
-$cfg->setConfigEntry('admin_register_captcha', "GraphicalCodeCaptcha");
-
-// CFG: ADMIN-USER-LOGIN-CAPTCHA
-$cfg->setConfigEntry('admin_user_login_captcha', "GraphicalCodeCaptcha");
-
-// CFG: ADMIN-GUEST-LOGIN-CAPTCHA
-$cfg->setConfigEntry('admin_guest_login_captcha', "GraphicalCodeCaptcha");
-
-// CFG: CAPTCHA-STRING-LENGTH
-$cfg->setConfigEntry('captcha_string_length', 5);
-
-// CFG: CAPTCHA-SEARCH-CHARS
-$cfg->setConfigEntry('captcha_search_chars', "+/=");
-
-// CFG: RANDOM-STRING-LENGTH
-$cfg->setConfigEntry('random_string_length', 100);
-
-// CFG: ADMIN-REGISTER-CAPTCHA-SECURED
-$cfg->setConfigEntry('admin_register_captcha_secured', "Y");
-
-// CFG: ADMIN-USER-LOGIN-CAPTCHA-SECURED
-$cfg->setConfigEntry('admin_user_login_captcha_secured', "Y");
-
-// CFG: ADMIN-GUEST-LOGIN-CAPTCHA-SECURED
-$cfg->setConfigEntry('admin_guest_login_captcha_secured', "Y");
-
-// CFG: BLOCK-SHOWS-REGISTRATION
-$cfg->setConfigEntry('block_shows_registration', "Y");
-
-// CFG EMAIl-TPL-RESEND-LINK
-$cfg->setConfigEntry('email_tpl_resend_link', "text");
-
-// CFG: MAIL-TEMPLATE-ENGINE
-$cfg->setConfigEntry('mail_template_class', "MailTemplateEngine");
-
-// CFG: IMAGE-TEMPLATE-ENGINE
-$cfg->setConfigEntry('image_template_class', "ImageTemplateEngine");
-
-// CFG: ADMIN-EMAIL
-$cfg->setConfigEntry('admin_email', "you@some-hoster.invalid");
-
-// CFG: WEB-BLOCK-HELPER
-$cfg->setConfigEntry('web_block_helper', "WebBlockHelper");
-
-// CFG: WEB-FORM-HELPER
-$cfg->setConfigEntry('web_form_helper', "WebFormHelper");
-
-// CFG: WEB-LINK-HELPER
-$cfg->setConfigEntry('web_link_helper', "WebLinkHelper");
-
-// [EOF]
-?>
+++ /dev/null
-<?php
-/**
- * Application data
- *
- * Please remember that this include file is being loaded *before* the class
- * loader is loading classes from "exceptions", "interfaces" and "main"!
- *
- * You can prevent adding this application to the selector by uncommenting the
- * following line:
- *
- * if ((isset($this)) && (is_object($this)) && ($this->isClass("ApplicationSelector"))) { return; }
- *
- * isset() is required to prevent a warning and is_object() is highly required
- * when the application itself is requested in URL (hint: index.php?app=your_app)
- *
- * @author Roland Haeder <webmaster@ship-simu.org>
- * @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software
- * @license GNU GPL 3.0 or any newer version
- * @link http://www.ship-simu.org
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-// Get config instance
-$cfg = FrameworkConfiguration::getInstance();
-
-// Get an instance of the helper
-$app = call_user_func_array(
- array($cfg->readConfig('app_helper_class'), 'getInstance'),
- array()
-);
-
-// Set application name and version
-$app->setAppName("Administrationsbereich");
-$app->setAppVersion("0.0.0");
-$app->setAppShortName("admin");
-
-// [EOF]
-?>
+++ /dev/null
-<?php
-/**
- * Some debugging stuff for this application
- *
- * @author Roland Haeder <webmaster@ship-simu.org>
- * @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software
- * @license GNU GPL 3.0 or any newer version
- * @link http://www.ship-simu.org
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-// [EOF]
-?>
+++ /dev/null
-<?php
-/**
- * The exception handler for this application
- *
- * @author Roland Haeder <webmaster@ship-simu.org>
- * @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software
- * @license GNU GPL 3.0 or any newer version
- * @link http://www.ship-simu.org
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-// Our own exception handler
-function __exceptionHandler (FrameworkException $e) {
- // Call the app_die() method
- ApplicationEntryPoint::app_die(sprintf("[Main:] The application <span class=\"app_name\">%s</span> (<span class=\"app_short_name\">%s</span>) has terminated due to an uncaught exception: <span class=\"exception_name\">%s</span> <span class=\"exception_number\">[%s]</span>: <span class=\"debug_exception\">%s</span> Backtrace: <div class=\"debug_backtrace\">%s</div>",
- ApplicationHelper::getInstance()->getAppName(),
- ApplicationHelper::getInstance()->getAppShortName(),
- $e->__toString(),
- $e->getHexCode(),
- $e->getMessage(),
- $e->getPrintableBackTrace()
- ),
- $e->getHexCode(),
- $e->getExtraData()
- );
-} // END - function
-
-// Set the new handler
-set_exception_handler('__exceptionHandler');
-
-// Error handler
-function __errorHandler ($errno, $errstr, $errfile, $errline, array $errcontext) {
- // Construct the message
- $message = sprintf("File: <span class=\"debug_file\">%s</span>, Line: <span class=\"debug_line\">%s</span>, Code: <span class=\"debug_code\">%s</span>, Message: <span class=\"debug_message\">%s</span>",
- basename($errfile),
- $errline,
- $errno,
- $errstr
- );
-
- // Throw an exception here
- throw new FatalErrorException($message, BaseFrameworkSystem::EXCEPTION_FATAL_ERROR);
-} // END - function
-
-// Set error handler
-set_error_handler('__errorHandler');
-
-// Assertion handler
-function __assertHandler ($file, $line, $code) {
- // Empty code?
- if ($code === "") $code = "<em>Unknown</em>";
-
- // Create message
- $message = sprintf("File: <span class=\"debug_file\">%s</span>, Line: <span class=\"debug_line\">%s</span>, Code: <span class=\"debug_code\">%s</span>",
- basename($file),
- $line,
- $code
- );
-
- // Throw an exception here
- throw new AssertionException($message, BaseFrameworkSystem::EXCEPTION_ASSERTION_FAILED);
-} // END - function
-
-// Init assert handling
-assert_options(ASSERT_ACTIVE, 1);
-assert_options(ASSERT_WARNING, 0);
-assert_options(ASSERT_BAIL, 0);
-assert_options(ASSERT_QUIET_EVAL, 0);
-assert_options(ASSERT_CALLBACK, '__assertHandler');
-
-// [EOF]
-?>
+++ /dev/null
-Deny from all
+++ /dev/null
-<?php
-/**
- * Application initializer
- *
- * Please remember that this include file is being loaded *before* the class
- * loader is loading classes from "exceptions", "interfaces" and "main"!
- *
- * You can prevent adding this application to the selector by uncommenting the
- * following line:
- *
- * if ((isset($this)) && (is_object($this)) && ($this->isClass("ApplicationSelector"))) { return; }
- *
- * isset() is required to prevent a warning and is_object() is highly required
- * when the application itself is requested in URL (hint: index.php?app=your_app)
- *
- * @author Roland Haeder <webmaster@ship-simu.org>
- * @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software
- * @license GNU GPL 3.0 or any newer version
- * @link http://www.ship-simu.org
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-// Get config instance
-$cfg = FrameworkConfiguration::getInstance();
-
-// Initialize output system
-require($cfg->readConfig('base_path') . 'inc/output.php');
-
-// Initialize file i/o system
-require($cfg->readConfig('base_path') . 'inc/file_io.php');
-
-// Include the language sub-system
-require($cfg->readConfig('base_path') . 'inc/language.php');
-
-// This application needs a database connection then we have to simply include
-// the inc/database.php script
-require($cfg->readConfig('base_path') . 'inc/database.php');
-
-// [EOF]
-?>
+++ /dev/null
-Deny from all
+++ /dev/null
-<?php
-/**
- * A specialized class loader for this class
- *
- * @author Roland Haeder <webmaster@ship-simu.org>
- * @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software
- * @license GNU GPL 3.0 or any newer version
- * @link http://www.ship-simu.org
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-// Get config instance
-$cfg = FrameworkConfiguration::getInstance();
-
-// Load all classes for the application
-foreach ($lowerClasses as $className) {
- // Load the application classes
- ClassLoader::getInstance()->loadClasses(sprintf("%s/%s/%s", $cfg->readConfig('application_path'), $cfg->readConfig('app_name'), $className));
-} // END - if
-
-// Clean up the global namespace
-unset($lowerClasses);
-unset($className);
-
-// [EOF]
-?>
+++ /dev/null
-Deny from all
+++ /dev/null
-Deny from all
+++ /dev/null
-Deny from all
+++ /dev/null
-<?php
-/**
- * An action class for the admin "welcome" page
- *
- * @author Roland Haeder <webmaster@ship-simu.org>
- * @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software
- * @license GNU GPL 3.0 or any newer version
- * @link http://www.ship-simu.org
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-class WebAdminLoginWelcomeAction extends BaseAction implements PerformableAction, Registerable {
- /**
- * Protected constructor
- *
- * @return void
- */
- protected function __construct () {
- // Call parent constructor
- parent::__construct(__CLASS__);
- }
-
- /**
- * Creates an instance of this action
- *
- * @return $actionInstance An instance of this action class
- */
- public final static function createWebAdminLoginWelcomeAction () {
- // Get a new instance
- $actionInstance = new WebAdminLoginWelcomeAction();
-
- // Return the instance
- return $actionInstance;
- }
-
- /**
- * Executes the command with given request and response objects
- *
- * @param $requestInstance An instance of a class with an Requestable interface
- * @param $responseInstance An instance of a class with an Responseable interface
- * @return void
- * @todo Maybe we need to do something later here
- */
- public function execute (Requestable $requestInstance, Responseable $responseInstance) {
- $this->partialStub("Unfinished part.");
- }
-
- /**
- * Adds extra filters to the given controller instance
- *
- * @param $controllerInstance A controller instance
- * @param $requestInstance An instance of a class with an Requestable interface
- * @return void
- * @todo 0% done
- */
- public function addExtraFilters (Controller $controllerInstance, Requestable $requestInstance) {
- $this->partialStub("Need to add filters which looks for applications with "admin" directory.");
- }
-}
-
-// [EOF]
-?>
+++ /dev/null
-<?php
-/**
- *
- *
- * @author Roland Haeder <webmaster@ship-simu.org>
- * @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software
- * @license GNU GPL 3.0 or any newer version
- * @link http://www.ship-simu.org
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-class extends BaseFrameworkSystem {
- /**
- * Protected constructor
- *
- * @return void
- */
- protected function __construct () {
- // Call parent constructor
- parent::__construct(__CLASS__);
-
- // Clean up a little
- $this->removeNumberFormaters();
- $this->removeSystemArray();
- }
-}
-
-// [EOF]
-?>
+++ /dev/null
-Deny from all
+++ /dev/null
-Deny from all
+++ /dev/null
-<?php
-/**
- * A command for user login
- *
- * @author Roland Haeder <webmaster@ship-simu.org>
- * @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software
- * @license GNU GPL 3.0 or any newer version
- * @link http://www.ship-simu.org
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-class WebAdminUserLoginCommand extends BaseCommand implements Commandable {
- /**
- * Protected constructor
- *
- * @return void
- */
- protected function __construct () {
- // Call parent constructor
- parent::__construct(__CLASS__);
-
- // Clean up a little
- $this->removeNumberFormaters();
- $this->removeSystemArray();
- }
-
- /**
- * Creates an instance of this command and sets the resolver instance
- *
- * @param $resolverInstance An instance of a command resolver
- * @return $commandInstance The created command instance
- */
- public final static function createWebAdminUserLoginCommand (CommandResolver $resolverInstance) {
- // Get a new instance
- $commandInstance = new WebAdminUserLoginCommand();
-
- // Set the resolver instance
- $commandInstance->setResolverInstance($resolverInstance);
-
- // Return the prepared instance
- return $commandInstance;
- }
-
- /**
- * Executes the command with given request and response objects
- *
- * @param $requestInstance An instance of a class with an Requestable interface
- * @param $responseInstance An instance of a class with an Responseable interface
- * @return void
- */
- public function execute (Requestable $requestInstance, Responseable $responseInstance) {
- // First get a UserLogin instance
- $loginInstance = ObjectFactory::createObjectByConfiguredName('user_login_class');
-
- // First set request and response instance
- $loginInstance->setRequestInstance($requestInstance);
-
- // Encrypt the password
- $loginInstance->encryptPassword('pass');
-
- // Do the login here
- $loginInstance->doLogin($requestInstance, $responseInstance);
-
- // Was the login fine? Then redirect here
- if ($loginInstance->ifLoginWasSuccessfull()) {
- // Try to redirect here
- try {
- // Redirect...
- $responseInstance->redirectToConfiguredUrl('app_login');
-
- // Exit here
- exit();
- } catch (FrameworkException $e) {
- // Something went wrong here!
- $responseInstance->addFatalMessage($e->getMessage());
- }
- } else {
- // Attach error message to the response
- $responseInstance->addFatalMessage('failed_user_login');
- }
- }
-
- /**
- * Adds extra filters to the given controller instance
- *
- * @param $controllerInstance A controller instance
- * @param $requestInstance An instance of a class with an Requestable interface
- * @return void
- * @todo Add more filters
- */
- public function addExtraFilters (Controller $controllerInstance, Requestable $requestInstance) {
- // Which login type do we have?
- switch ($this->getConfigInstance()->readConfig('login_type')) {
- case "username": // Login via username
- $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('username_verifier_filter'));
- break;
-
- case "email": // Login via email
- $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('email_verifier_filter'));
- break;
-
- default: // Wether username or email is set
- $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('username_email_verifier_filter'));
- break;
- }
-
- // Password verifier filter
- $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('password_verifier_filter'));
-
- // Add filter for CAPTCHA
- $controllerInstance->addPreFilter(ObjectFactory::createObjectByConfiguredName('captcha_user_verifier_filter'));
- }
-}
-
-// [EOF]
-?>
+++ /dev/null
-Deny from all
+++ /dev/null
-<?php
-/**
- * A special login class for administration area
- *
- * @author Roland Haeder <webmaster@ship-simu.org>
- * @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software
- * @license GNU GPL 3.0 or any newer version
- * @link http://www.ship-simu.org
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-class AdminUserLogin extends BaseFrameworkSystem implements LoginableUser {
- /**
- * The hashed password
- */
- private $hashedPassword = "";
-
- /**
- * Protected constructor
- *
- * @return void
- */
- protected function __construct () {
- // Call parent constructor
- parent::__construct(__CLASS__);
-
- // Clean up a little
- $this->removeNumberFormaters();
- $this->removeSystemArray();
- }
-
- /**
- * Creates an instance of this login class
- *
- * @return $loginInstance An instance of this login class
- */
- public final static function createAdminUserLogin () {
- // Get a new instance
- $loginInstance = new AdminUserLogin();
-
- // Return the instance
- return $loginInstance;
- }
-
- /**
- * Logins the user with the given request containing the credential. The
- * result of the login can be thrown by exception or, if prefered stored
- * in a boolean attribute which is then readable by a matching getter.
- *
- * @param $requestInstance An instance of a Requestable class
- * @param $responseInstance An instance of a Responseable class
- * @return void
- * @throws UserPasswordMismatchException If the supplied password did not
- * match with the stored password
- * @todo We need to add something here which will make more than one
- * @todo guest logins, users who are online but based on the same
- * @todo user account.
- */
- public function doLogin (Requestable $requestInstance, Responseable $responseInstance) {
- // By default no method is selected
- $method = null;
- $data = "";
-
- // Get a instance of the registry
- $userInstance = Registry::getRegistry()->getInstance('user');
-
- // Is there an instance?
- if (is_null($userInstance)) {
- // Get member class
- $userClass = $this->getConfigInstance()->readConfig('user_class');
-
- // Get a user instance
- $userInstance = call_user_func_array(array($userClass, 'createMemberByRequest'), array($requestInstance));
-
- // Remember this new instance in registry
- Registry::getRegistry()->addInstance($userInstance);
- } // END - if
-
- // Is the password correct?
- if ($userInstance->ifPasswordHashMatches($requestInstance) === false) {
- // Mismatching password
- throw new UserPasswordMismatchException(array($this, $userInstance), BaseUser::EXCEPTION_USER_PASS_MISMATCH);
- } // END - if
-
- // ToDo place
-
- // Now do the real login. This can be cookie- or session-based login
- // which depends on the admins setting then on the user's taste.
- // 1) Get a login helper instance
- $helperInstance = ObjectFactory::createObjectByConfiguredName('login_helper_class', array($requestInstance));
-
- // 2) Execute the login. This will now login...
- $helperInstance->executeLogin($responseInstance);
- }
-
- /**
- * Determines wether the login was fine. This is done by checking if 'login' instance is in registry
- *
- * @return $loginDone Wether the login was fine or not
- */
- public function ifLoginWasSuccessfull () {
- // Is the registry key there?
- $loginDone = (Registry::getRegistry()->getInstance('login') instanceof Registerable);
-
- // Return the result
- return $loginDone;
- }
-
- /**
- * Encrypt given request key or throw an exception if key was not found in
- * request
- *
- * @param $requestKey Key in request class
- * @return void
- */
- public function encryptPassword ($requestKey) {
- // Check if password is found in request
- if ($this->getRequestInstance()->isRequestElementSet($requestKey)) {
- // So encrypt the password and store it for later usage in
- // the request:
-
- // Get the plain password
- $plainPassword = $this->getRequestInstance()->getRequestElement($requestKey);
-
- // Get user instance
- $userInstance = Registry::getRegistry()->getInstance('user');
-
- // Get a crypto helper and hash the password
- $this->hashedPassword = ObjectFactory::createObjectByConfiguredName('crypto_class')->hashString($plainPassword, $userInstance->getPasswordHash());
-
- // Store the hash back in request
- $this->getRequestInstance()->setRequestElement('pass_hash', $this->hashedPassword);
- } // END - if
- }
-}
-
-// [EOF]
-?>
+++ /dev/null
-Deny from all
+++ /dev/null
-<?php
-/**
- * A helper for administration area login. This login helper first checks what
- * setting (cookie or session) the admin has choosen then overwrites it with the
- * setting from current user. The registry instance should hold an instance of
- * this user class at key 'user' else an exception will be thrown. After this
- * the setting from a login form will be taken as login method and be stored
- * in database for later usage.
- *
- * The user shall be able to choose "Default login method" or similar to use his
- * own login method.
- *
- * @author Roland Haeder <webmaster@ship-simu.org>
- * @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software
- * @license GNU GPL 3.0 or any newer version
- * @link http://www.ship-simu.org
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-class AdminLoginHelper extends BaseLoginHelper implements HelpableLogin {
- /**
- * The login method we shall choose
- */
- private $authMethod = "";
-
- // Exception constants
- const EXCEPTION_INVALID_USER_INSTANCE = 0x190;
-
- /**
- * Protected constructor
- *
- * @return void
- */
- protected function __construct () {
- // Call parent constructor
- parent::__construct(__CLASS__);
- }
-
- /**
- * Creates an instance of this class by given request instance
- *
- * @param $requestInstance An instance of a Requestable class
- * @return $helperInstance An instance of this helper class
- * @throws UserInstanceMissingException If the user instance in registry
- * is missing or invalid
- */
- public final static function createAdminLoginHelper (Requestable $requestInstance) {
- // Get a new instance first
- $helperInstance = new AdminLoginHelper();
-
- // Get a user instance from registry
- $userInstance = Registry::getRegistry()->getInstance('user');
-
- // Is this instance valid?
- if (!$userInstance instanceof ManageableAccount) {
- // Thrown an exception here
- throw new UserInstanceMissingException (array($helperInstance, 'user'), self::EXCEPTION_INVALID_USER_INSTANCE);
- } // END - if
-
- // Set default login method from config
- $helperInstance->setDefaultAuthMethod();
-
- // Set request instance
- $helperInstance->setRequestInstance($requestInstance);
-
- // Return the prepared instance
- return $helperInstance;
- }
-
- /**
- * Setter for default login method from config
- *
- * @return void
- */
- protected function setDefaultAuthMethod () {
- $this->authMethod = $this->getConfigInstance()->readConfig('auth_method_class');
- }
-
- /**
- * Execute the login request by given response instance. This instance can
- * be used for sending cookies or at least the session id out.
- *
- * @param $responseInstance An instance of a Responseable class
- * @return void
- */
- public function executeLogin (Responseable $responseInstance) {
- // Get an instance from the login method
- $loginInstance = ObjectFactory::createObjectByName($this->authMethod, array($responseInstance));
-
- // Set user cookie
- $loginInstance->setUserAuth($this->getRequestInstance()->getRequestElement('username'));
-
- // Set password cookie
- $loginInstance->setPasswordAuth($this->getRequestInstance()->getRequestElement('pass_hash'));
-
- // Remember this login instance for later usage
- Registry::getRegistry()->addInstance('login', $loginInstance);
- }
-}
-
-//
-?>
+++ /dev/null
-<?php
-/**
- * The application launcher
- *
- * @author Roland Haeder <webmaster@ship-simu.org>
- * @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software
- * @license GNU GPL 3.0 or any newer version
- * @link http://www.ship-simu.org
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-// Is there an application helper instance? We need the method main() for
-// maining the application
-$app = call_user_func_array(array(FrameworkConfiguration::getInstance()->readConfig('app_helper_class'), 'getInstance'), array());
-
-// Some sanity checks
-if ((empty($app)) || (is_null($app))) {
- // Something went wrong!
- ApplicationEntryPoint::app_die(sprintf("[Main:] The application <span class=\"app_name\">%s</span> could not be launched because the helper class <span class=\"class_name\">%s</span> is not loaded.",
- $application,
- FrameworkConfiguration::getInstance()->readConfig('app_helper_class')
- ));
-} elseif (!is_object($app)) {
- // No object!
- ApplicationEntryPoint::app_die(sprintf("[Main:] The application <span class=\"app_name\">%s</span> could not be launched because 'app' is not an object.",
- $application
- ));
-} elseif (!method_exists($app, FrameworkConfiguration::getInstance()->readConfig('entry_method'))) {
- // Method not found!
- ApplicationEntryPoint::app_die(sprintf("[Main:] The application <span class=\"app_name\">%s</span> could not be launched because the method <span class=\"method_name\">%s</span> is missing.",
- $application,
- FrameworkConfiguration::getInstance()->readConfig('entry_method')
- ));
-}
-
-// Call user function
-call_user_func_array(array($app, FrameworkConfiguration::getInstance()->readConfig('entry_method')), array());
-
-// [EOF]
-?>
+++ /dev/null
-Deny from all
+++ /dev/null
-Deny from all
+++ /dev/null
-<?php
-// Get helper instance
-$helperInstance = ObjectFactory::createObjectByConfiguredName('web_link_helper', array($this, 'logout_now', 'index.php?app={?app_short_name?}&page=logout'));
-
-// Set link text
-$helperInstance->addLinkWithTextById('logout_now');
-
-// Flush the content
-$helperInstance->flushContent();
-
-// Get helper instance
-$helperInstance = ObjectFactory::createObjectByConfiguredName('web_link_helper', array($this, 'return_login', 'index.php?app={?app_short_name?}&page=login_area'));
-
-// Set link text
-$helperInstance->addLinkWithTextById('return_login');
-
-// Flush the content
-$helperInstance->flushContent();
-
-// [EOC]
-?>
-<div id="logout_box">
- <div id="logout_header">
- Willst du dich wirklich aus dem <span class="app_name">{?app_full_name?}</span> ausloggen?
- </div>
-
- <div id="logouts">
- {?logout_now?} | {?return_login?}
- </div>
-</div>
+++ /dev/null
-<?php
-// Get helper instance for web forms. This will add the opening form-tag to
-// the helper's render cache which is simply a small variable in the class
-// BaseHelper.
-$helperInstance = ObjectFactory::createObjectByConfiguredName('web_form_helper', array($this, "admin_profile"));
-
-// Pre-fetch field data with a given registry key
-$helperInstance->prefetchValueInstance('user');
-
-// Password can only be changed when the old one is entered and new one twice!
-$helperInstance->addFormGroup('pass', "Neues Passwort einrichten:");
-$helperInstance->addFormSubGroup('pass', "Bitte gebe zum Ändern deines Passwortes zweimal das gewünschte neue Passwort ein.");
-$helperInstance->addFieldText('pass1', "Neues Passwort:");
-$helperInstance->addInputPasswordField('pass1');
-$helperInstance->addFieldText('pass2', "Neues Passwort, Wiederholung:");
-$helperInstance->addInputPasswordField('pass2');
-
-// Display current email
-$helperInstance->addFormNote('current_email', "Derzeitige Email-Adresse: <span class=\"persona_data\">".$helperInstance->getValueField('email')."</span>");
-
-// Only for changing email address
-if ($helperInstance->ifEmailChangeAllowed()) {
- $helperInstance->addFormGroup('email', "Änderung deiner Email-Addresse:");
- $helperInstance->addFormSubGroup('email', "Gebe nur deine Email-Adresse zweimal ein, wenn du diese ändern möchtest!");
- $helperInstance->addFieldText('email1', "Email-Adresse:");
- $helperInstance->addInputTextField('email1');
- $helperInstance->addFieldText('email2', "Wiederholung Email-Adresse:");
- $helperInstance->addInputTextField('email2');
-
- if ($helperInstance->ifEmailMustBeUnique()) {
- $helperInstance->addFormNote('email', "Die von dir eingegebene Email-Adresse darf nur einmal im <span class=\"app_name\">{?app_full_name?}</span> verwendet worden sein.");
- } // END - Unique email addresses
-
- if ($helperInstance->ifEmailChangeRequireConfirmation()) {
- $helperInstance->addFormNote('confirm', "Es wird ein Bestätigungslink an deine neue Email-Adresse gesendet. Bitte klicke diesen dann möglichst schnell an.");
- } // END - Change requires confirmation
-} // END - email change allowed
-
-$helperInstance->addFormGroup('profile', "Hier kannst du deine Profildaten ändern.");
-
-// Persoenliche Daten mit in der Anmeldung abfragen?
-if ($helperInstance->ifRegisterIncludesPersonaData()) {
- $helperInstance->addFormSubGroup('persona', "Wenn du magst, dann vervollständige deine komplette Adresse mit deinem Namen.");
- $helperInstance->addFieldText('surname', "Dein Vorname:");
- $helperInstance->addInputTextFieldWithDefault('surname');
- $helperInstance->addFieldText('family', "Dein Nachname:");
- $helperInstance->addInputTextFieldWithDefault('family');
- $helperInstance->addFieldText('street', "Strasse und Hausnummer:");
- $helperInstance->addInputTextFieldWithDefault('street');
- $helperInstance->addFieldText('city', "Wohnort:");
- $helperInstance->addInputTextFieldWithDefault('city');
-} // END - Persona data
-
-$helperInstance->addFormSubGroup('zip', "Magst du uns auch deine Postleitzahl verraten?");
-$helperInstance->addFieldText('zip', "Postleitzahl:");
-$helperInstance->addInputTextFieldWithDefault('zip');
-
-$helperInstance->addFormSubGroup('chat', "Gebe hier deine Nicknames bzw. Nummern an:");
-
-if ($helperInstance->ifChatEnabled('icq')) {
- $helperInstance->addFieldText('icq', "ICQ-Nummer:");
- $helperInstance->addInputTextFieldWithDefault('icq');
-} // END - if
-
-if ($helperInstance->ifChatEnabled('jabber')) {
- $helperInstance->addFieldText('jabber', "Jabber:");
- $helperInstance->addInputTextFieldWithDefault('jabber');
-} // END - if
-
-if ($helperInstance->ifChatEnabled('yahoo')) {
- $helperInstance->addFieldText('yahoo', "Yahoo!:");
- $helperInstance->addInputTextFieldWithDefault('yahoo');
-} // END - if
-
-if ($helperInstance->ifChatEnabled('aol')) {
- $helperInstance->addFieldText('aol', "AOL-Screenname:");
- $helperInstance->addInputTextFieldWithDefault('aol');
-} // END - if
-
-if ($helperInstance->ifChatEnabled('msn')) {
- $helperInstance->addFieldText('msn', "MSN:");
- $helperInstance->addInputTextFieldWithDefault('msn');
-} // END - if
-
-if (!$helperInstance->ifRegisterRequiresEmailVerification()) {
- $helperInstance->addFormExtraNote(1, "Die Benachrichtigungen per sind im Loginbereich verfeinerbar, welche du genau haben willst.");
-} // END - Extra note
-
-// Rules already accepted?
-if ($helperInstance->ifRulesHaveChanged()) {
- $helperInstance->addFormGroup('rules', "Bitte lese dir die Administrationsregeln gut durch und kreuze dann "Ja, ich akzeptiere die aktuellen Administrationsregeln" an.");
- $helperInstance->addFieldText('rules', "Ja, ich akzeptiere die aktuellen Administrationsregeln:");
- $helperInstance->addInputCheckboxField('rules', false);
-} else {
- $helperInstance->addFormNote('rules_accepted', "Du hast die aktuellen Administrationsregeln akzeptiert. Vielen Dank!");
- $helperInstance->addInputHiddenField('rules', "1");
-}
-
-// Ask again for current account password
-$helperInstance->addFormGroup('pass_old', "Bitte gebe zur Bestätigung der Änderungen dein derzeitiges Passwort ein.");
-$helperInstance->addFieldText('pass_old', "Altes Passwort:");
-$helperInstance->addInputPasswordField('pass_old');
-
-// Abschliessender Hinweis und Abschluss des Formulars
-$helperInstance->addFormGroup('buttons', "Sind alle Daten nun korrekt eingegeben? Dann sende sie mit einem Klick einfach ab!");
-$helperInstance->addInputResetButton("Alles nochmal eingeben");
-$helperInstance->addInputSubmitButton("Accountdaten aktualisieren");
-$helperInstance->addFormNote('data_protection', "Deine Daten werden nach den gültigen Datenschutzgesetzen gespeichert und werden nicht an Dritte weitergegeben. Weiteres dazu siehe Link "Datenschutz".");
-$helperInstance->flushContent();
-
-// [EOC]
-?>
-<div id="content_header">
- Deine Profildaten bearbeiten
-</div>
-
-<div id="profile_box">
- {?admin_profile?}
-</div>
+++ /dev/null
-<?php
-// Get helper instance for web forms. This will add the opening form-tag to
-// the helper's render cache which is simply a small variable in the class
-// BaseHelper.
-$helperInstance = WebFormHelper::createWebFormHelper($this, "resend");
-
-// Pre-fetch field data with a given registry key
-$helperInstance->prefetchValueInstance('user');
-
-// Add submit button or notice
-if ($helperInstance->ifUserAccountUnconfirmed()) {
- // Add submit button
- $helperInstance->addInputHiddenFieldWithDefault('email');
- $helperInstance->addInputSubmitButton("Bestätigungslink erneut aussenden");
-} elseif ($helperInstance->ifUserAccountLocked()) {
- // Account is locked
- $helperInstance->addFormNote('status_locked', "Dein Account wurde gesperrt! Grund der Sperre:
- <span id=\"lock_reason\">".$helperInstance->getValueField('lock_reason')."</span>
- Bitte melde dich beim Support, damit dieser dir weiterhelfen kann."
- );
-}
-
-// Flush content and automatically close the form
-$helperInstance->flushContent();
-
-if ($helperInstance->ifUserAccountUnconfirmed()) {
- // Build the form for confirmation
- $helperInstance = WebFormHelper::createWebFormHelper($this, "confirm_code");
-
- // Add code box
- $helperInstance->addFormGroup('code', "Bitte gebe hier den Bestätigungscode aus der Willkommensemail ein. Solltest du diese nicht erhalten haben, kannst du dir diesen jetzt zusenden lassen.");
- $helperInstance->addFieldText('code', "Bestätigungscode aus der Mail:");
- $helperInstance->addInputTextField('code');
-
- // Add submit button
- $helperInstance->addFormGroup('buttons', "Bitte einmal abschicken und das Ergebnis abwarten!");
- $helperInstance->addInputResetButton("Nochmal eingeben");
- $helperInstance->addInputSubmitButton("Bestätigungscode absenden");
-
- // Flush content and automatically close the form
- $helperInstance->flushContent();
-} // END - if
-?>
-<div id="content_header">
- Problem mit deinem Account gefunden:
-</div>
-
-<div id="status_box">
- Du bist möglicherweise für deine ausgewählte Aktion nicht
- berechtigt oder du hast noch deine Email-Adresse nicht bestätigt. Du
- kannst dir nun den Bestätigungslink erneut aussenden lassen, oder den
- Bestätigungscode unten eingeben.
-
- <div id="resend_box">
- {?resend?}
- </div>
-
- <div id="confirm_code_box">
- {?confirm_code?}
- </div>
-</div>
+++ /dev/null
-<div id="overview_frame">
- {?admin_app_list?}
-</div>
-
-<div id="overview_frame">
- {?admin_overview?}
-</div>
-
-<div id="updates_frame">
- <div id="updates_header">
- {?updates_header?}
- </div>
-
- <div id="updates_content">
- {?updates_content?}
- </div>
-</div>
+++ /dev/null
-<?php
-// Get helper instance for web forms. This will add the opening form-tag to
-// the helper's render cache which is simply a small variable in the class
-// BaseHelper.
-$helperInstance = ObjectFactory::createObjectByConfiguredName('web_form_helper', array($this, "resend"));
-
-// Pre-fetch field data with a given registry key
-$helperInstance->prefetchValueInstance('user');
-
-// Add submit button or notice
-if ($helperInstance->ifUserAccountUnconfirmed()) {
- // Add submit button
- $helperInstance->addInputHiddenFieldWithDefault('email');
- $helperInstance->addInputSubmitButton("Bestätigungslink erneut aussenden");
-} elseif ($helperInstance->ifUserAccountLocked()) {
- // Account is locked
- $helperInstance->addFormNote('status_locked', "Dein Account wurde gesperrt! Grund der Sperre:
- <span id=\"lock_reason\">".$helperInstance->getValueField('lock_reason')."</span>
- Bitte melde dich beim Support, damit dieser dir weiterhelfen kann."
- );
-}
-
-// Flush content and automatically close the form
-$helperInstance->flushContent();
-
-if ($helperInstance->ifUserAccountUnconfirmed()) {
- // Build the form for confirmation
- $helperInstance = ObjectFactory::createObjectByConfiguredName('web_form_helper', array($this, "confirm_code"));
-
- // Add code box
- $helperInstance->addFormGroup('code', "Bitte gebe hier den Bestätigungscode aus der Willkommensemail ein. Solltest du diese nicht erhalten haben, kannst du dir diesen jetzt zusenden lassen.");
- $helperInstance->addFieldText('code', "Bestätigungscode aus der Mail:");
- $helperInstance->addInputTextField('code');
-
- // Add submit button
- $helperInstance->addFormGroup('buttons', "Bitte einmal abschicken und das Ergebnis abwarten!");
- $helperInstance->addInputResetButton("Nochmal eingeben");
- $helperInstance->addInputSubmitButton("Bestätigungscode absenden");
-
- // Flush content and automatically close the form
- $helperInstance->flushContent();
-} // END - if
-
-// [EOC]
-?>
-<div id="content_header">
- Problem mit deinem Account gefunden:
-</div>
-
-<div id="status_box">
- Du bist möglicherweise für deine ausgewählte Aktion nicht
- berechtigt oder du hast noch deine Email-Adresse nicht bestätigt. Du
- kannst dir nun den Bestätigungslink erneut aussenden lassen, oder den
- Bestätigungscode unten eingeben.
-
- <div id="resend_box">
- {?resend?}
- </div>
-
- <div id="confirm_code_box">
- {?confirm_code?}
- </div>
-</div>
+++ /dev/null
-{?header?}
-
-<div id="main_header">
- {?admin_header?}
-</div>
-
-<div id="menu">
- {?menu?}
-</div>
-
-<div id="main_content">
- {?content?}
-</div>
-
-<div id="main_footer">
- {?admin_footer?}
-</div>
-
-{?footer?}
+++ /dev/null
-<?php
-// Get a helper instance for the profile link (and maybe later more!)
-$helperInstance = ObjectFactory::createObjectByConfiguredName('web_link_helper', array($this, 'profile', 'index.php?app={?app_short_name?}&page=login_area'));
-
-// Prefetch user instance
-$helperInstance->prefetchValueInstance('user');
-
-// Flush the content out
-$helperInstance->flushContent();
-
-// [EOC]
-?>
-<div class="user_name_div">
- Nickname: <span class="user_name">{?block_username?}</span>
-</div>
-<div class="user_status_div">
- Account-Status: <span class="user_status">{?block_user_status?}</span>
-</div>
-<div class="user_profile_div">
- {?profile?}
-</div>
-<div class="user_registered_div">
- Angemeldet seit: <span class="registered">{?block_registered?}</span>
-</div>
+++ /dev/null
-<?php
-// Get a helper instance without a form tag
-$captchaHelper = ObjectFactory::createObjectByConfiguredName('web_form_helper', array($this, 'captcha_code', false, false));
-
-// Add input field with text for CAPTCHA code
-$captchaHelper->addFieldText('captcha_code', "Bitte wiederhole den Code:");
-$captchaHelper->addInputTextField('c_code');
-
-// Add hidden field with validation hash
-$captchaHelper->addInputHiddenField('hash', $this->readVariable('captcha_hash'));
-
-// Flush content
-$captchaHelper->flushContent();
-
-// [EOC]
-?>
-<div class="captcha_image">
- <img src="$config[base_url]/index.php?app={?app_short_name?}&page=code_captcha&encrypt={?encrypted_code?}&request=image" alt="CAPTCHA-Bild" title="CAPTCHA-Bild" class="captcha_img" />
-</div>
-<div class="captcha_code">
- {?captcha_code?}
-</div>
+++ /dev/null
-</div> <!-- masterbox //-->
-
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
-<head>
- <title>
- {?app_full_name?} - {?title?}
- </title>
-
- <meta name="author" content="$config[meta_author]" />
- <meta name="publisher" content="$config[meta_publisher]" />
- <meta name="keywords" content="$config[meta_keywords]" />
- <meta name="robots" content="index,follow" />
- <meta name="description" content="$config[meta_description]" />
- <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
- <meta http-equiv="content-style-type" content="text/css" />
- <meta http-equiv="content-script-type" content="text/javascript" />
- <meta http-equiv="language" content="de" />
- {?header_extras_hook?}
-</head>
-
-<body>
-<div id="masterbox">
+++ /dev/null
-<div id="content_header">
- Willkommen zum <span class="app_name">{?app_full_name?}</span>!
-</div>
+++ /dev/null
-<?php
-// Get helper instance
-$helperInstance = ObjectFactory::createObjectByConfiguredName('web_link_helper', array($this, 'login_retry', 'index.php?app={?app_short_name?}&page=login'));
-
-// Set link text
-$helperInstance->addLinkWithTextById('login_retry');
-
-// Flush the content
-$helperInstance->flushContent();
-
-// [EOC]
-?>
-<div id="content_header">
- Du bist nicht mehr im Spiel eingeloggt!
-</div>
-
-<div id="content_body">
- <div id="login_failed_header">
- Du bist nicht mehr in <span class="app_name">{?app_full_name?}</span> eingeloggt.
- Dies kann verschiedene Gründe haben:
- </div>
-
- <ol id="login_failed_list">
- <li>Dein Browser nimmt keine Cookies an.</li>
- <li>Du hast den Loginbereich aus deinen Bookmarks/Favoriten aufgerufen
- und die Cookies sind gelöscht.</li>
- <li>Es besteht ein Problem mit dem Server, wofür du meistens nichts
- kannst. Bitte kontaktiere den Support, falls dieses Problem
- weiterhin besteht.</li>
- </ol>
-
- <div id="login_failed_footer">
- Wenn du den Support kontaktierst, halte bitte sämtliche relevante
- Informationen - <span class="important_note">nicht aber dein Passwort</span>
- - bereit. Du kannst auch einen Screenshot dieser Seite anfertigen und dem
- Support diesen senden!
- </div>
-</div>
-
-<div id="content_footer">
- <div id="login_retry">
- {?login_retry?}
- </div>
-
- Vielen Dank für deine Mitarbeit! :-)
-</div>
+++ /dev/null
-<?php
-// Get helper instance for web forms. This will add the opening form-tag to
-// the helper's render cache which is simply a small variable in the class
-// BaseHelper.
-$helperInstance = ObjectFactory::createObjectByConfiguredName('web_form_helper', array($this, 'admin_user_login'));
-
-// Formular deaktiviert?
-if ($helperInstance->ifLoginIsEnabled()) {
- // Formular ist aktiv
- $helperInstance->addFormGroup('login', "Gebe hier deine Logindaten ein:");
-
- // Welches Loginverfahren wurde konfiguriert?
- if ($helperInstance->ifLoginWithUsername()) {
- // Login mit Username
- $helperInstance->addFormSubGroup('username', "Bitte mit deinem Nickname einloggen.");
- $helperInstance->addFieldText('username', "Dein Nickname:");
- $helperInstance->addInputTextField('username');
- } elseif ($helperInstance->ifLoginWithEmail()) {
- // Login mit Email
- $helperInstance->addFormSubGroup('email', "Bitte mit deiner Email-Adresse einloggen.");
- $helperInstance->addFieldText('email', "Deine Email-Addresse:");
- $helperInstance->addInputTextField('email');
- } else {
- // Login mit Email/Username
- $helperInstance->addFormSubGroup('user_email', "Bitte mit deinem Nickname oder Email-Adresse einloggen.");
- $helperInstance->addFieldText('user_email', "Dein Nickname/Email:");
- $helperInstance->addInputTextField('user_email');
- }
-
- $helperInstance->addFormSubGroup('pass', "Gebe dein Passwort von der Anmeldung ein.");
- $helperInstance->addFieldText('pass', "Dein Passwort:");
- $helperInstance->addInputPasswordField('pass');
-
- // CAPTCHA enabled?
- if ($helperInstance->ifFormSecuredWithCaptcha()) {
- $helperInstance->addFormGroup('captcha_user', "Das Benutzer-Login ist durch ein CAPTCHA geschützt. Bitte wiederhole den angezeigten Code, damit du dich einloggen kannst.");
- $helperInstance->addCaptcha();
- } // END - if
-
- // Submit buttons
- $helperInstance->addFormGroup('buttons_user', "Alles richtig eingegeben?");
- $helperInstance->addInputResetButton("Formular leeren");
- $helperInstance->addInputSubmitButton("Zum {?app_full_name?} einloggen");
-} else {
- // Formular deaktiviert
- $helperInstance->addFormNote('form_deactivated', "Einloggen in den <span class=\"app_name\">{?app_full_name?}</span> ist deaktiviert worden. Bitte komme später noch mal wieder.");
- $helperInstance->addFormNote('admin_notice', "Nachricht vom Admin: <span id=\"disabled_reason\">".$this->getConfigInstance()->readConfig('login_disabled_reason')."</span>");
-}
-
-// Formular schliessen
-$helperInstance->flushContent();
-
-// Get helper instance
-$helperInstance = ObjectFactory::createObjectByConfiguredName('web_link_helper', array($this, 'register_login_form', 'index.php?app={?app_short_name?}&page=register'));
-
-// Set link text
-$helperInstance->addLinkWithTextById('register_login');
-
-// Flush the content
-$helperInstance->flushContent();
-
-// [EOC]
-?>
-<div id="content_header">
- Einloggen zu <span class="app_name">{?app_full_name?}</span>
-</div>
-
-<div id="content_body">
- <div id="login_box">
- {?admin_user_login?}
- </div>
-</div>
-
-<div id="content_footer">
- Noch kein Loginaccount? {?register_login_form?}
-</div>
+++ /dev/null
-<?php
-///////////////////////////////
-// Assign personal user data //
-///////////////////////////////
-
-// Get a new instance for personal data
-$blockInstance = ObjectFactory::createObjectByConfiguredName('web_block_helper', array($this, 'persona_data'));
-
-// Set the data source instance which must exist in registry
-$blockInstance->prefetchValueInstance('user');
-
-// Assign fields with template variables
-$blockInstance->assignField('username');
-$blockInstance->assignFieldWithFilter('user_status', "user_status_translator");
-
-// Shall we include registration date?
-if ($blockInstance->ifIncludeRegistrationStamp()) {
- // Then assign it as well!
- $blockInstance->assignFieldWithFilter('registered', 'formatTimestamp');
-} // END - if
-
-// Flush the content out to a template variable
-$blockInstance->flushContent();
-
-// Get helper instance
-$linkInstance = ObjectFactory::createObjectByConfiguredName('web_link_helper', array($this, 'logout_action', 'index.php?app={?app_short_name?}&page=login_area'));
-
-// Add action
-$linkInstance->addActionLinkById('logout', 'logout');
-
-// Flush the content
-$linkInstance->flushContent();
-
-// [EOC]
-?>
-<div id="content_header">
- Willkommen zum <span class=\"app_name\">{?app_full_name?}</span>!
-</div>
-
-<div id="content_body">
- {?login_content?}
-</div>
-
-<div id="persona_data" title="Informationen zum Adminaccount">
- <div id="persona_header">
- Account-Infos:
- </div>
-
- <div id="persona_body">
- {?persona_data?}
- </div>
-
- <div id="logout">
- {?logout_action?}
- </div>
-</div>
+++ /dev/null
-<?php
-// Get helper instance
-$helperInstance = ObjectFactory::createObjectByConfiguredName('web_link_helper', array($this, 'relogin', 'index.php?app={?app_short_name?}&page=login'));
-
-// Set link text
-$helperInstance->addLinkWithTextById('relogin');
-
-// Flush the content
-$helperInstance->flushContent();
-
-// [EOC]
-?>
-<div id="content_header">
- Du bist jetzt aus dem <span class=\"app_name\">{?app_full_name?}</span> ausgeloggt!
-</div>
-
-<div id="content_body">
- Du kannst dich nun {?relogin?} oder weiter auf unseren Seiten bleiben. ;-)
-</div>
+++ /dev/null
-<div class="debug_header">
- Mail-Debug-Ausgabe:
-</div>
-
-<div class="mail_header">
- <div class="mail_header_line">
- <span class="mail_sender">Von:</span> <span class="mail_info">{?sender?}</span>
- </div>
- <div class="mail_header_line">
- <span class="mail_recipient">An:</span> <span class="mail_info">{?recipient?}</span>
- </div>
- <div class="mail_header_line">
- <span class="mail_subject">Betreff:</span> <span class="mail_info">{?subject?}</span>
- </div>
-</div>
-
-<div class="mail_text_box">
- <div class="mail_message">
- Nachricht:
- </div>
-
- <div class="mail_content">
- {?message?}
- </div>
-</div>
+++ /dev/null
-<?php
-// Get helper instance for web forms. This will add the opening form-tag to
-// the helper's render cache which is simply a small variable in the class
-// BaseHelper.
-$helperInstance = ObjectFactory::createObjectByConfiguredName('web_form_helper', array($this, 'admin_register'));
-
-// Always ask at least for nickname and password
-$helperInstance->addFormGroup('login', "Bitte gebe hier gewünschten Nickname und dein Zugangspasswort ein.");
-$helperInstance->addFormSubGroup('username', "Dein Nickname wird erst nach Absenden des Formulares geprüft. Später bauen wir dann einen automatischen Test ein, der dir sofort zeigt, ob der Nickname bereits vergeben ist.");
-$helperInstance->addFieldText('username', "Nickname im <span class=\"app_name\">{?app_full_name?}</span>:");
-$helperInstance->addInputTextField('username');
-$helperInstance->addFormSubGroup('pass', "Dein Passwort sollte nicht zu leicht erratbar sein. Später bauen wir hier noch einen automatischen Test ein, der dir sofort die Passwortstärke anzeigt.");
-$helperInstance->addFieldText('pass1', "Passwort:");
-$helperInstance->addInputPasswordField('pass1');
-$helperInstance->addFieldText('pass2', "Passwortwiederholung:");
-$helperInstance->addInputPasswordField('pass2');
-
-if ($helperInstance->ifRegisterRequiresEmailVerification()) {
- $helperInstance->addFormGroup('email', "Bitte gebe deine Email zweimal (ein zweites Mal zur Bestätigung) ein, damit wir dir deinen Freischaltlink zusenden können.");
- $helperInstance->addFieldText('email1', "Email-Adresse:");
- $helperInstance->addInputTextField('email1');
- $helperInstance->addFieldText('email2', "Wiederholung Email-Adresse:");
- $helperInstance->addInputTextField('email2');
-
- if ($helperInstance->ifEmailMustBeUnique()) {
- $helperInstance->addFormNote('email', "Die von dir eingegebene Email-Adresse darf nur einmal im <span class=\"app_name\">{?app_full_name?}</span> verwendet worden sein.");
- } // END - Unique email addresses
-
-} // END - email verification
-
-if ($helperInstance->ifRegisterIncludesProfile()) {
- $helperInstance->addFormGroup('profile', "Hier kannst du zusätzlich deine Profildaten vorweg eingeben, du kannst sie aber auch nach dem Login vervollständigen!");
-
- if (!$helperInstance->ifRegisterRequiresEmailVerification()) {
- $helperInstance->addFormSubGroup('email', "Die Angabe deiner Email-Adresse ist nur dann nötig, wenn du auch Email-Benachrichtigungen (<span id=\"add_note\">*1</span>) haben möchtest.");
- $helperInstance->addFieldText('email1', "Email-Adresse:");
- $helperInstance->addInputTextField('email1');
- } // END - No email verification
-
- // Persoenliche Daten mit in der Anmeldung abfragen?
- if ($helperInstance->ifRegisterIncludesPersonaData()) {
- $helperInstance->addFormSubGroup('persona', "Wenn du magst, dann vervollständige deine komplette Adresse mit deinem Namen.");
- $helperInstance->addFieldText('surname', "Dein Vorname:");
- $helperInstance->addInputTextField('surname');
- $helperInstance->addFieldText('family', "Dein Nachname:");
- $helperInstance->addInputTextField('family');
- $helperInstance->addFieldText('street', "Strasse und Hausnummer:");
- $helperInstance->addInputTextField('street');
- $helperInstance->addFieldText('city', "Wohnort:");
- $helperInstance->addInputTextField('city');
- } // END - Persona data
-
- $helperInstance->addFormSubGroup('zip', "Magst du uns auch deine Postleitzahl verraten?");
- $helperInstance->addFieldText('zip', "Postleitzahl:");
- $helperInstance->addInputTextField('zip');
-
- $helperInstance->addFormSubGroup('chat', "Gebe hier deine Nicknames bzw. Nummern an:");
-
- if ($helperInstance->ifChatEnabled('icq')) {
- $helperInstance->addFieldText('icq', "ICQ-Nummer:");
- $helperInstance->addInputTextField('icq');
- } // END - if
-
- if ($helperInstance->ifChatEnabled('jabber')) {
- $helperInstance->addFieldText('jabber', "Jabber:");
- $helperInstance->addInputTextField('jabber');
- } // END - if
-
- if ($helperInstance->ifChatEnabled('yahoo')) {
- $helperInstance->addFieldText('yahoo', "Yahoo!:");
- $helperInstance->addInputTextField('yahoo');
- } // END - if
-
- if ($helperInstance->ifChatEnabled('aol')) {
- $helperInstance->addFieldText('aol', "AOL-Screenname:");
- $helperInstance->addInputTextField('aol');
- } // END - if
-
- if ($helperInstance->ifChatEnabled('msn')) {
- $helperInstance->addFieldText('msn', "MSN:");
- $helperInstance->addInputTextField('msn');
- } // END - if
-
- if (!$helperInstance->ifRegisterRequiresEmailVerification()) {
- $helperInstance->addFormExtraNote(1, "Die Benachrichtigungen per sind im Loginbereich verfeinerbar, welche du genau haben willst.");
- } // END - Extra note
-
-} // END - ask profile data
-
-// Posting-/Kommentarregeln abfragen
-$helperInstance->addFormGroup('rules', "Bitte lese dir die Administrationsregeln gut durch und kreuze dann "Ja, ich akzeptiere die aktuellen Administrationsregeln" an.");
-$helperInstance->addFieldText('rules', "Ja, ich akzeptiere die aktuellen Administrationsregeln:");
-$helperInstance->addInputCheckboxField('rules', false);
-
-// Add CAPTCHA?
-if ($helperInstance->ifFormSecuredWithCaptcha()) {
- $helperInstance->addFormGroup('captcha', "Bitte wiederhole den angezeigten Code damit die Anmeldung abgeschlossen werden kann.");
- $helperInstance->addCaptcha();
-} // END - if
-
-// Final note and submit buttons
-$helperInstance->addFormGroup('buttons', "Wenn du alle benötigten Felder korrekt ausgefüt hast, kannst du die Anmeldung abschliessen.");
-
-$helperInstance->addInputResetButton("Alles nochmal eingeben");
-$helperInstance->addInputSubmitButton("Anmeldung zum {?app_full_name?} abschliessen");
-$helperInstance->addFormNote('data_protection', "Deine Daten werden nach den gültigen Datenschutzgesetzen gespeichert und werden nicht an Dritte weitergegeben. Weiteres dazu siehe Link "Datenschutz".");
-$helperInstance->flushContent();
-
-// [EOC]
-?>
-<div id="content_header">
- Anmeldung bei <span class="app_name">{?app_full_name?}</span>
-</div>
-
-<div id="register_box">
- {?admin_register?}
-</div>
+++ /dev/null
-Deny from all
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" ?>
-<text-mail>
- <mail-data>
- <sender-address value="$config[admin_email]" />
- <subject-line value="Anforderung deines Bestätigungslinks" />
- <recipient-address value="{?email?}" />
- <message>
- <![CDATA[Hallo {?username?}!
-
-Du (oder ein anderer) hattest soeben deinen Bestätigungslink erneut angefordert. Solltest du dies nicht gewesen sein, bitten wir dich den Vorfall zu entschuldigen.
-
-Hier ist nun dein Bestätigungslink. Der alte aus der Anmeldemail ist somit nicht mehr gültig!
-
-$config[base_url]/index.php?app={?app_short_name?}&page=confirm&username={?username?}&confirm={?confirm_hash?}
-
-Solltest du die URL nicht anklicken können, versuche diese in die Adresszeile deines Browsers zu kopieren.
-
-Alternativ kannst du im Loginbereich unter Bestätigungscode den folgenden Code reinkopieren oder eingeben:
-
-{?confirm_hash?}
-
-Solltest du Fragen dazu oder Probleme mit der Bestätigung haben, so melde dich bitte beim Support-Team.
-
-Mit freundlichen Grüßen,
- Dein {?app_short_name?}-Team
-
-{?mail_footer?}]]>
- </message>
- </mail-data>
-</text-mail>
+++ /dev/null
-Deny from all
+++ /dev/null
-<!-- Put your ads code here which shall be shown below the navigation //-->
+++ /dev/null
-<div id="selector_content">
- <strong>TODO:</strong> Diese Anwendung sollte eigentlich nicht auswählbar sein.
-</div>
+++ /dev/null
-Deny from all
+++ /dev/null
-Deny from all
+++ /dev/null
-Deny from all
+++ /dev/null
-Deny from all
+++ /dev/null
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<image>
- <type value="{?image_type?}" />
- <base>
- <name value="{?image_name?}" />
- </base>
- <resolution>
- <width value="{?image_width?}" />
- <height value="{?image_height?}" />
- </resolution>
- <background-color>
- <red value="{?image_bg_red?}" />
- <green value="{?image_bg_green?}" />
- <blue value="{?image_bg_blue?}" />
- </background-color>
- <foreground-color>
- <red value="{?image_fg_red?}" />
- <green value="{?image_fg_green?}" />
- <blue value="{?image_fg_blue?}" />
- </foreground-color>
- <image-string value="groupable">
- <string-name value="{?image_string_name?}" />
- <x value="{?image_x?}" />
- <y value="{?image_y?}" />
- <font-size value="{?image_size?}" />
- <text value="{?image_string?}" />
- </image-string>
-</image>
+++ /dev/null
-<?php
-// Needed in every image template to initialy set the image type
-$helper = ImageHelper::createImageHelper($this, "png");
-$helper->setImageName("code_captcha");
-$helper->setBaseImage("base_code");
-
-// Set image dimensions
-$helper->setWidth(100);
-$helper->setHeight(50);
-
-// Get random number
-$rand = $helper->getRngInstance()->randomNumber(0, 6);
-
-// Background and foreground color
-switch ($rand) {
- case 1:
- // First varriant
- $helper->setBackgroundColorRedGreenBlue('rand', 0x90 , 0x00 );
- $helper->setForegroundColorRedGreenBlue(0x00 , 0xff , 'rand');
- break;
-
- case 2:
- // Second varriant
- $helper->setBackgroundColorRedGreenBlue(0x90 , 'rand', 0x00 );
- $helper->setForegroundColorRedGreenBlue(0xff , 0x00 , 'rand');
- break;
-
- case 3:
- // Third varriant
- $helper->setBackgroundColorRedGreenBlue('rand', 0x00 , 0x90 );
- $helper->setForegroundColorRedGreenBlue(0x00 , 'rand', 0xff );
- break;
-
- case 4:
- // Forth varriant
- $helper->setBackgroundColorRedGreenBlue(0x00 , 0x90 , 'rand');
- $helper->setForegroundColorRedGreenBlue(0x00 , 'rand', 0xa0 );
- break;
-
- case 5:
- // Fith varriant
- $helper->setBackgroundColorRedGreenBlue('rand', 0x00 , 0x90 );
- $helper->setForegroundColorRedGreenBlue(0x00 , 0xe0 , 'rand');
- break;
-
- default:
- // Last varriant
- $helper->setBackgroundColorRedGreenBlue(0x00 , 'rand', 0x90 );
- $helper->setForegroundColorRedGreenBlue(0xff , 0x00 , 'rand');
- break;
-}
-
-// Random X/Y factors...
-$xRand = $helper->getRngInstance()->randomNumber(0, 45);
-$yRand = $helper->getRngInstance()->randomNumber(0, 25);
-
-// Add code
-$helper->addTextLine("code");
-$helper->setCoord((5 + $xRand), (5 + $yRand));
-$helper->setFontSize('rand');
-$helper->setImageString("{?decrypted_code?}");
-
-// Only for debug!
-/*
-$helper->addTextLine("debug");
-$helper->setCoord(90, 35);
-$helper->setFontSize(3);
-$helper->setImageString($rand);
-*/
-
-// Flush content to the template engine
-$helper->flushContent();
-
-// Comment this out if image is done
-//$this->debugInstance();
-
-// [EOF]
-?>
+++ /dev/null
-#!/bin/sh
-
-echo "$0: Cleaning up..."
-rm -f templates/images/_cache/*.png application/*/templates/images/_cache/*.png
-
-echo "$0: All done."
+++ /dev/null
-Deny from all
+++ /dev/null
-Deny from all
+++ /dev/null
-Deny from all
+++ /dev/null
-Deny from all
+++ /dev/null
-Deny from all
+++ /dev/null
-Deny from all
+++ /dev/null
-Deny from all
+++ /dev/null
-Deny from all
+++ /dev/null
-For PHP scripts except templates and compileable templates see COPYING.software.
-
-For documents see COPYING.documents.
-
-The rest of the software (shell scripts, templates, code templates) are given away
-"AS IS" and "WITHOUT ANY WARRANTY". So it shall be public domain.
+++ /dev/null
- GNU Free Documentation License
- Version 1.2, November 2002
-
-
- Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
-0. PREAMBLE
-
-The purpose of this License is to make a manual, textbook, or other
-functional and useful document "free" in the sense of freedom: to
-assure everyone the effective freedom to copy and redistribute it,
-with or without modifying it, either commercially or noncommercially.
-Secondarily, this License preserves for the author and publisher a way
-to get credit for their work, while not being considered responsible
-for modifications made by others.
-
-This License is a kind of "copyleft", which means that derivative
-works of the document must themselves be free in the same sense. It
-complements the GNU General Public License, which is a copyleft
-license designed for free software.
-
-We have designed this License in order to use it for manuals for free
-software, because free software needs free documentation: a free
-program should come with manuals providing the same freedoms that the
-software does. But this License is not limited to software manuals;
-it can be used for any textual work, regardless of subject matter or
-whether it is published as a printed book. We recommend this License
-principally for works whose purpose is instruction or reference.
-
-
-1. APPLICABILITY AND DEFINITIONS
-
-This License applies to any manual or other work, in any medium, that
-contains a notice placed by the copyright holder saying it can be
-distributed under the terms of this License. Such a notice grants a
-world-wide, royalty-free license, unlimited in duration, to use that
-work under the conditions stated herein. The "Document", below,
-refers to any such manual or work. Any member of the public is a
-licensee, and is addressed as "you". You accept the license if you
-copy, modify or distribute the work in a way requiring permission
-under copyright law.
-
-A "Modified Version" of the Document means any work containing the
-Document or a portion of it, either copied verbatim, or with
-modifications and/or translated into another language.
-
-A "Secondary Section" is a named appendix or a front-matter section of
-the Document that deals exclusively with the relationship of the
-publishers or authors of the Document to the Document's overall subject
-(or to related matters) and contains nothing that could fall directly
-within that overall subject. (Thus, if the Document is in part a
-textbook of mathematics, a Secondary Section may not explain any
-mathematics.) The relationship could be a matter of historical
-connection with the subject or with related matters, or of legal,
-commercial, philosophical, ethical or political position regarding
-them.
-
-The "Invariant Sections" are certain Secondary Sections whose titles
-are designated, as being those of Invariant Sections, in the notice
-that says that the Document is released under this License. If a
-section does not fit the above definition of Secondary then it is not
-allowed to be designated as Invariant. The Document may contain zero
-Invariant Sections. If the Document does not identify any Invariant
-Sections then there are none.
-
-The "Cover Texts" are certain short passages of text that are listed,
-as Front-Cover Texts or Back-Cover Texts, in the notice that says that
-the Document is released under this License. A Front-Cover Text may
-be at most 5 words, and a Back-Cover Text may be at most 25 words.
-
-A "Transparent" copy of the Document means a machine-readable copy,
-represented in a format whose specification is available to the
-general public, that is suitable for revising the document
-straightforwardly with generic text editors or (for images composed of
-pixels) generic paint programs or (for drawings) some widely available
-drawing editor, and that is suitable for input to text formatters or
-for automatic translation to a variety of formats suitable for input
-to text formatters. A copy made in an otherwise Transparent file
-format whose markup, or absence of markup, has been arranged to thwart
-or discourage subsequent modification by readers is not Transparent.
-An image format is not Transparent if used for any substantial amount
-of text. A copy that is not "Transparent" is called "Opaque".
-
-Examples of suitable formats for Transparent copies include plain
-ASCII without markup, Texinfo input format, LaTeX input format, SGML
-or XML using a publicly available DTD, and standard-conforming simple
-HTML, PostScript or PDF designed for human modification. Examples of
-transparent image formats include PNG, XCF and JPG. Opaque formats
-include proprietary formats that can be read and edited only by
-proprietary word processors, SGML or XML for which the DTD and/or
-processing tools are not generally available, and the
-machine-generated HTML, PostScript or PDF produced by some word
-processors for output purposes only.
-
-The "Title Page" means, for a printed book, the title page itself,
-plus such following pages as are needed to hold, legibly, the material
-this License requires to appear in the title page. For works in
-formats which do not have any title page as such, "Title Page" means
-the text near the most prominent appearance of the work's title,
-preceding the beginning of the body of the text.
-
-A section "Entitled XYZ" means a named subunit of the Document whose
-title either is precisely XYZ or contains XYZ in parentheses following
-text that translates XYZ in another language. (Here XYZ stands for a
-specific section name mentioned below, such as "Acknowledgements",
-"Dedications", "Endorsements", or "History".) To "Preserve the Title"
-of such a section when you modify the Document means that it remains a
-section "Entitled XYZ" according to this definition.
-
-The Document may include Warranty Disclaimers next to the notice which
-states that this License applies to the Document. These Warranty
-Disclaimers are considered to be included by reference in this
-License, but only as regards disclaiming warranties: any other
-implication that these Warranty Disclaimers may have is void and has
-no effect on the meaning of this License.
-
-
-2. VERBATIM COPYING
-
-You may copy and distribute the Document in any medium, either
-commercially or noncommercially, provided that this License, the
-copyright notices, and the license notice saying this License applies
-to the Document are reproduced in all copies, and that you add no other
-conditions whatsoever to those of this License. You may not use
-technical measures to obstruct or control the reading or further
-copying of the copies you make or distribute. However, you may accept
-compensation in exchange for copies. If you distribute a large enough
-number of copies you must also follow the conditions in section 3.
-
-You may also lend copies, under the same conditions stated above, and
-you may publicly display copies.
-
-
-3. COPYING IN QUANTITY
-
-If you publish printed copies (or copies in media that commonly have
-printed covers) of the Document, numbering more than 100, and the
-Document's license notice requires Cover Texts, you must enclose the
-copies in covers that carry, clearly and legibly, all these Cover
-Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
-the back cover. Both covers must also clearly and legibly identify
-you as the publisher of these copies. The front cover must present
-the full title with all words of the title equally prominent and
-visible. You may add other material on the covers in addition.
-Copying with changes limited to the covers, as long as they preserve
-the title of the Document and satisfy these conditions, can be treated
-as verbatim copying in other respects.
-
-If the required texts for either cover are too voluminous to fit
-legibly, you should put the first ones listed (as many as fit
-reasonably) on the actual cover, and continue the rest onto adjacent
-pages.
-
-If you publish or distribute Opaque copies of the Document numbering
-more than 100, you must either include a machine-readable Transparent
-copy along with each Opaque copy, or state in or with each Opaque copy
-a computer-network location from which the general network-using
-public has access to download using public-standard network protocols
-a complete Transparent copy of the Document, free of added material.
-If you use the latter option, you must take reasonably prudent steps,
-when you begin distribution of Opaque copies in quantity, to ensure
-that this Transparent copy will remain thus accessible at the stated
-location until at least one year after the last time you distribute an
-Opaque copy (directly or through your agents or retailers) of that
-edition to the public.
-
-It is requested, but not required, that you contact the authors of the
-Document well before redistributing any large number of copies, to give
-them a chance to provide you with an updated version of the Document.
-
-
-4. MODIFICATIONS
-
-You may copy and distribute a Modified Version of the Document under
-the conditions of sections 2 and 3 above, provided that you release
-the Modified Version under precisely this License, with the Modified
-Version filling the role of the Document, thus licensing distribution
-and modification of the Modified Version to whoever possesses a copy
-of it. In addition, you must do these things in the Modified Version:
-
-A. Use in the Title Page (and on the covers, if any) a title distinct
- from that of the Document, and from those of previous versions
- (which should, if there were any, be listed in the History section
- of the Document). You may use the same title as a previous version
- if the original publisher of that version gives permission.
-B. List on the Title Page, as authors, one or more persons or entities
- responsible for authorship of the modifications in the Modified
- Version, together with at least five of the principal authors of the
- Document (all of its principal authors, if it has fewer than five),
- unless they release you from this requirement.
-C. State on the Title page the name of the publisher of the
- Modified Version, as the publisher.
-D. Preserve all the copyright notices of the Document.
-E. Add an appropriate copyright notice for your modifications
- adjacent to the other copyright notices.
-F. Include, immediately after the copyright notices, a license notice
- giving the public permission to use the Modified Version under the
- terms of this License, in the form shown in the Addendum below.
-G. Preserve in that license notice the full lists of Invariant Sections
- and required Cover Texts given in the Document's license notice.
-H. Include an unaltered copy of this License.
-I. Preserve the section Entitled "History", Preserve its Title, and add
- to it an item stating at least the title, year, new authors, and
- publisher of the Modified Version as given on the Title Page. If
- there is no section Entitled "History" in the Document, create one
- stating the title, year, authors, and publisher of the Document as
- given on its Title Page, then add an item describing the Modified
- Version as stated in the previous sentence.
-J. Preserve the network location, if any, given in the Document for
- public access to a Transparent copy of the Document, and likewise
- the network locations given in the Document for previous versions
- it was based on. These may be placed in the "History" section.
- You may omit a network location for a work that was published at
- least four years before the Document itself, or if the original
- publisher of the version it refers to gives permission.
-K. For any section Entitled "Acknowledgements" or "Dedications",
- Preserve the Title of the section, and preserve in the section all
- the substance and tone of each of the contributor acknowledgements
- and/or dedications given therein.
-L. Preserve all the Invariant Sections of the Document,
- unaltered in their text and in their titles. Section numbers
- or the equivalent are not considered part of the section titles.
-M. Delete any section Entitled "Endorsements". Such a section
- may not be included in the Modified Version.
-N. Do not retitle any existing section to be Entitled "Endorsements"
- or to conflict in title with any Invariant Section.
-O. Preserve any Warranty Disclaimers.
-
-If the Modified Version includes new front-matter sections or
-appendices that qualify as Secondary Sections and contain no material
-copied from the Document, you may at your option designate some or all
-of these sections as invariant. To do this, add their titles to the
-list of Invariant Sections in the Modified Version's license notice.
-These titles must be distinct from any other section titles.
-
-You may add a section Entitled "Endorsements", provided it contains
-nothing but endorsements of your Modified Version by various
-parties--for example, statements of peer review or that the text has
-been approved by an organization as the authoritative definition of a
-standard.
-
-You may add a passage of up to five words as a Front-Cover Text, and a
-passage of up to 25 words as a Back-Cover Text, to the end of the list
-of Cover Texts in the Modified Version. Only one passage of
-Front-Cover Text and one of Back-Cover Text may be added by (or
-through arrangements made by) any one entity. If the Document already
-includes a cover text for the same cover, previously added by you or
-by arrangement made by the same entity you are acting on behalf of,
-you may not add another; but you may replace the old one, on explicit
-permission from the previous publisher that added the old one.
-
-The author(s) and publisher(s) of the Document do not by this License
-give permission to use their names for publicity for or to assert or
-imply endorsement of any Modified Version.
-
-
-5. COMBINING DOCUMENTS
-
-You may combine the Document with other documents released under this
-License, under the terms defined in section 4 above for modified
-versions, provided that you include in the combination all of the
-Invariant Sections of all of the original documents, unmodified, and
-list them all as Invariant Sections of your combined work in its
-license notice, and that you preserve all their Warranty Disclaimers.
-
-The combined work need only contain one copy of this License, and
-multiple identical Invariant Sections may be replaced with a single
-copy. If there are multiple Invariant Sections with the same name but
-different contents, make the title of each such section unique by
-adding at the end of it, in parentheses, the name of the original
-author or publisher of that section if known, or else a unique number.
-Make the same adjustment to the section titles in the list of
-Invariant Sections in the license notice of the combined work.
-
-In the combination, you must combine any sections Entitled "History"
-in the various original documents, forming one section Entitled
-"History"; likewise combine any sections Entitled "Acknowledgements",
-and any sections Entitled "Dedications". You must delete all sections
-Entitled "Endorsements".
-
-
-6. COLLECTIONS OF DOCUMENTS
-
-You may make a collection consisting of the Document and other documents
-released under this License, and replace the individual copies of this
-License in the various documents with a single copy that is included in
-the collection, provided that you follow the rules of this License for
-verbatim copying of each of the documents in all other respects.
-
-You may extract a single document from such a collection, and distribute
-it individually under this License, provided you insert a copy of this
-License into the extracted document, and follow this License in all
-other respects regarding verbatim copying of that document.
-
-
-7. AGGREGATION WITH INDEPENDENT WORKS
-
-A compilation of the Document or its derivatives with other separate
-and independent documents or works, in or on a volume of a storage or
-distribution medium, is called an "aggregate" if the copyright
-resulting from the compilation is not used to limit the legal rights
-of the compilation's users beyond what the individual works permit.
-When the Document is included in an aggregate, this License does not
-apply to the other works in the aggregate which are not themselves
-derivative works of the Document.
-
-If the Cover Text requirement of section 3 is applicable to these
-copies of the Document, then if the Document is less than one half of
-the entire aggregate, the Document's Cover Texts may be placed on
-covers that bracket the Document within the aggregate, or the
-electronic equivalent of covers if the Document is in electronic form.
-Otherwise they must appear on printed covers that bracket the whole
-aggregate.
-
-
-8. TRANSLATION
-
-Translation is considered a kind of modification, so you may
-distribute translations of the Document under the terms of section 4.
-Replacing Invariant Sections with translations requires special
-permission from their copyright holders, but you may include
-translations of some or all Invariant Sections in addition to the
-original versions of these Invariant Sections. You may include a
-translation of this License, and all the license notices in the
-Document, and any Warranty Disclaimers, provided that you also include
-the original English version of this License and the original versions
-of those notices and disclaimers. In case of a disagreement between
-the translation and the original version of this License or a notice
-or disclaimer, the original version will prevail.
-
-If a section in the Document is Entitled "Acknowledgements",
-"Dedications", or "History", the requirement (section 4) to Preserve
-its Title (section 1) will typically require changing the actual
-title.
-
-
-9. TERMINATION
-
-You may not copy, modify, sublicense, or distribute the Document except
-as expressly provided for under this License. Any other attempt to
-copy, modify, sublicense or distribute the Document is void, and will
-automatically terminate your rights under this License. However,
-parties who have received copies, or rights, from you under this
-License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-
-10. FUTURE REVISIONS OF THIS LICENSE
-
-The Free Software Foundation may publish new, revised versions
-of the GNU Free Documentation License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns. See
-http://www.gnu.org/copyleft/.
-
-Each version of the License is given a distinguishing version number.
-If the Document specifies that a particular numbered version of this
-License "or any later version" applies to it, you have the option of
-following the terms and conditions either of that specified version or
-of any later version that has been published (not as a draft) by the
-Free Software Foundation. If the Document does not specify a version
-number of this License, you may choose any version ever published (not
-as a draft) by the Free Software Foundation.
-
-
-ADDENDUM: How to use this License for your documents
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and
-license notices just after the title page:
-
- Copyright (c) YEAR YOUR NAME.
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.2
- or any later version published by the Free Software Foundation;
- with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
- A copy of the license is included in the section entitled "GNU
- Free Documentation License".
-
-If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
-replace the "with...Texts." line with this:
-
- with the Invariant Sections being LIST THEIR TITLES, with the
- Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
-
-If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.
-
-If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License,
-to permit their use in free software.
+++ /dev/null
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- <program> Copyright (C) <year> <name of author>
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-<http://www.gnu.org/licenses/>.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
+++ /dev/null
-NEWS
-====
-
-[yyyy-mm-dd]
-------------
-- Initial import from skeleton
+++ /dev/null
-README
-------
-
-This file needs some extending... ;)
+++ /dev/null
-THANKS
-------
+++ /dev/null
-TODO:
------
+++ /dev/null
-<?php
-// Developer mode active? Comment out if no dev!
-define('DEVELOPER', true);
-//xdebug_start_trace();
-/**
- * The main class with the entry point to the whole application. This class
- * "emulates" Java's entry point call. Additionally it covers local
- * variables from outside access to prevent possible attacks on uninitialized
- * local variables.
- *
- * But good little boys and girls would always initialize their variables... ;-)
- *
- * @author Roland Haeder <webmaster@ship-simu.org>
- * @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team
- * @license GNU GPL 3.0 or any newer version
- * @link http://www.ship-simu.org
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-class ApplicationEntryPoint {
- /**
- * The instances we want to remove after all is done
- *
- * @return void
- */
- private static $instances = array (
- 'cfg', // The configuration system
- 'loader', // The class loader system
- 'debug', // Debug output
- 'db', // Database layer
- 'io', // Base I/O system (local file [or network])
- 'engine', // Template engine ( for ApplicationEntryPoint::app_die() )
- 'lang', // Language sub-system
- 'app', // The ApplicationHelper instance
- );
-
- /**
- * The application's emergency exit
- *
- * @param $message The optional message we shall output on exit
- * @param $code Error code from exception
- * @param $extraData Extra information from exceptions
- * @param $silentMode Wether not silent mode is turned on
- * @return void
- */
- public static function app_die ($message = "", $code = false, $extraData = "", $silentMode = false) {
- // Is this method already called?
- if (defined('EMERGENCY_EXIT_CALLED')) {
- // Then output the text directly
- die($message);
- } // END - if
-
- // This method shall not be called twice
- define('EMERGENCY_EXIT_CALLED', true);
-
- // Is a message set?
- if (empty($message)) {
- // No message provided
- $message = "No message provided!";
- } // END - if
-
- // Get config instance
- $configInstance = FrameworkConfiguration::getInstance();
-
- // Do we have debug installation?
- if (($configInstance->readConfig('product_install_mode') == "productive") || ($silentMode === true)) {
- // Abort here
- die();
- } // END - if
-
- // Get some instances
- $tpl = FrameworkConfiguration::getInstance()->readConfig('template_class');
- $lang = LanguageSystem::getInstance();
- $io = FileIoHandler::getInstance();
-
- // Get response instance
- $responseInstance = ApplicationHelper::getInstance()->getResponseInstance();
-
- // Is the template engine loaded?
- if ((class_exists($tpl)) && (is_object($lang)) && (is_object($io))) {
- // Use the template engine for putting out (nicer look) the message
- try {
- // Get the template instance from our object factory
- $templateInstance = ObjectFactory::createObjectByName($tpl, array(FrameworkConfiguration::getInstance()->readConfig('tpl_base_path'), $lang, $io));
- } catch (FrameworkException $e) {
- die(sprintf("[Main:] Could not initialize template engine for reason: <span class=\"exception_reason\">%s</span>",
- $e->getMessage()
- ));
- }
-
- // Get and prepare backtrace for output
- $backtraceArray = debug_backtrace();
- $backtrace = "";
- foreach ($backtraceArray as $key => $trace) {
- if (!isset($trace['file'])) $trace['file'] = __FILE__;
- if (!isset($trace['line'])) $trace['line'] = __LINE__;
- if (!isset($trace['args'])) $trace['args'] = array();
- $backtrace .= "<span class=\"backtrace_file\">".basename($trace['file'])."</span>:".$trace['line'].", <span class=\"backtrace_function\">".$trace['function']."(".count($trace['args']).")</span><br />";
- } // END - foreach
-
- // Init application instance
- $appInstance = null;
-
- // Is the class there?
- if (class_exists('ApplicationHelper')) {
- // Get application instance
- $appInstance = ApplicationHelper::getInstance();
-
- // Assign application data
- $templateInstance->assignApplicationData($appInstance);
- } // END - if
-
- // Assign variables
- $templateInstance->assignVariable('message', $message);
- $templateInstance->assignVariable('code', $code);
- $templateInstance->assignVariable('extra', $extraData);
- $templateInstance->assignVariable('backtrace', $backtrace);
- $templateInstance->assignVariable('total_includes', ClassLoader::getInstance()->getTotal());
- $templateInstance->assignVariable('total_objects', ObjectFactory::getTotal());
- $templateInstance->assignVariable('title', $lang->getMessage('emergency_exit_title'));
-
- // Load the template
- $templateInstance->loadCodeTemplate('emergency_exit');
-
- // Compile the template
- $templateInstance->compileTemplate();
-
- // Compile all variables
- $templateInstance->compileVariables();
-
- // Transfer data to response
- $templateInstance->transferToResponse($responseInstance);
-
- // Flush the response
- $responseInstance->flushBuffer();
-
- // Good bye...
- exit();
- } else {
- // Output message and die
- die(sprintf("[Main:] Emergency exit reached: <span class=\"emergency_span\">%s</span>",
- $message
- ));
- }
- }
-
- /**
- * The application's main entry point. This class isolates some local
- * variables which shall not become visible to outside because of security
- * concerns. We are doing this here to "emulate" the well-known entry
- * point in Java.
- *
- * @return void
- */
- public static function main () {
- // Load config file
- require(dirname(__FILE__) . '/inc/config.php');
-
- // Load all include files
- require($cfg->readConfig('base_path') . 'inc/includes.php');
-
- // Load all framework classes
- require($cfg->readConfig('base_path') . 'inc/classes.php');
-
- // Include the application selector
- require($cfg->readConfig('base_path') . 'inc/selector.php');
- } // END - main()
-
-} // END - class
-
-// Do not remove the following line:
-ApplicationEntryPoint::main();
-
-// [EOF]
-?>
+++ /dev/null
-#!/bin/sh
-# Prefix of archive
-PREFIX="admin_dev"
-
-sh ./clear-cache.sh
-
-echo -n "$0: Packaging... "
-zip -9 $PREFIX.zip docs/* Doxyfile *.php *.sh > /dev/null 2>&1
-echo -n "."
-zip -9r $PREFIX.zip application/ db/ devel/ Doxyfile inc/ templates/ tests/ > /dev/null 2>&1
-echo -n "."
-zip -d $PREFIX.zip docs/warn.log db/*/*.serialized > /dev/null 2>&1
-echo ". done"
-
-echo "$0: Renaming..."
-eval "mv $PREFIX.zip $PREFIX-`date +%Y%m%d_%H%M%S`.zip"
-
-echo "$0: All done."
+++ /dev/null
-#!/bin/sh
-
-if ! test -e `which pdepend`; then
- echo "$0: This script needs PHP_Depend. See URL"
- echo "$0: http://www.manuel-pichler.de/pages/pdepend.html for details."
-fi
-
-pdepend --bad-documentation --ignore=db,docs,ship-simu.org \
- --jdepend-chart=test.png --overview-pyramid=pyramid.png \
- --summary-xml=summary.xml --jdepend-xml=jdepend.xml .
+++ /dev/null
-#!/bin/sh
-
-echo "$0: Cleaning up..."
-find docs/html/ -type f -exec rm -f {} \;
-rm -f docs/*.log
-echo "$0: Done."
-
-doxygen Doxyfile